2

我有一个网站,我更喜欢使用 ­ ; (软连字符)按我想要的方式断词。

单击此处查看 Chrome 的屏幕截图

问题计算机运行 OS X(多个版本),并且问题出现在 Chrome 和 Safari(多个版本)中。具有完全相同操作系统和浏览器版本的计算机可以以不同的方式显示这一点。屏幕截图是在 OS 10.8 上使用 Chrome v. 21.0.1180.75 拍摄的。

它看起来像软连字符一样有效,因为它分割了单词,并插入了一个连字符“-”,但它也会生成带有十字的矩形。

该网站使用@fontface,如果这与它有任何关系的话。

谢谢!

4

3 回答 3

3

我已经对Webkit 中的软连字符错误进行了详细调查。简而言之,问题似乎是 Helvetica Light(和其他一些字体,如 Avenir)中的错误和 Webkit 中的字体堆栈错误的组合。您可以通过在字体堆栈中包含 Arial 来修复它,例如。

font-family:"Apercu Light", Arial, sans-serif;

于 2014-08-14T13:31:35.660 回答
2

我在 webkit/mac 上发生了同样的问题。创建字体的代工厂帮助了我并提供了有效的解决方案(添加 Arial)

font-family:"Apercu Light", Arial, Calibri, sans-serif; 

代替

font-family:"Apercu Light", Calibri, sans-serif; 

在字体文件更新之前,这是一个临时解决方案。对于这种特殊情况,我认为 Arial 比 webkit/mac 上的 helvetica 有更好的支持。

于 2014-05-12T15:42:24.950 回答
2

特别是考虑到您的fonttest website,问题似乎是由两个因素引起的:OS X 上的一些 WebKit 浏览器的一个错误使它们在一行文本中使用字形呈现软连字符,而不是仅仅将其视为控制字符;StagSansWeb 字体要么没有字形(使浏览器使用虚拟字形),要么有一个奇怪的字形。如果这些浏览器另外将软连字符视为允许连字符,这将解释这些症状,前提是 Helvetica 有一个用于软连字符的空字形。

这是高度推测或推测的。

在更坚实的基础上,标准中没有严格定义发生连字符的文本的呈现。如果浏览器在 上应用连字符foo­bar,它们应该在行尾呈现“foo”,后跟连字符,但标准没有说明是哪个连字符。它可以是 HYPHEN-MINUS(即 Ascii 连字符),或者 HYPHEN,甚至是 SOFT HYPHEN,如果它有一个字形的话。也许甚至是别的东西。它甚至可能取决于语言,因为某些语言有自己的连字符。

所以 WebKit 浏览器已经开始支持专有属性是可以理解的-webkit-hyphenate-character。但是,它似乎没有得到正确实施。在 Windows 7 上的 Chrome 和 Safari 上进行测试-webkit-hyphenate-character: "\00AD",我注意到它们在没有添加任何连字符的情况下“连字符”单词(包含软连字符)(就像它们使用空字形一样),即使该属性的其他值工作正常。

总而言之,我希望您可以通过避免使用 StagSansWeb 之类的字体来处理可能连字符的文本来避免这个问题。可以通过修改字体来解决问题。

于 2012-08-09T22:06:37.197 回答