【发布时间】:2012-10-24 04:39:39
【问题描述】:
我想为列表备用字体中的不同字体设置不同的line-height。例如:
body {
font-family: "Small x-height font", "Larger x-height font", sans-serif;
}
当使用首选x-height 小字体 时,我想将line-height 设置为1.3。当 使用较大的 x 高度字体 时,因为首选字体不可用,我想将 line-height 设置为 1.5。当两种字体都不可用且使用无衬线回退时,我想将line-height 设置为normal。
这是否可以在不借助 JavaScript 的情况下使用 CSS 2.1 或 CSS 3?
基本原理 问题在于不同的字体有不同的x-height(小写字母如x相对于字体大小的高度)。为了使 x 高度较大的文本看起来更好,必须将其设置为较大的行高。默认字体(上例中的无衬线字体)的 x 高度是未知的,并且可能与我们选择的字体的 x 高度有很大不同。因此,当字体加载失败时,我们的字体看起来不错的行高可能看起来很丑。
【问题讨论】:
-
不能在
@font-face中指定line-height太可惜了。如果你沿着 JS 路径前进,这个 jQuery 插件将允许你在字体加载失败时设置额外的 CSS 属性。 stackoverflow.com/questions/12312323/… -
这里有一个类似的问题:stackoverflow.com/questions/3555962/…