一、什么是px em rem?
- Px em rem 是css中的长度单位。其中 px 是绝对长度单位,em 和 rem 是相对长度单位。
- Px 即像素(pixel),它最终显示的长度是相对于屏幕分辨率而言的。
- Em 是相对单位,相对于其父元素的 font-size 值,如:父元素 font-size 值为18px 当前元素设置了 height 为 2rem,那么计算出的高度为
18px * 2 = 36px
- Rem 是相对单位,是相对于html标签的 font-size 值,若没有为html设置,则为默认值 16px
二、px em rem 的特点?
- Px由于是绝对长度,故使用px时,浏览器无法做到字体缩放。
- Em是相对单位,可以做到字体的缩放,但有一个问题:em 是相对于父元素进行比例计算的,所以若设置不当,会出现重复计算导致字体过大的问题,如:
<div style="font-size:2rem">
<div style="font-size:1.2rem"></div>
</div>
// 本来可能是希望子元素是默认字体16px的1.2倍,但实际计算的是 16px * 2 * 1.2
- Rem 是相对单位,可做到字体缩放。同时,它对于em会产生的问题做了处理。它是相对于html节点的font-size值进行比例计算的。如此一来,既可修改html一处便更新整个项目的大小比例,又不必担心嵌套带来的重复计算。
三、它们的实际使用
- px 直接设置即可,但需要注意用户可能使用的设备及分辨率,若项目设置的px宽度大于设备分辨率,会出现滚动条,若小于设备分辨率,会出现空白区域
- rem 使用时一般会给html标签设置一个font-size值,这个值一般会根据设备分辨率计算出来,目的是为了在项目中设置各种节点大小时方便计算对应的rem值