Google Chrome文字阴影渲染

时间:2010-10-28 18:42:41

标签: css google-chrome css3

Google Chrome在实施CSS3文字阴影方面存在极其烦人的缺陷。应用文本阴影时,关闭子像素抗锯齿。没有多少-webkit-font-smoothing会说服它。粗糙的α通道抗锯齿导致阴影与字母混合,这与像素化文本一起最终产生非常难看的外观。如果使用手写字体,例如Monotype Corsiva http://www.newfonts.net/index.php?pa=show_font&id=130

,则更为明显

你可以清楚地看到其中一个地方是推特 - http://dev.twitter.com/pages/auth。文本阴影用于文本大纲:在Chrome中查看页面,与FF或IE进行比较,您会看到它有多糟糕。

对于较小的文本,效果会变得更糟,直到它使其完全无法读取。有关该问题的技术讨论,请访问:http://www.google.com/support/forum/p/Chrome/thread?fid=5d1c0f2082af0f21000483e9a516d36e&hl=en

Chromium项目中提交了一个错误(问题23440)。这个bug已经存在了一年多,但仍未分配给任何人。谷歌开发人员看到它,认为它不是那么重要,并让它老化。原来他们只修复了“流行”的错误,这种做法很蹩脚,看起来令人印象深刻!我对Chrome非常失望! Web排版和CSS3每天都被越来越多的人使用,使网络更加美丽!遗憾的是,这样的问题可以减缓这种情况。

因此,需要公众努力才能解决这个问题。告诉其他人,写在你的博客中。你可以去http://code.google.com/p/chromium/issues/detail?id=23440投票支持这个问题。您可以点击位于左上角的星标(需要某种类型的Google帐户--gmail等)来执行此操作。

为了使事情更清楚 - 我的问题有两个目标:

  1. 查找技术解决方法。
  2. 让Google修复Chrome中的问题。
  3. 我会对发布在有关该问题的文章中的每个链接进行投票,并将其标记为接受最佳技术解决方案或公共努力。

3 个答案:

答案 0 :(得分:26)

@sebastian's fix可能不适用于旧版本的Chrome Iron Browser(Chromium fork)v3.0.197.0下的屏幕截图:

所有已分配阴影的内容看起来都相同,-webkit-font-smoothing-webkit-text-stroke无效。

相反,我已经做过实验,直到我提出这个问题:http://jsbin.com/acalu4

tldr:在您的其他影子之前添加一个无害的0 0 0 transparent,

已知问题:某些浏览器只能处理1 text-shadow。为了不影响它们(杀死它们唯一的阴影),这应该只通过javascript应用到Chrome。

答案 1 :(得分:11)

第一部分(技术解决方法):给文本一个细微的笔触。

尝试使用此css,您可能需要调整值以获得所需的效果。

-webkit-font-smoothing: subpixel-antialiased; /* or antialiased; */
-webkit-text-stroke: .10pt black; /* or 0.01em might be better */

只有webkit浏览器(Chrome,Safari)才能读取它,因此不会影响FF或IE。

在此处播放示例:http://jsfiddle.net/SebastianPataneMasuelli/NfmU7/6/

答案 2 :(得分:1)

我找到了解决方案。它似乎适用于Safari 4 +,Chrome(在8.0x上测试)和Firefox 3.5。

试一试:

text-shadow: 0px 0px rgba(0,0,0,0.75), 
             0px 1px rgba(0,0,0,0.75), 
             1px 0px rgba(0,0,0,0.75), 
             0px 0px rgba(0,0,0,0.75);