Google Web 字体在移动版 Safari 和桌面版上呈现不同 Chrome?
Google web font renders differently on mobile Safari vs. desktop Chrome?
Google 网络字体 (Signika) 在桌面和移动设备上的呈现方式不同。如这些屏幕截图所示,移动设备上的字距调整(字母之间的 space)比桌面设备大,笔画更细。桌面上的字母看起来也更清晰,虽然这更主观。
桌面 (Chrome):
移动设备(Safari,iOS 12):
Codepen:
https://codepen.io/Crashalot/pen/3ff682e5aa123e1ac293ab19b06f1285
#pageBox h1 {
margin: 30px auto;
text-align: center;
}
h1 {
font-size: 2em;
font-weight: bold;
line-height: 1.2em;
}
h1,
h2,
h3,
h4 {
font-family: "Signika", Verdana, Tahoma, Arial, Sans-Serif;
color: #7C7A7D;
}
<head>
<link href="https://fonts.googleapis.com/css?family=Lato|Roboto|Signika|Source+Sans+Pro:400,700" rel="stylesheet">
</head>
<body>
<div id="pageBox">
<div class="header">
<h1> Icon Editor </h1>
</div>
</div>
</body>
自托管字体样式表的 Signika 部分:
@font-face {
font-family: 'Signika';
font-style: normal;
font-weight: 400;
src: url(https://fonts.gstatic.com/s/signika/v10/vEFR2_JTCgwQ5ejvG18mBlprZ0gk0w.woff2) format('woff2');
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Signika';
font-style: normal;
font-weight: 400;
src: url(https://fonts.gstatic.com/s/signika/v10/vEFR2_JTCgwQ5ejvG1EmBlprZ0g.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@crashalot 字体在 Safari 上看起来与 Chrome 不同的原因是 webkit 略有不同。真正避免这个问题的唯一方法是下载字体文件,然后 link 它们:
body {
...
font-family: Signika;
...
}
@font-face {
font-family: Signika;
src: url(signika.ttf);
}
根据您的问题,我不确定您是否对修复方面的原因或修复方式更感兴趣。假设如何修复:
既然你使用了字距调整这个词,你可能已经意识到这一点,但我能够通过调整以下内容来匹配外观:
body {
letter-spacing: -0.1px;
transform: scale(1.05, 0.95);
}
如果您觉得这不太合适,那么这些值当然是可以调整的。
font-kerning: none;
稍微严重一些,但确实有助于引擎之间的正常化。
供参考,
因此,如果您愿意,您可以通过许多其他检查检测移动 and/or safari(已在其他问题中回答,因此我将在此处省略),然后应用 CSS 多于。
如果您实际上问的是为什么存在差异,那归结为渲染引擎 - 但我现在假设您问的是规范化外观。
事实证明,如果您使用 font-weight
不受字体支持的字体,Safari 会更改字体(例如,字体文件仅提供 400 和 600 的粗细,但您选择了 700)。指定支持的重量或使用 normal
解决了这个问题。
非常沮丧,但希望我们的痛苦能帮助到别人。
Google 网络字体 (Signika) 在桌面和移动设备上的呈现方式不同。如这些屏幕截图所示,移动设备上的字距调整(字母之间的 space)比桌面设备大,笔画更细。桌面上的字母看起来也更清晰,虽然这更主观。
桌面 (Chrome):
移动设备(Safari,iOS 12):
Codepen:
https://codepen.io/Crashalot/pen/3ff682e5aa123e1ac293ab19b06f1285
#pageBox h1 {
margin: 30px auto;
text-align: center;
}
h1 {
font-size: 2em;
font-weight: bold;
line-height: 1.2em;
}
h1,
h2,
h3,
h4 {
font-family: "Signika", Verdana, Tahoma, Arial, Sans-Serif;
color: #7C7A7D;
}
<head>
<link href="https://fonts.googleapis.com/css?family=Lato|Roboto|Signika|Source+Sans+Pro:400,700" rel="stylesheet">
</head>
<body>
<div id="pageBox">
<div class="header">
<h1> Icon Editor </h1>
</div>
</div>
</body>
自托管字体样式表的 Signika 部分:
@font-face {
font-family: 'Signika';
font-style: normal;
font-weight: 400;
src: url(https://fonts.gstatic.com/s/signika/v10/vEFR2_JTCgwQ5ejvG18mBlprZ0gk0w.woff2) format('woff2');
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Signika';
font-style: normal;
font-weight: 400;
src: url(https://fonts.gstatic.com/s/signika/v10/vEFR2_JTCgwQ5ejvG1EmBlprZ0g.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@crashalot 字体在 Safari 上看起来与 Chrome 不同的原因是 webkit 略有不同。真正避免这个问题的唯一方法是下载字体文件,然后 link 它们:
body {
...
font-family: Signika;
...
}
@font-face {
font-family: Signika;
src: url(signika.ttf);
}
根据您的问题,我不确定您是否对修复方面的原因或修复方式更感兴趣。假设如何修复:
既然你使用了字距调整这个词,你可能已经意识到这一点,但我能够通过调整以下内容来匹配外观:
body {
letter-spacing: -0.1px;
transform: scale(1.05, 0.95);
}
如果您觉得这不太合适,那么这些值当然是可以调整的。
font-kerning: none;
稍微严重一些,但确实有助于引擎之间的正常化。
供参考,
因此,如果您愿意,您可以通过许多其他检查检测移动 and/or safari(已在其他问题中回答,因此我将在此处省略),然后应用 CSS 多于。
如果您实际上问的是为什么存在差异,那归结为渲染引擎 - 但我现在假设您问的是规范化外观。
事实证明,如果您使用 font-weight
不受字体支持的字体,Safari 会更改字体(例如,字体文件仅提供 400 和 600 的粗细,但您选择了 700)。指定支持的重量或使用 normal
解决了这个问题。
非常沮丧,但希望我们的痛苦能帮助到别人。