CSS中百分比基准

width

相对于父元素的宽度,注意这里以及以下父元素是指css中其父元素。而不是一般的DOM结构中父元素。

height

一般是相对于父元素的高度,但是当父元素高度没有指定时候其值会变成 auto。

使用vh vw来做页面适配

vw vh 概念

vw 即viewport width 的简写,意思是屏幕的宽度。100vw等于屏幕宽度。
vh 即viewport height 的简写,意思是屏幕的高度。100vh等于屏幕高度。

vmax vmin

vmax 即 vw 和 vh 中比较大的那个。
vmmin 即 vw 和 vh 中比较小的那个。

浏览器兼容性

浏览器兼容性

页面适配思路

同 rem 做页面适配相似。这里 10vw 等于十分之一屏幕宽度,和这篇文章中使用rem来做页面适配 1rem 等于 10vw。
剩下的不变,而且不需要js判断来更改根元素的字体大小。

flex布局语法简介--转自阮一峰网络日志

阮老师这篇flex布局语法篇讲述的非常详细,我对flex布局入门全靠这篇文章。
原文地址

我把这篇文章保存成了pdf 预览/下载

使用media query 实现响应式布局

media query 概念

media query 即是媒介查询,可以根据浏览器的不同特性来应用不同的css样式。
例如:

1
2
3
<link href="css/reset.css" rel="stylesheet" type="text/css" media="screen" />
<link href="css/style.css" rel="stylesheet" type="text/css" media="all" />
<link href="css/print.css" rel="stylesheet" type="text/css" media="print" />

或者

1
2
3
4
5
<style type="text/css" media="screen">
*{
padding: 0px;
}
</style>

以下我只讨论使用 screen 特性

media query screen

例子

例如

1
<link rel="stylesheet" href="style.css" media="screen and (min-width:640px) and (max-width:1080px)">

或者

使用rem来做页面适配

思路

因为rem单位的特殊性,其是根据根元素<html>的字体大小来作为单位的,所以只需修改根元素的字体大小即可改变整个页面大小甚至是布局。

根据 mediaquery来设置

通过css mediaquery 来限定不同屏幕宽度而设置根元素的字体大小来实现适配。

使用javascript判断

CSS3 3D立方体

演示

新窗口打开

思路

首先需要给这个正方体的父容器设置 transform-style 属性为 preserve-3d 这样才能保证子元素是在一个三位空间内,再给父元素的 position 设置为 relative,然后给子元素正方体这6个面改变角度和位置使其在正确的位置并更改其 positon 为 absolute 相对于父元素定位。
改变角度和位置都使用 transform 属性,之后在三维坐标系通过 rotate3d() 改变角度,通过 translate3d() 改变位置。就ok了。
tips 微信目前无法展示此效果,请选择使用浏览器打开。

代码

html

1
2
3
4
5
6
7
8
9
10
<div class="container">
<div class="box">
<div id="front">front</div>
<div id="back">back</div>
<div id="top">top</div>
<div id="bottom">bottom</div>
<div id="left">left</div>
<div id="right">right</div>
</div>
</div>

CSS

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×