首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用"f“和"i”时的Safari kerning问题

使用"f“和"i”时的Safari kerning问题
EN

Stack Overflow用户
提问于 2015-04-16 17:45:04
回答 1查看 2.4K关注 0票数 5

我在OSX10.10.3上运行Safari 8.0.5。

每当使用"f“和"i”两个字符时,我都会遇到一个字母间距问题。我的猜测是,这是一个Safari的错误,我已经把它作为这样的提交给苹果,但也想看看我是否能在同一时间找到一个解决办法。

HTML以两种不同的字体输出短语"The fish is large“。为了强调这个问题,我在每个字符之间添加了10 To的字母间距。

HTML:

代码语言:javascript
复制
<div class="p1">
    The fish is large
</div>
<div class="p2">
    The fish is large
</div>

CSS:

代码语言:javascript
复制
div { letter-spacing: 10px; margin-bottom: 10px; }

div.p1 { 
    color: #009900;
    font-family: Helvetica;
}
div.p2 {
    color: #000099;
    font-family: Arial;
}

这就是我在Safari中输出的内容:

为了测试目的,我在"f“和"i”字符之间添加了一个HTML注释,这似乎奏效了:

代码语言:javascript
复制
<div class="p1">
    The f<!----->ish is large
</div>

输出如下:

虽然这在技术上有效,但对我来说并不是一个理想的解决方案,因为这里的内容实际上是由WYSIWYG编辑器生成的。

似乎只有当"f“和”我“在一起时,才是问题所在。我不确定这些字母在Safari中是否有特殊的含义,但在英语中这是一个非常常见的字母序列,所以它们真的不应该有那么小的关键字。

我还试着添加以下内容:

代码语言:javascript
复制
 -webkit-font-feature-settings: "kern";

这确实把"s“推到了右边,但"f”和"i“仍然在一起。

大写的"F“不存在相同的问题:

而"fi“之后的角色似乎并不重要。我可以把它换成任何其他的东西,但它仍然有同样的问题。

如果"fi“出现在单词中间,它也会做同样的事情:

我已经证实,这个问题似乎也存在于我的iPhone 6 Plus上,运行最新版本的Safari,所以我怀疑这仅仅是我的问题。

为了说明这个问题,我创建了一个处理必要的HTML和CSS的工具,希望它能在您的终端上重现这个问题。https://jsfiddle.net/38keruv7/4/

有没有人有什么解决办法,不要求我的客户在WYSIWYG编辑器的中间插入HTML注释?

我想我可以在输出数据之前扫描和替换特定的组合,但是在处理大得多的数据块时,这似乎是对服务器资源的一种效率很低的使用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-16 17:59:07

看来你发现了一个Safari虫。连接的"fi“是一个排印结扎。CSS3有一个可以用来控制它们的font-variant-ligatures属性;Safari使用-webkit前缀支持它。看起来-webkit-font-variant-ligatures: no-common-ligatures;解决了这个问题,至少在Safari8.0.3中是这样的:

代码语言:javascript
复制
div {
    -webkit-font-variant-ligatures: no-common-ligatures;
    letter-spacing: 10px;
    margin-bottom: 10px;
}

这里有一个更新的小提琴:https://jsfiddle.net/38keruv7/5/

如果您仍然有问题,下面有一个相关的问题,即rendering: optimizeSpeed;也解决了这个问题:用Safari连接的信件

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29682271

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档