【发布时间】:2012-02-12 17:43:57
【问题描述】:
font-face 是很常见的问题,例如
font: 20px/20px 'ITC Avant Garde Gothic Std'; font-style: 'book'; letter-spacing: 1px; text-transform: uppercase;
问题是我希望文本垂直居中。然而,事实并非如此。有没有办法抵消行高基线?无需实际更改line-height。
【问题讨论】:
font-face 是很常见的问题,例如
font: 20px/20px 'ITC Avant Garde Gothic Std'; font-style: 'book'; letter-spacing: 1px; text-transform: uppercase;
问题是我希望文本垂直居中。然而,事实并非如此。有没有办法抵消行高基线?无需实际更改line-height。
【问题讨论】:
这种现象取决于字体。由字体设计师决定字体如何使用其高度。例如,在 Arial 中,当设置为纯色时,大写基本拉丁字母垂直居中,而在 Verdana 中,它们显得稍低一些(即,上方比下方多一点空间)。
你可以通过使用相对定位来微调它,但是你需要额外的标记,例如
<div><span>text</span></div>
使用 CSS 设置 span 设置,例如,
position: relative;
top: 2px;
如果用户浏览器中使用的字体与您的预期不同,这可能会导致不良影响。
我没有考虑font-style: 'book' 的可能影响,因为我不知道它可能意味着什么。我知道没有任何 CSS 资源提到过类似的东西(font-style 值是不带引号的关键字,不包括 book)。
【讨论】:
font-style: 'book' 引用了样式为book 的字体家族成员。感谢您提供有关相对定位的提示。问题是,例如,在 Opera 上,字体按预期显示,即。垂直居中。因此,应用像您这样的修复程序不会使其跨浏览器兼容。这也使它看起来好像不是字体问题?