标签:des blog http io ar os 使用 sp strong
原文:你可能没注意的CSS单位CSS中的单位我们经常用到px
、pt
、em
、百分比
,px和pt不用多说
em是相对单位,参考物是父元素的font-size
,具有继承的特点
如果字体大小是16px(浏览器的默认值),那么 1em = 16px
这样使用换算很复杂,尤其是和px对应,大家总结出了经验
body {
font-size: 62.5%;
}
这样之后 1em = 10px
在布局等使用的时候好换算了很多
百分比也是很常见的用法,看似简单其实有些初学者可能注意不到的知识
首先要明确百分比是相对于谁,宽泛的讲是父元素,但是并不是十分准确
position: absolute;
的元素是相对于已定位的父元素(offset parent)position: fixed;
的元素是相对于 ViewPortviewport:可视窗口,也就是浏览器的window那么大
line-height
的时候经常会遇到坑,还有这样的面试题问你line-height
设置为120%
和1.2
的区别em是个很不错的单位,但是有个问题就是可能会带来混乱,因为em依赖于父元素的字体大小,各个元素父元素的字体尺寸不一定一样,会带来布局上很大的不确定性
rem
font size of the root element
rem相对于根元素html
(网页),这样使用起来就安全了很多
html {font-size: 62.5%; /10 ÷ 16 × 100% = 62.5%/}
body {font-size: 1.4rem; /1.4 × 10px = 14px /}
h1 { font-size: 2.4rem; /2.4 × 10px = 24px/}
IE9+ 和现代浏览器都已经支持了
vw
Viewport宽度, ** 1vw ** 等于viewport宽度的1%vh
Viewport高度, ** 1vh ** 等于viewport高的的1%vw和vh会随着viewport变化自动变化,再也不用js控制全屏神马的了
甚至有些人丧心病狂的字体大小都用vw和vh控制,来达到字体和viewport大小同步的效果
IE10+ 和现代浏览器都支持这两个单位
这两个单位是针对vw和vh
vmin
vw和vh中比较 ** 小 ** 的值vmax
vw和vh中比较 ** 大 ** 的值这两个属性也会随着viewport变化
IE10+ 和现代浏览器都已经支持vmin
webkit浏览器之前不支持vmax,现在已经支持,所有现代浏览器已经支持,但是IE ** 全部 ** 不支持vmax
这两个单位时根据 ** 当前font-family
** 的相对单位
ch
字符0
的宽度ex
小写字符x
的高度当font-family
改变的时候这两个单位的值也会变化,不同字体表现的样式不一样
IE9+ 和现代浏览器都已经支持
写的时候介绍了一些,大神写了测试页面可以帮我们直观的看到
http://s.codepen.io/chriscoyier/fullgrid/CiwFD?type=embed&safe=true
7 CSS Units You Might Not Know About
标签:des blog http io ar os 使用 sp strong
原文地址:http://www.cnblogs.com/lonelyxmas/p/4097715.html