【发布时间】:2011-07-27 14:21:10
【问题描述】:
我有一个可以在 FF (3x, 4x)、Chrome、IE (6, 7, 8) 中呈现的页面。
在 IE9 上测试时,文本更宽。 调查这个问题,似乎文本实际上是用比其他浏览器更间隔的字母呈现的。
当将字母间距更改为 -0.6px 时,文本呈现正常,类似于其他浏览器。 此外,当将渲染模式更改为“兼容性视图”时,页面看起来还不错。
你知道是什么导致了渲染模式的变化吗?
我使用条件注释“解决”了这个问题,但我对此不太满意
<!--[if IE 9]>
<style>
* {letter-spacing: -0.6px;}
</style>
<![endif]-->
有没有其他方法可以解决这个问题?
编辑
我在不同的机器和不同的浏览器上做了几张截图,结果可以看到here
如您所见,在使用不同浏览器的不同机器上,结果是相同的。唯一呈现不同的是标准模式下的 IE9。源页面是
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title></title>
<style type="text/css">
body {margin:0;padding:0;}
</style>
</head>
<body>
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nunc semper.
</body>
</html>
【问题讨论】:
-
你能举一个活生生的例子吗?这很可能取决于字体细节。你用的是什么字体?
-
没有回答您的问题,只是想指出 IE 7 及以下版本将字母间距舍入到最接近的整个像素值。
-
字母间距在排版中称为“字距调整”。 IE9 确实从 IE8 改变了它的字体渲染引擎。渲染取决于屏幕 dpi 和字体大小、抗锯齿量以及是否使用 ClearType。因此,请注意仅从您自己的屏幕上进行判断。它在其他屏幕上看起来会有所不同。
-
你用reset css吗?因为解决并更改一些默认设置(这是建议 - 不确定......)
标签: css standards render internet-explorer-9 letter-spacing