iOS 4.2+ webfont (ttf) 的粗体字体粗细渲染错误
这个非常具体:在 iOS mobile safari 上错误地指定 ttf 字体渲染 font-weight:bold
,使用 iOS 4.2/4.3 Beta 3 或更高版本的 iphone/ipad 打开演示网站:(
这是 Reenie+来自 google 字体的 Beanie)
您会看到粗体字体看起来双重渲染。这对于中小字体来说并不重要,但对于大字体/放大来说非常重要。
我的朋友会向苹果报告这个错误。然而,他能做些什么来解决这个错误呢? (杀死文本调整不确定)
更新: 这个问题在 iOS5 中未修复。
我知道解决该问题的最佳解决方案是
- 使用
font-weight:normal
(如演示中所示) - 使用
-webkit-text-strok
e 或text -shadow
使其看起来“粗体”(加上iPad专用的css - js添加的主体前缀,而不仅仅是媒体查询)
This one is quite specify: specify ttf font rendering font-weight:bold
incorrectly on iOS mobile safari, open demo site with iphone/ipad with iOS 4.2/4.3 Beta 3 or above:
(this is Reenie+Beanie from google fonts)
You see the bold font look double rendered. This is not significant for small and medium font size, but quite significant for large font-size / zoom in
My friend will report this bug to apple. However, anything he can do to solve the bug? (kill the text-adjust is not OK)
Update:
This one is not fixed in iOS5.
The best solution I know for the problem will be
- Use
font-weight:normal
(as shown in demo) - Use either
-webkit-text-strok
e ortext-shadow
to make it look "bold" (plus iPad only css - body prefix added by js, not only media query)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
从父类继承
font-weight:bold;
的h1
也有同样的问题。只需使用font-weight: normal; 覆盖继承的样式;
Had the same issue with an
h1
inheriting thefont-weight: bold;
from a parent class. Just overwrite the inherited style with afont-weight: normal;
Mobile Safari 的渲染方式似乎有问题 带有字体的仿样式。对于粗体,它会使文本和偏移量加倍,对于大多数字体,它不会被注意到,但对于细字体,它看起来像复视。
在您的情况下,Reenie Beanie不包含粗体样式,并且如果您使用它们作为标题而不将
font-weight
更改为normal
或400
它将呈现粗体粗细“人造样式”。请注意,在某些浏览器中,使用人造样式通常会出现错误 且不仅仅在 Mobile Safari 中。
解决方案 1. 使用适当的
font-weight
因此,最好的解决方案是将 font-weight 更改为 Google Fonts 提供的字体粗细,快速修复如下:
解决方案 2. 使用确实提供粗体的字体/您想要的斜体样式
另一个解决方案是从网络字体存档中选择一种确实包含粗体样式的字体。 Google 字体中的替代字体看起来很像 Reenie Beanie 并且“更粗体”,例如 Gochi Hand, 阳光,或永久标记。
解决方案 3. 使用其他方式伪造假体
如果您确实坚持想要假粗体样式,您可以尝试使用细 text-shadow或文本描边。
It seems that Mobile Safari has a buggy way of rendering faux styles with font-faces. For bold it will double the text and offset, and with most fonts it would go unnoticed, but with thin font faces it will look like double vision.
In your case the Reenie Beanie does not include a bold style, and if you're using them as heading without changing the
font-weight
tonormal
or400
it will render the bold weight "faux styled".Please do note that using faux styles is generally buggy in some browsers and not only in Mobile Safari.
Solution 1. Use the appropriate
font-weight
So the best solution is to change the font-weight to the one that Google Fonts provide, quick fix below:
Solution 2. Use a font that does provide the bold/italic style that you want
The other solution is to pick a font from a web font archive that does include a bold style. Alternatives in Google Fonts that look a lot like Reenie Beanie and are "bolder" would be e.g. Gochi Hand, Sunshiney, or Permanent Marker.
Solution 3. Fake the faux using other means
If you really insist on wanting a faux bold style you can try using a thin text-shadow or text stroke.
不要使用“大胆”或“粗体”标签。如果您使用特定的加权网络字体,则不需要它们。
我也有同样的问题。当我删除任何对字体粗细的提及时,它就消失了。
don't use the 'bolder' or 'bold' tag. they aren't necessary if you are using a specific weighted webfont.
I had the same problem. It went away when I removed any mention of font-weight.
尝试应用这个 css 规则:
Try applying this css rule: