次の Html は、FireFox または IE7/8 (スタイル タグの有無にかかわらず) でうまく機能します。
<!-- Deliberately no DocType to induce Quirks Mode -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type="text/css">
Input.quirks
{
margin: 1px 0px 1px 0px;
border: solid black 1px;
}
</style>
</head>
<body>
Should work in Quirks Mode <br />
<input class="quirks" type="text" style="width: 300px;" /><br />
<input class="quirks" type="text" style="width: 147px;" /><img src="./Graphics/SpacerPixel.gif" border="0" /><input class="quirks" type="text" maxlength="25" style="width: 150px;" /><br />
<input class="quirks" type="text" style="width: 94px;" /><img src="./Graphics/SpacerPixel.gif" border="0" /><input class="quirks" type="text" style="width: 100px;" /><img src="./Graphics/SpacerPixel.gif" border="0" /><input class="quirks" type="text" value="DA8 1DE" style="width: 100px;" />
</body>
</html>
ただし、上記の HTML の上部に DocType がないため、両方のブラウザーが「Quirks」モードで動作するようになっていると言われています。
これはダメだと言われます。
いくつかの DocType を試しましたが、両方のブラウザーで正しいレンダリングを生成する DocType/HTML の組み合わせが見つかりませんでした。
「Quirks」モード以外では、テキストボックスの幅を設定しようとする試みに対してブラウザが異なる反応を示します。これは、FF または IE のいずれかの命令を修正できる位置につながるようで、突然、もう一方が失敗します。
細かいところ...
1.> ここでの目的は、3 つの行が各ブラウザーでレンダリングされたときに正確に同じ幅に見えるようにすることです。レンダリングされた幅がブラウザー間で同じである必要はありません。単に、各ブラウザー内で正確に位置合わせ/整列されて表示されるだけです。
2.> 参照されている画像は、幅 3 ピクセル、高さ 1 ピクセルのスペーサー画像です (これに代わるものも良いでしょう)。
3. > できればテーブルを導入したくない。
Quirks モードは、ブラウザー間で一貫している唯一のモードのようです。しかし、IE8 の最終バージョン、または実際には将来のブラウザーでは、quirks モードがデフォルトにならないのではないかと心配しています。
私は何をすべきか ?ブラウザー間で一貫した外観を作成する DocType を指定する (およびおそらく html を変更する) にはどうすればよいですか?