16

【原标题:IE 9文字渲染很差;有解决方法吗?)

IE 9 在我的应用程序中呈现的文本非常糟糕。问题不在于我的显示器的清除类型设置,因为兼容模式下的 IE 9、Firefox 和 Chrome 都可以很好地呈现文本。以下是使用 IE 9、兼容模式下的 IE 9 和 Chrome 呈现文本的方式的并排比较:

即 9

IE 9 兼容模式

在此处输入图像描述

我尝试应用此答案,但它似乎不适用于 IE 7 之后的任何内容。有人知道我们可以应用于我们的网站以修复 IE 9 的错误文本呈现的任何变通方法吗?

编辑:

我已将问题页面归结为基本要素。如您所见,复制并不需要太多。如果 IE9 和 IE9 标准的文档模式,请确保 IE 具有浏览器模式:

<html xmlns="http://www.w3.org/1999/xhtml">
  <body style="background-color: rgb(30, 34, 59); color: rgb(255, 85, 0); font-size: 20px">
    Home
  </body>
</html>
4

7 回答 7

13

简短的回答:当您以pt(点)而不是像素指定字体大小时,这是一个问题。

所以发生的事情是新的 IE9 渲染引擎使用 DirectWrite,它不会像使用 GDI+ 那样捕捉到最近的像素,所以如果你的 pt 大小没有映射到整个像素数,它会以这种方式绘制它,这使它显得模糊。

IE8 兼容模式不会遇到这个问题,因为它使用我们习惯的常规 GDI 渲染。

所以检查你所有的样式表等,如果你要求点大小的字体,这正是 IE9 中给出的,并且根据你使用的字体等,你的点大小可能会或可能不会映射到清晰的大小。

这在这里详细解释:

于 2011-04-12T18:14:27.127 回答
3

似乎设置opacity:.9999bodyIE9 标准模式下呈现文本与在 Quirks 模式下的表现更相似。

于 2011-04-18T12:49:59.850 回答
1

标准模式下的 IE9 对文本使用亚像素寻址。可以说它“平滑”了文本字符,或者您可以反过来说,即它“模糊”了字符。本质上是一样的。

就个人而言,我没有发现您的三张图片之间有任何容易察觉的差异,实际上更喜欢第一张。但是,这取决于个人喜好。

我在网上搜索了一下,这似乎不是一种清理关闭 IE9 上的子像素渲染的方法。您可能会对此链接感兴趣:Disable Cleartype (text anti-aliasing) in IE9

在 WPF 中,有一个选项可以关闭亚像素字体渲染并强制字母“对齐像素”。但是IE9好像没有这样的开关。

但是,我的建议是:您一开始就想做这么大的问题吗?如果亚像素文本渲染在您的网站上给您提供了非常丑陋的输出(您是否使用了很多非常小的字体?),也许您首先需要重新考虑您的网站布局。在网站中最好避免使用太小以至于子像素渲染使它们不清楚的类型。

而且不知道将来其他浏览器何时会在文本中添加亚像素渲染——事实上,FF4 已经使用了 Direct2D,但可能没有使用 DirectWrite。

于 2011-04-18T04:04:41.287 回答
1

Internet Explorer 9 似乎在真正随机的条件下停止使用亚像素抗锯齿。例如,这是另一个触发它的例子(我假设还有更多):

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML><HEAD>
<TITLE></TITLE>
<BODY>
Outside the div - with sub-pixel AA. :)
<div style="border-radius: 1px; overflow: hidden;">
Inside the div - no sub-pixel AA. :(
</div>
</BODY></HTML>

div 内的文本不会使用亚像素(“彩色”)抗锯齿渲染,但它外部的文本会。border-radius和声明都是overflow触发错误所必需的。

(有人可以尝试如果它发生在他们的系统上并发表评论吗?我很想知道该错误是否仅在某些系统配置上触发。)

如果您将 IE 开发人员工具中的文档模式切换为“IE9 标准”以外的任何内容,问题就会消失。

我个人几乎愿意忍受它,但如果它真的困扰你,我建议逐步剥离你的样式表以追踪触发它的原因。

于 2012-01-28T17:37:59.840 回答
1

我可以使字体看起来不错的唯一方法是通过以下方式回退到 IE8 功能:

<meta http-equiv="x-ua-compatible" content="IE=8" />

Microsoft 更新http://support.microsoft.com/kb/2545698已经安装,我已经使用font-size: 11px;

opacity:.9999解决方案总比没有好,但不如 IE8 模式显示的那样好。

于 2012-06-20T05:03:59.753 回答
0

ClearType 字体渲染用于所有 IE9 文档模式;亚像素定位仅用于 IE9 的默认标准模式。IE9 的兼容模式——Quirks、7 和 8——使用全像素文本度量。

因此,请尝试切换您的文档类型以使用Quirks 模式

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

或者

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

或其中一种兼容模式。

来自 MSDN 的更多信息

于 2011-04-13T05:42:23.693 回答
0

如果你需要使用 IE 并且你讨厌这个图像上的平滑 http://i.stack.imgur.com/SViG0.png 尝试打开兼容性视图(ALT+T 显示工具菜单)

于 2011-05-19T06:51:37.220 回答