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-navigationoverflow: hidden;
マージンの崩壊が原因ですが、メインコンテンツのマージンがその<header>上の要素と一緒に崩壊しているため、やや直感的ではありません. これは、ヘッダー ( #masthead) の高さがゼロになるために発生します。これを修正するoverflow:hiddenには、#mastheadheader 要素に追加するだけです。
#masthead { overflow:hidden; }
これにより、#masthead が展開されて含まれる浮動nav要素が含まれるようになり、マージンが #masthead ヘッダーに折りたたまれるのを防ぐことができます。