很基础的一个问题,可是,其实看起来很复杂的样子~~咱们来捋一捋吧~~css
css3中也对css中用到的单位进行了改进,单位也就是那几个,因此咱们要搞清楚再用。html
咱们经常使用的有px、%、em,px就很少说了,em和%多说点儿:css3
1 2 3 |
.box{line-height:1.3em;} |
元素的行高是当前元素继承的font-size的1.3倍,浏览器
1 2 3 |
.box{font-size:1.3em;} |
当前元素的字体大小是其继承的font-size的1.3倍。字体
1 2 3 |
.box{line-height:130%;} |
元素的行高是当前元素继承的font-size的130%倍,等同于1.3em。spa
1 2 3 |
.box{font-size:130%;} |
当前元素的字体大小是其继承的font-size的130%倍,等同于1.3em。htm
恩,迷惑了吗?继承
em就是基于当前元素的(若是没设置就是继承其父元素的)font-size。rem
而%对于font-size、line-height等,是基于其父元素的font-size的,而对于text-indent、margin、padding、width等属性,则是基于父元素的宽度的。it
css3中引入了一些新的单位:
显然vw、vh、vmin是针对移动设备的,若是视窗大小变化了,这三个值也会跟着相应的变化。
rem单位感受就是px+em的变体,是否值得使用还要看你本身的取舍:没有px精确也没有em灵活——或者说,比px灵活,比em更精确~~。。。XD。。。
其实不用担忧,传说,各个浏览器前所未有的默认font-size:16px;,因此,即使你在样式文件中忘了定义font-size初始值,也能够放心的使用em、rem。
rem,各浏览器基本都支持了, IE9+、FF3.6+、Chrome、Safari 5+、以及 Opera 11.6+
vw、vh、vmin,浏览器支持并不乐观,IE9支持了,Chrome目前不支持,Chrome 20将会从新支持(貌似以前支持过?)、Safari也即将支持了吧,Opera和Firefox也还都不支持。