为什么IE9/Firefox显示的字体大小与其他浏览器不同?

12

我正在编写网站的CSS样式,发现Internet Explorer 9(IE9)显示的字体大小与其他浏览器(Firefox、Chrome、Safari、IE7和IE8)不同。

我尝试使用一些RESETS,并在px中指定字体大小,但是IE9仍然显示字体大小差异。

我尝试使用font-sizeptin、百分比等单位,但都没有成功。

我之前已更改过字体(Georgia、Times New Roman、Verdana),其中某些字体在IE9中显示更大,而其他字体则较小。

我检查了IE的缩放设置和文本大小设置,它们分别为100%和中等大小。

为了说明问题,我创建了一个简单的HTML和CSS示例,您可以在下面的代码中看到。如何解决这个问题?谢谢!

问题:

enter image description here

代码:

HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <link rel="stylesheet" type="text/css" href="style.css" />
    <title>Untitled Document</title>
</head>
<body>
    <p>
    AAAAA BBBBB CCCCC DDDDD EEEEE FFFFF GGGGG HHHHH IIIII JJJJJ KKKKK LLLLL MMMMM NNNNNN OOOOO PPPPP QQQQQ
    </p>
</body>
</html>

CSS

->

CSS

/* RESET */

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed, 
figure, figcaption, footer, header, hgroup, 
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font: inherit;
    vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section {
    display: block;
}
body {
    line-height: 1;
}
ol, ul {
    list-style: none;
}
blockquote, q {
    quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
    content: '';
    content: none;
}
table {
    border-collapse: collapse;
    border-spacing: 0;
}

/* END OF RESET */

body {
    background-image:url(GreenLine.png);
    background-repeat:no-repeat;
    font-family:"Courier New", Courier, monospace;
    font-size:12px;
}

请注意非IE浏览器中的红色条纹 - http://ie.microsoft.com/testdrive/ - 这些是由字体渲染差异引起的(并且由于红色背景而加剧,使这些浏览器看起来有缺陷)。 - c69
你可能会在像doctype.com这样更注重设计的网站上得到更好的答案,因为它似乎与字体渲染相关,而不是CSS。 - Ishmael
你正在检查哪个版本的Firefox?答案是“重要的”。我希望Firefox的渲染与IE9相匹配。 - thirtydot
算了,我还是回答了,尽管你的描述有些不一致 - IE9和Firefox应该匹配,除非你使用的是早于4的Firefox版本。 - thirtydot
thirtydot,这是真的。我更新了Firefox到最新版本。现在Firefox显示的就像IE9一样。我也更新了其他浏览器(Safari和Chrome),但差异仍然存在。 - bbastos
@Bruno Bastos:我在我的答案中已经解释了发生这种情况的原因。以防您错过了,请检查我的回答中的最后一个链接没有办法解决这个问题。 - thirtydot
3个回答

7

-1
尝试设置 body{font-size:medium; line-height:1em;},其中字体大小现在为16px,并使用百分比在 p 标签上增加或减少font-size。确保限制 p 标签的宽度。
P{max-width:40%; font-size:86%; line-height:1.2em;}

请注意,我在您的代码中编辑了一行中的两个拼写错误。StackOverflow答案应该包含可工作的代码,而不是会让他人陷入新麻烦的代码。 - Volker E.

-2

两种可能的方法,都未经测试:

  1. 尝试将文档类型更改为除xhtml transitional之外的其他内容。看看HTML5文档类型是否可以更好地呈现它。<!DOCTYPE html>

  2. 尝试仅使用font-family: monospace;,以查看是否存在字体问题。

编辑

如果这些方法都不起作用并且您找不到解决方案,您可能需要使用条件注释为IE9提供不同的font-size


我已经将DOCTYPE和字体系列更改为等宽字体,但问题仍然存在。之前我曾更改过字体(Georgia,Times New Romam,Verdana)。在IE9中,有些字体显示得更大,而其他字体则更小。PS:我检查了IE中的缩放设置和文本大小。它们分别为100%和中等大小。谢谢。 - bbastos

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接