我有一些(测试)HTML就像这样:
<!DOCTYPE html>
<html lang="en">
<head>
<title>Test Monospace</title>
<style>
tt { font-family: monospace; }
</style>
</head>
<body>
<h1>Test Monospace</h1>
<p>This is normal text</p>
<p><tt>This is monospaced text</tt></p>
</body>
</html>
当我在IE中显示时,等宽文本使用Courier New而不是我在IE中配置的字体。如果我除了删除<style>...</style>
块之外什么都不做,它会正确使用配置的字体。
它只适用于IE,而不是FF或GC。 Windows 7上的IE 9。
无论配置样式的位置如何,它都会执行此操作,包括单独的样式表或使用样式属性。
真正的问题是指定font-family和font-size是使用以下样式修复浏览器的等宽文本问题的关键:
/* monospaced sizes are horribly broken in browser default stylesheets */
code, kbd, pre, samp, tt {
font-family : monospace,monospace; /* Chrome (but note that this makes IE use "Courier New" for some strange reason, as does plain monospace.) */
font-size : 1em; /* Firefox, IE,Opera */
}
有谁知道如何阻止IE这样做?
答案 0 :(得分:3)
monospace
不是特定的字体系列。与serif
或sans-serif
完全相同,它们是通用的系列定义。
font-family: monospace;
只是告诉浏览器使用默认的“monospaced font”,在本例中为Courier New。另请参阅this resource。
修改强>
如果省略CSS中font-family
的{{1}}规则,IE9似乎会显示自定义设置的纯文本字体。请看这个小提琴:http://jsfiddle.net/sVCwd/1/
希望这有帮助。
答案 1 :(得分:2)
似乎在IE中,monospace
表示Courier New。更改“纯文本字体”的IE设置会影响某些元素的默认字体,例如tt
,但它不会更改monospace
的含义。在old discussion似乎知道他所说的内容的人写道:“(请不要评论serif和monospace字体可以是
使用工具,Internet选项选择。他们与这无关
默认的CSS通用字体。)“
如果你想作为IE用户改变monospace
的含义,我想你需要在Windows注册表中找到一个条目(我无法在Windows 7中找到它 - 不能例如,找到IEFixedFontName
。
但是如果您只想要一些以您喜欢的等宽字体呈现的元素(考虑到实际效果大致相同),您可以设置一个包含
等内容的用户样式表code, kbd, pre, samp, tt, xmp, listing, plaintext {
font-family: Consolas !important;
}