CSSでちょっとおかしいぞ?何があった?

仕事・・というか、会社で使う内部サイト制作を行っているけど、思ったようなCSSの...

仕事・・というか、会社で使う内部サイト制作を行っているけど、思ったようなCSSの状態になってくれない。
<html>
    <head><title>CSSでおかしい</title></head>
    <body>
       <div id="header">
          <h1>見出し1</h1>
          <ul>
             <li>aaa</li>
             <li>bbb</li>
          </ul>
       </div>
    </body>
</html>


ざっと言えば、こんなHTMLを書いていて、(かなり雑な感じですが・・・)
で、CSSで
#header{
    height:60px;
    background-image:url("画像パス");
}
#ul{
    margin-top:20px;
}


っておいたら、#headerのほうにマージンがかかってしまう。どうもFirefoxだけっぽい。
うーん、おかしい。もう少し調べてみようと思うけど・・・。なんかぼやーっとしてるんだろうか・・・。どーんとした基本部分で間違っているような気がしてならない・・。


ってことで調べてみたら・・・

「相殺」というワードが。
つまりは
親ボックスに border と padding が指定されていないとき、
子ボックスにマージンがあると、両ボックス間でマージンの
相殺が行われる
ということらしい。
これがIE7ではブラウザの実装差異によって、問題なく表示されるとのこと。うーん、勉強になる。

んが、しかし、よくこれまで、この状況にならなかったなぁと逆に自分を思った。
ちょっと調整してみようっと。

この記事の周辺情報

著者

稲本[せぶん]浩介
福岡の企業に在籍し、Webを中心に活動中。Webディレクター、IA(インフォメーション アーキテクト)、マークアップエンジニア、CSSコーダーetc。
Twitterボタン

amazonさんがこのサイトを見て、書籍を紹介してくれています。