[css] 使用rem时应该注意什么?
看了下 绝对单位 和 相对单位。
em 是相对元素本身的 font-size 的相对单位,比如元素本身的 font-size 是 14px,那么 1.2em = 1.2 * 14px = 16.8px。注意,是相对元素本身的 font-size,会随着元素的 font-size 的改变而改变。
rem 是 root em 的缩写,相对根元素的 font-size 相对单位,比如根元素的 font-size 是 14px,那么 1.2rem = 1.2 * 14px = 16.8px。注意,是相对根元素的 font-size,不论元素处于什么位置,乘法的基数都是 14px(根元素的 font-size)。
em 一半用于设置元素的 padding, margin, border-radius 等。
rem 一半用于设置元素的 font-size。
px 一半用于设置 border。
如果用 em 设置 font-size 很容易会出现意想不到的问题。比如嵌套的 div。
// css
div {
font-size: 0.8em;
}
<!--html-->
<div>
div1
<div>div2</div>
</div>
上面的代码,假设根元素用的是默认值 16px,那么第一个 div 的字体是 0.8 * 16px = 12.8px,第二个 div 的字体会先继承第一个 div 的 font-size = 12.8px,然后再乘以 0.8,0.8 * 12.8px = 10.24px,就会导致两个 div 的字体不一样大。
如果使用的是 rem,那么基数都是 16px,两个 div 的大小都是 12.8px。
个人简介
我是歌谣,欢迎和大家一起交流前后端知识。放弃很容易,
但坚持一定很酷。欢迎大家一起讨论