CSSでIEとFirefoxでの表示の違い

解決済みの質問

CSSでIEとFirefoxでの表示の違い

IE6とFirefox2.0で試しています。
次のように、naviでborderを使うとIE6では普通に表示されるのですが、
Firefoxだと右側にborderのサイズの2倍分くらいはみ出てしまいます・・・
両方に正常(希望通り)に表示されるようにするには
どのような記述にすれば良いのでしょうか?

「sample.css」
.wrapper {
background-color: #ccffcc;
margin: auto;
width: 600px;
height: 100%;
}
.navi {
background-color: #aaffaa;
border: 3px solid #ff4500;
width: 600px;
height: 150px;
position: relative;
}

「a.html」
<html>
<head>
<link rel="stylesheet" href="sample.css" type="text/css">
</head>
<body>
<div class="wrapper">
<div class="navi">
</div>
</div>
</body>
</html>

投稿日時 - 2008-09-13 15:03:49

連想キーワード:

QNo.4325704

すぐに回答ほしいです

質問者が選んだベストアンサー

これはIEのバグです。本来、widthはpaddingやborderの内側なので全体のサイズは(width+左padding+左border+右padding+右border)になるFirefoxやそのほかのブラウザが正しいです。

回避方法としては、「_width と書いても下線を無視して width と見なしてしまう」という別のIEのバグを利用して、下記のように書くと両方で外側のサイズが600pxになります。

width: 594px; /* IE以外用 */
_width: 600px; /* IE専用 */

この下線を使った回避法は他の場面でも使えます。
IE8になれば多分バグが直ってるはずですが。

投稿日時 - 2008-09-13 15:46:21

お礼

ご返答ありがとうございます。
なるほど、IEのバグなんですね。
たしかにその方法はいろいろ使えそうです。
ありがとうございました。

投稿日時 - 2008-09-13 17:24:50

ANo.1

1人が「このQ&Aが役に立った」と投票しています

あわせてチェックしたい
  • link rel="stylesheet" の設定について ...
  • div#left {width:50%; ...
  • <link rel="stylesheet"を、<body>~</body>の中に書く場合。 ...
PR
【回答募集中】花粉にひと言、物申す![ 詳細 ]

OKWaveのオススメ

教えて弁護士さん!

お金の悩みQ&A特集はこちら