div要素にマージンを設定していますが、body要素にもそのマージンがあります。
このコードを考えてみましょう:
<!-- HTML -->
<body>
<div>
</div>
</body>
<!-- CSS -->
<style>
html,body {
height:100%;
margin:0;
padding:0;
outline:1px solid blue;
}
div {
margin:20px;
outline:1px solid red;
}
</style>
これが結果であり、問題です。
これまでborder:1px solid transparent;
、body要素にプロパティを追加することで問題を解決しました。1px
境界線のためにスクロールバーが表示されるため、これにより100%の高さが台無しになります。なぜこれが起こるのですか?
考えられる解決策(ヘルプに感謝):apadding-top:1px
とaを追加しますmargin-top:-1px
。これにより、100%の高さがスクロールバーで台無しにならず、マージンの崩壊を回避できます。