为什么在CSS中line-height应该是无单位的?
我经常听说line-height
应该始终是无单位的。在我早期的编码年代,我没有太多质疑,但最近我开始思考为什么要这样。在我看来,1.5
和1.5em
应该产生相同的结果,对吗?事实证明,它们并不相同。
这两者之间有一个微妙的区别,这与line-height
是一个继承属性有关。无单位的值将按原样继承,这意味着实际值将针对每个元素重新计算,考虑到元素的font-size
。然而,带有任何单位的line-height
将被计算一次,然后作为固定值继承。这可能会导致完全不同的结果,特别是如果声明在body
元素或类似的元素中。
说到body
元素,将基础的line-height
定义为无单位的值可能是一个好主意,以减少重复:
body {
line-height: 1.5;
}
那么,带单位的line-height
是被禁止的吗?我们是否应该始终使用无单位的值?不一定。代码库约定、设计系统和个人偏好等因素在这里起作用。例如,使用无单位的line-height
值来保持精确的垂直韵律可能有些棘手。在这种情况下,使用带单位的line-height
可能是一个好主意,但记得要保持一致以避免麻烦。