文字在Chrome中正确显示。我希望它在所有浏览器中以这种方式显示。我怎么能这样做?
我可以使用-webkit-font-smoothing: antialiased;
铬:
火狐:
h1 {
font-family: Georgia;
font-weight: normal;
font-size: 16pt;
color: #444444;
-webkit-font-smoothing: antialiased;
}
<h1>Hi, my name</h1>
和JSFiddle:http://jsfiddle.net/jnxQ8/1/
答案 0 :(得分:44)
确保所有浏览器的字体相同。如果它是相同的字体,那么问题是无解决方案使用跨浏览器CSS 。
因为每个浏览器都有自己的字体渲染引擎,所以它们都是不同的。它们在更高版本或不同操作系统中也可能不同。
更新:对于那些不了解浏览器和操作系统字体呈现差异的人,read this和this。
但是,大多数人都不会注意到这种差异,用户会接受这种差异。忘记像素完美的跨浏览器设计,除非你是:
更新:我查看了示例页面。通过文本呈现调整字距调整应该有所帮助:
text-rendering: optimizeLegibility;
此处有更多参考资料:
font-smoothing
控制(如上所述),另一部分是text-rendering
。调整这些属性可能会有所帮助,因为它们的默认值在不同浏览器中是不同的。答案 1 :(得分:17)
为了在浏览器中最好地标准化@ font-face嵌入字体,请尝试在@ font-face声明或您的正文字体样式中包含以下内容:
speak: none;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
line-height: 1;
-webkit-font-smoothing: antialiased;
目前,所有平台和浏览器版本似乎都没有通用修复。如所述,所有浏览器/ OS都具有不同的文本呈现引擎。
答案 2 :(得分:11)
这里有一些很好的信息: https://bugzilla.mozilla.org/show_bug.cgi?id=857142
仍在试验,但到目前为止,仅针对FF的微创解决方案是:
body {
-moz-osx-font-smoothing: grayscale;
}
答案 3 :(得分:7)
尝试-webkit-font-smoothing: subpixel-antialiased;
答案 4 :(得分:5)
我收集并测试了所讨论的解决方案:
Windows10教授x64:
* FireFox v.56.0 x32
* Opera v.49.0
* Google Chrome v.61.0.3163.100 x64-bit
macOs X Serra v.10.12.6 Mac mini(2010年中):
* Safari v.10.1.2(12603.3.8)
* FireFox v.57.0 Quantum
* Opera v49.0
Semi(Safari中的微脂肪)解决了脂肪字体问题:
text-transform: none; // mac ff fix
-webkit-font-smoothing: antialiased; // safari mac nicer
-moz-osx-font-smoothing: grayscale; // fix fatty ff on mac
没有视觉效果
line-height: 1;
text-rendering: optimizeLegibility;
speak: none;
font-style: normal;
font-variant: normal;
视觉效果错误:
-webkit-font-smoothing: subpixel-antialiased !important; //more fatty in safari
text-rendering: geometricPrecision !important; //more fatty in safari
不要忘记在测试时设置!important,或确保您的样式没有被覆盖
答案 5 :(得分:2)
我有很多网站都有这个问题&amp; 终于找到了修复,以使firefox字体比chrome更粗。
你的-webkit修复-moz-osx-font-smoothing: grayscale;
body{
text-rendering: optimizeLegibility;
-webkit-font-smoothing: subpixel-antialiased;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
答案 6 :(得分:0)
我不认为在屏幕上使用“点”字体大小是一个好主意。尝试在font-size上使用px或em。
来自W3C:
请勿在pt中指定font-size, 或其他绝对长度单位。他们 跨平台渲染不一致 并且无法由用户代理调整大小 (例如浏览器)。
答案 7 :(得分:-1)
尝试text-rendering: geometricPrecision;
。
与text-rendering: optimizeLegibility;
不同,它在缩放字体时会处理字距调整问题,而最后一个字符串会启用字距调整和连字。