我希望将我的新网站从像素转换为ems。我的问题是,我是否也应该将ems应用于我的文本行高属性?
em
单位设置font-size
,那么您应该以一种适应字体大小的方式设置line-height
。这两个属性密切相关,如果您将它们中的一个以em
为单位设置,而将另一个(例如)以px
或pt
为单位设置,则如果更改了字体大小,页面将会破裂。因此,对于基本上相互关联的属性使用基本上不同的单位将违背“使用em”的想法。font-size:1.5em
和line-height: 18px
,则结果将取决于元素父级的字体大小,并且如果该大小与预期的大小差别很大,可能会出现非常错误的情况。em
单位还是纯数字,这是一个不同的问题。仅使用数字,如line-height: 1.2
,主要等同于使用em
单位,如line-height: 1.2em
。但有一个区别,当line-height
被继承时,继承的是纯数字而不是计算出的值。1.2
表示使用其自身字体大小的1.2倍,这是可以的。但如果父元素具有line-height: 1.2em
,则子元素将继承一个比其自身字体大小小得多的值,该值为父级字体大小的1.2倍。line-height: 1.5em
和 line-height: 1.5
的区别进行解释,这让我省去了大量的搜索时间! - Renfei Songline-height
可以设置为px
,em
等单位,每个单位都可以适应。
如果您使用因子/乘数,即仅使用数字来乘以字体大小,则line-height
最好且具有未来性。
.foo {
font-size: 1.3em; /* based that 1em == 10px */
line-height: 1.3; /* 16.9px line-height */
}
建议使用无单位的数字来设置行高(以避免继承问题)。计算后的行高将是无单位数值乘以元素字体大小的结果。
使用 font
CSS 快捷方式可能更加方便,例如以下示例摘自 Mozilla CSS 文档:
div { font: 10pt/1.2 Georgia,"Bitstream Charter",serif }
line-height
属性中,em
是一个有效的单位。 - Raptor