为什么 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
可能是一个好主意,但请记住保持一致以避免头痛。
兄弟元素淡出效果
在鼠标悬停时淡出兄弟元素。 使用 transition
来为 opacity
的变化设置动画。
使用 :hover
和 :not
伪类选择器将除鼠标悬停元素之外的所有元素的 op