html - 尽管 HTML 中的样式没有变化,但网页中句子的字体发生了变化。为什么?

标签 html css fonts

我正在尝试建立一个 WordPress 博客(不幸的是,用瑞典语),在一篇文章中,两个彼此独立的人注意到字体在句子中间发生变化:

Wrong font

它们都运行带有 Chrome 的 Windows 7,我尝试在我的 Linux、Mac 和 iOS 系统上复制此字体更改,但对我来说它渲染器正确。例如,在带有最新 Firefox 的 Ubuntu 上,字体保持不变:

correct font

为什么会出现这种奇怪的行为以及我可以采取什么措施来解决它?我真的不知道从哪里开始......

该段落的帖子是 here 。这是错误渲染的段落后面的 HTML:

<p><strong>Rasmus:</strong> Groggen smakar frihet kamrat! 
Eller, nä&#8230; det smakar vodka — och — Coca-Cola, varken
mer eller mindre. Hade varit gott med lime i, men då är det 
ju ingen grogg längre&#8230;</p>

字体为 Cardo font驻留在 Google 字体上。

如果您能提供任何有关开始调试的提示,我将不胜感激!

最佳答案

这是 Chrome 字体处理中的一个棘手错误。有多种解决方法,但尚不清楚到底是什么触发了该错误,因此不能保证这些解决方法在所有情况下都有效。

以下文档在 Win 7 上的 Chrome 31 中触发该错误:

<!doctype html>
<meta charset=utf-8>
<title>Font changes mid sentence</title>
<link href='http://fonts.googleapis.com/css?family=Cardo'
     rel='stylesheet'>
<style>
body { font-family: Cardo, Courier New, monospace }
p { text-rendering: optimizeLegibility; }
</style>
<p><strong>Rasmus:</strong> Groggen smakar frihet kamrat! 
Eller, nä&#8230; det smakar vodka — och — Coca-Cola, varken
mer eller mindre. Hade varit gott med lime i, men då är det 
ju ingen grogg längre&#8230;</p>

渲染示例:

enter image description here

因此,从字符串“nä...”到行尾的所有内容都采用辅助字体(为清楚起见,此处为 Courier New)。这同样适用于包含第二次出现“...”的整行。

character repertoire of Cardo由于某些奇怪的原因,不包含“...”。因此,浏览器很自然地会从另一种字体中选择该字符;这也会发生在其他浏览器上。但 Chrome 在字体处理方面完全错误,因此它也对后续字符使用后备字体,向前到行尾,或向后到行首。 (这可能存在差异。)

正在删除text-rendering: optimizeLegibility使问题消失,所以这显然与字距调整或连字有关。这一假设得到了观察的支持,即解决问题的另一种方法是将省略号字符包装在其自己的元素中,例如 <span>&#8230;</span> .

当然,使用三个句点“...”而不是省略号“...”可以避免触发错误。但该错误可能具有更普遍的性质,当文本中的各种字符不存在于所使用的主要字体中时,可能会由这些字符触发。

省略号“...”在 HTML 中的表示方式并不重要(例如,数字引用与命名引用)。

关于html - 尽管 HTML 中的样式没有变化,但网页中句子的字体发生了变化。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21056652/

相关文章:

css - Angular 动画根本不起作用

css - 两种不同尺寸之间的响应式设计

html - @font-face 不加载字体

javascript - AngularJS 自定义所需文本

javascript - html Canvas 平滑移动

javascript - AJAX 与 History.pushState

linux - 串行控制台和帧缓冲区控制台上的字体

asp.net - 更改默认日期格式

CSS3 媒体查询错误

emacs 不使用来自/usr/share/fonts 的字体