1

私は次のような(テスト)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で表示すると、IEで構成したフォントの代わりに等幅テキストでCourierNewが使用されます。ブロックを削除する以外に何もしなければ<style>...</style>、設定されたフォントが正しく使用されます。

これはIEに対してのみ実行され、FFまたはGCに対しては実行されません。Windows7上のIE9。

これは、別のスタイルシートやスタイル属性の使用など、スタイルが構成されている場所に関係なく行われます。

本当の問題は、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がこれを行うのを止める方法を知っている人はいますか?

4

2 に答える 2

3

monospace特定のフォントファミリではありません。一般的なファミリ定義であるserifまたはとまったく同じです。sans-serif

font-family: monospace;デフォルトの「等幅フォント」を使用するようブラウザに指示するだけで、この場合は Courier New です。このリソースも参照してください。

編集:

font-familyCSS でルール forを省略した場合tt、IE9 はカスタム セットのプレーン テキスト フォントを表示するようです。このフィドルを参照してください: http://jsfiddle.net/sVCwd/1/

お役に立てれば。

于 2013-02-05T08:54:39.753 に答える
2

IE では、monospaceCourier New を意味するようです。「プレーン テキスト フォント」の IE 設定を変更すると、 などの一部の要素のデフォルト フォントに影響しますttが、 の意味は変わりませんmonospace。「(ツール、インターネットオプションを使用して選択できるセリフおよびモノスペース フォントについてはコメントしないでください。デフォルトの CSS ジェネリック フォントとは何の関係もありません。)」 </p>

IE ユーザーとして の意味を変更したい場合はmonospace、Windows レジストリでそのエントリを見つける必要があると思います (たとえば、Windows 7 では見つけられませんでしたIEFixedFontName)。

しかし、一部の要素を好みのモノスペース フォントでレンダリングしたい場合 (実用的な効果を考慮する限り、ほとんど同じことです)、次のようなコンテンツを含むユーザー スタイル シートを設定できます。

code, kbd, pre, samp, tt, xmp, listing, plaintext {
    font-family: Consolas !important;
}
于 2013-02-05T05:38:23.737 に答える