下のCSSに基づいて、最初のdivにトップマージンが得られない理由を知っている人はいますか?これは、Mac OSX Lionで動作するChrome、Safari、Firefox 4(Snow Leopardでも同じようにレンダリングされています)でも同じです。私は最初の項目が内側と内側のdivの周りに5ピクセルのマージンで表示されることを期待しています。マージンがトップにも適用されないのはなぜですか?私がmargin-top:5pxをCSSに指定しても、私は期待どおりレンダリングしません。CSSの上マージンの問題
<!DOCTYPE html>
<html>
<head>
<style>
.outer{
background-color:red;
width:100px;
height:100px;
margin-bottom:20px;
}
.inner{
background-color:white;
margin:5px;
}
.shim{
height:1px;
}
.outer2{
background-color:red;
width:100px;
height:100px;
margin-bottom:20px;
padding:5px;
}
.inner2{
background-color:white;
}
</style>
</head>
<body>
<div class="outer">
<div class="inner">
Margin
</div>
</div>
<div class="outer">
<div class="shim"></div>
<div class="inner">
Margin+Shim
</div>
</div>
<div class="outer2">
<div class="inner2">
Padding
</div>
</div>
</body>
</html>
文字通り、1pxのパディングを外側のコンテナに追加する必要があり、魔法のように動作し始めます。 CSSはとても恣意的ですが、私は彼らの仕様で何が指定されているのかは分かりません。 – EpicPandaForce