答案1:字体中的字形位于画布上。它们需要周围的空白来彼此定位。白色的数量不同。其中一个原因是x高度与升降部分(bdfhklt)和下行部分(gjqpy)大小之间的比率。如果字体的x高度相对较小(大的升降部分/下行部分),则比具有相对较大x高度的字体周围的字形更多。影响白色数量的变量还有大写字母/小写字母比例和字体重量。
答案2:没有损坏。您可以使用CSS设置相对字体大小并校正文本的大小。
你可以将图片滚动到浏览器窗口的边缘,以检查字形对齐的位置。
顶部:无调整。
中间:相同的x高度。看起来很好!
底部:相同的大写字母高度。这是你需要的,因为其中一个字体全部都是大写字母。
HTML代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<style>
p
{
border: 1px solid red;
line-height: 1EM;
font-size: 600%;
margin: 0 0 0.1EM 0;
}
.arial { font-family: 'Arial'; }
.times { font-family: 'Times New Roman'; }
.times_same_x_height { font-size:116%; }
.times_same_capital_height { font-size:108%; }
.font_stack { font-family: "Does not exist", serif; }
</style>
</head>
<body>
<p>
<span class="arial">xH</span>
<span class="times">xH</span>
</p>
<p>
<span class="arial">xH</span>
<span class="times times_same_x_height">xH</span>
</p>
<p>
<span class="arial">xH</span>
<span class="times times_same_capital_height">xH</span>
</p>
</body>
</html>
注意0:
如果看起来正确,那么它就是正确的。所以不要只使用x-height,有时候大小的明显差异会使字体组合更加和谐。用你的眼睛(和大脑)。
注意1:我把文本放在同一个段落中。我这样做是因为它对齐了基线。但更有可能的是你的文本元素彼此分离。定义正确的
line-height
和
margin
来定位。使用相对值。有时还需要微调基线:
.shift { top: -.01EM; position:relative; }
注意2:如果你的字体不存在。font_stack将使用下一个最好的字体。请注意,你的精细排版适用于堆栈中的所有字体!
提示:如果你想稍微改变字体的重量。你可以把颜色变得更浅一点。例如从黑色到非常深的灰色。这将使它看起来不那么粗体。
额外奖励:IE将遵守。
欢迎反馈。