单位
绝对单位
px => 像素是一种绝对单位, 因为无论其他相关的设置怎么变化, 像素指定的值是不会变化的.
mm, cm, in: 毫米(Millimeters),厘米(centimeters),英寸(inches)
- pt, pc: 点(Points (1/72 of an inch)), 十二点活字( picas (12 points.))
相对单位
- em: 1em与当前元素的字体大小相同 ( 更具体地说,一个大写字母M的宽度)
- ex, ch: 分别是小写x的高度和数字0的宽度。这些并不像em那样被普遍使用或很好地被支持。
- rem: REM(root em)和em以同样的方式工作,但它总是等于默认基础字体 (即body上的font-size) 大小的尺寸;继承的字体大小将不起作用. 在旧版本的IE上不被支持
- vw, vh: 分别是视口宽度的1/100和视口高度的1/100。
无单位的值
0 一般可以不带单位, 如:
1 | margin: 0; |
无单位的行高, 相当于倍数
1 | p { |
上满的p 行高为原来字体的1.5倍
百分比
对于宽高: 宽高是父元素的百分之几
对于字体: 新大小是相对于父容器的字体大小的百分之几
移动端rem布局
由上可知, rem是一个相对于整体字体大小的相对单位, 我们可以针对它这个特性来进行移动端的自适应布局. 比如:根元素大小设置为:font-size:200px;要显示一个div宽度为100px,可以写成——width:0.5rem。
所以我们可以根据设计图和实际屏幕尺寸设定font-size的大小, 在写css时换算成相应的em从而实现自适应.
假设我们的设计图大小为750px, 那么我们可以将根元素的font-size设为: 100 * (clientWidth / 750) + ‘px’, 这样每rem就相当于设计图的100px
可以直接使用[hotcss][https://github.com/imochen/hotcss] 来实现移动端的自适应
通过计算来决定一个CSS属性的值 calc()
CSS函数calc()可以用在任何一个需要
1 | width: calc(100% - 80px); |
- 可以再计算中使用+ - * /
- 可以混用单位
- 可以嵌套使用: 一个 calc() 里面的 calc() 就仅仅相当于是一个括号。