响应式布局中为什么要使用em设置字体大小而不用px
px像素(Pixel)。相对长度单位。像素px是相对于不同设备显示器屏幕分辨率(pad/phone/pc)而言的。(引自CSS2.0手册)
1em指的是一个字体的大小,它会继承父级元素的字体大小,因此并不是一个固定的值。任何浏览器的默认字体大小都是16px。
px相对的屏幕分辨率,而em相对于父级div,所以在响应式布局中使用em更合适,因为任何浏览器默认字体大小是固定的,而不同设备屏幕分辨率却各不相同。
em有如下特点:
1. em的值并不是固定的;
2. em会继承父级元素的字体大小。
所以我们在写CSS的时候,需要注意两点:
1. body选择器中声明font-size=62.5%;
2. 将你的原来的px数值除以10,然后换上em作为单位;
3. 重新计算那些被放大的字体的em数值。避免字体大小的重复声明。
<body style="font-size:62.5%"> 1em默认是16px,这里1em变为10px
<aside style="font-size:1.2em;"> 继承body这里的1.2em是12px
<p style="font-size:1em;"></p>继承自aside,所以这里的1em也是12px
</aside>
</body>
也就是避免1.2 * 1.2= 1.44的现象。比如说你在aside中声明了字体大小为1.2em,那么在声明p的字体大小时就只能是1em,而不是1.2em, 因为此em非彼em,它因继承aside的字体高而变为了1em=12px。