2012-03-19 20 views
0

私はこの問題を見回しましたが解決策が見つかりませんでした。次のCSSを使用するHTML 5、CSSの枠線の不一致

border: double 1px #999; 
outline: solid 4px #EAEAEA; 

DIVの周りにシンプルな二重枠線を簡単に作成できました。 HTML4で次に、ドキュメントタイプを<!DOCTYPE html>に変更しました。その時点で、下の輪郭が約5pxだけオフセットされていました。奇妙なことに、下部の輪郭だけが、他の3つの辺がまだ境界線と同一平面上にあるからです。

HTML5の枠線の輪郭について何か不明ですか?私はHTML4で完璧に見えることを強調する必要があります。

+0

どのブラウザでテストしましたか? – Andre

+0

あなたはどのブラウザを試しましたか? – thomthom

+0

うまく動作します:http://jsfiddle.net/Er4UE/デモをお願いします。 –

答えて

1

「スタンダードモード」を有効にしていない不完全なトランジションDOCTYPEを使用した場合は、モードモードのボックスモデルの問題である可能性があります。適切なDOCTYPEがなければ、 "古い"ボックスモデルを含むIE5バグのエミュレーションが得られます。

<!DOCTYPE html>とした動作は、CSS仕様では正しいと見なされます。

補正するには、境界線の幅で要素のサイズを縮小するのが理想的です。また

(あなたが例えば%でサイズを使用している場合)、あなたが期待する1(IE8 +で動作します)にスイッチボックスモデル:それは唯一の国境に影響

div {box-sizing: border-box;} 

注こと。アウトラインはボックスの外にありますが、レイアウトには影響しません。輪郭のための部屋は、等価のmarginを使用して予約することができます。

+0

ここに私のデモがあります:http://jsfiddle.net/Bzpj4/ – Andy

+0

@Andy:余白に4px;を加えてください。アウトラインは常にボックスの外にあり、決して何かを押しのけることはありません。 – Kornel

+0

あなたは何を意味するかでフィーリングを更新できますか? – Andy