这个问题分为两部分。因为这与问题的第一部分(垂直指标不一致)无关,所以我添加了关于问题另一部分的新答案。
文本渲染引擎在对文本应用抗锯齿时会产生不同的粗细。当使用默认的子像素抗锯齿时,OSX 默认会生成更厚的字形。 “大胆”的数量可以在OSX settings中调整。
但是,如果您不想让人们触摸他们的操作系统并且想要一些可以通过 javascript/css 完成的事情,那么有一种选择。
当抗锯齿类型设置为灰度时,OSX 会渲染较细的字形。 Safari、Chrome 和 Opera 使用 -webkit-font-smoothing: antialiased; 和 Firefox -moz-osx-font-smoothing: grayscale;。
但这可能还不够,因为深色背景中的浅色文本会使字形太细。为了使它们更大胆,您可以使用特定的 text-shadow-hack (codepen):
#div1 {
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-shadow: #999 0.1px 0px 0px, #999 -0.1px 0px 0px;
background-color: black;
width: 100px;
height: 40px;
color: white;
line-height: 40px;
text-align: center;
font-family: 'Open Sans';
font-size: 16px;
}
text-shadow 中的第一部分#999 0.1px 0px 0px 在右边形成一个细阴影,第二部分#999 -0.1px 0px 0px; 在左边。这样可以确保字形不会太薄。我发现在某些浏览器中使用文本阴影颜色#fff 会使字形过于粗体(例如在 Win FF 中),所以让它变暗一些来解决这个问题。
虽然文本阴影的这种“加粗”主要用于修复 OSX 中过薄的灰度抗锯齿字形,但它在 Windows 中也能产生更好的效果。但在 Windows 和 Linux 中,*-font-smoothing 无效,因此使用默认的子像素抗锯齿。
在这里您可以看到在 9 种不同浏览器中的实际效果。对我来说,这会产生相当相似的大胆:
这是测试的详细信息(上面的文本块是从“Hacked”行中截取的:
注意:此技术仅适用于深色背景中的浅色文本,最好是按钮或类似内容。在大文本块中,您必须考虑文本的易读性,通常亚像素抗锯齿可提供更好的易读性。如果颜色不是黑色和白色,您可能需要调整文本阴影颜色。在大文本块中使用 text-shadow 会影响渲染时间。