margin-top: 50px
基本的に大きな挨拶の画像である.greetingクラスdivに設定しました。ただし、何らかの理由で、接続されていなくても、何らかの理由で前のnav要素を下にドラッグします。
私のメインサイトhttp://christianselig.comには、(Wordpressの実装なしで)それがあるので、ここで何が違うのか混乱しています。
margin-top: 50px
基本的に大きな挨拶の画像である.greetingクラスdivに設定しました。ただし、何らかの理由で、接続されていなくても、何らかの理由で前のnav要素を下にドラッグします。
私のメインサイトhttp://christianselig.comには、(Wordpressの実装なしで)それがあるので、ここで何が違うのか混乱しています。
要素に上部境界線がなく、上部パディングがなく、子にクリアランスがない場合、インフロー ブロック要素の上マージンは、最初のインフロー ブロック レベルの子の上マージンで折りたたまれます。
全体的に単純化しすぎると、次のようになります。
このCSSに使用し てヘッダーをクリアしますid
#masthead.site-header:after {
clear: both;
content: "";
display: block;
overflow: hidden;
}
結果は
すべての#masthead
子 (この場合は 1 つだけ) がフローティングであるため、 は折りたたまれており、レイアウトプロパティが失われています。
これを追加:
#masthead {
overflow: hidden;
}
または、ルール内のfloat
プロパティを削除し、代わりに置き換えます。とにかくこれが浮いているべき理由がわかりません。.main-navigation
overflow: hidden;
マージンの崩壊が原因ですが、メインコンテンツのマージンがその<header>
上の要素と一緒に崩壊しているため、やや直感的ではありません. これは、ヘッダー ( #masthead
) の高さがゼロになるために発生します。これを修正するoverflow:hidden
には、#masthead
header 要素に追加するだけです。
#masthead { overflow:hidden; }
これにより、#masthead が展開されて含まれる浮動nav
要素が含まれるようになり、マージンが #masthead ヘッダーに折りたたまれるのを防ぐことができます。