[CSSチュートリアル】CSSマージンの重なりと解決策を詳しく探る
先日、CSS関連の知識を見直し、その効果確認と他の方の参考になればと思い、CSSの定番であるマージンオーバーラップの問題をまとめてみましたので、抜けがある部分についてアドバイスをいただければと思います。
問題点:CSSレイアウトを使用していると、下図のように兄弟ノードや親子ノードの上下の余白が重なってしまうことがあります。
<style>
.out {
width: 100%;
background-color: pink;
}
.out>div {
height: 100px;
width: 100%;
background-color: rgb(223, 136, 23);
margin: 5px 0 10px;
}
</style>
<section class="out">
<div>11</div>
<div>22</div>
<div>33</div>
</section>
セクション全体の高さを見ると、実際には345pxであるべきですが、親と兄弟のマージンが重なっているため、高さは320pxになっています。では、実際にどのように修正すればよいのでしょうか。
BFC(Block Formatting Context throughout)を作成することでこの問題を解決することができるので、まずはBFCの原理を明らかにします。
BFC内の要素は互いに影響を与えず、外部の要素から比較的独立した閉じた領域である。
隣接するBFC間で垂直方向の余白の重なりが発生しない、つまり、要素の外側の余白が重ならないようにしたい場合にBFC領域を作成する。
(b) BFC領域は、フローティング要素のボックスと重ならない。
の場合、BFCは高さ計算に浮動要素をカウントする。
BFCを作成するにはどうすればよいですか?
1. overflow属性を表示しないように設定する。
2. floatがnoneにならないようにする。
3.位置の値が静的または相対的でないこと。
4. display属性がtableの場合。
<style>
.out {
width: 100%;
background-color: pink;
overflow: hidden;
}
.out>div {
height: 100px;
width: 100%;
background-color: rgb(223, 136, 23);
margin: 5px 0 10px;
/* overflow: hidden; */
float: left;
}
</style>
<section class="out">
<div>11</div>
<div>22</div>
<div>33</div>
</section>
再度、セクションの高さを見ると、高さが345pxに復元されており、BFCがフローティング子要素の高さを含めて高さを計算していることが証明されています。
CSSマージンの重なりと解決策については、この記事がすべてです。CSSの余白の重なりについては、過去の記事を検索していただくか、引き続き以下の記事をご覧ください。
関連
-
[CSSチュートリアル】純粋なCSSでWebページの内容をコピーできないようにする方法
-
[CSSチュートリアル]z-indexの違い。cssのz-index: 0とz-index: autoの違い。
-
[CSSチュートリアル】CSSのクラスとidの共通命名規則
-
[CSSチュートリアル]CSSは、メソッドのさまざまな記事の分割行のスタイルの要約を達成するために
-
[css3]ピュアCSS3によるネオンライト効果
-
[Web標準チュートリアル】html5+CSS3コーディング規約
-
[CSSチュートリアル】CSSを使ってボックスの水平・垂直方向の中央寄せを実現(全8種)
-
[css3]CSS3トランジションによる通知メッセージ回転バーの実装
-
css3]アニメーションとトランジションの違いについて
-
[CSSチュートリアル】css3 背景画像 半透明 コンテンツ 不透明 方法例
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[CSSチュートリアル】よくある2D変換を5つ実現するCSS
-
[CSSチュートリアル】CSSで2カラムレイアウトを実現するN種類のメソッド
-
[CSSチュートリアル】検索ボックスの非表示機能を実現するCSS(アニメーションの順送り・逆戻りシーケンス)
-
[Div+CSSチュートリアル】divの背景を透明にする設定例
-
[CSSチュートリアル】シンプルなナビゲーションバー機能を実現するhtml+css
-
[CSSチュートリアル]実装ステップの吸引上部と下部のH5レイアウトのための純粋なCSSソリューション
-
[CSSレイアウト例】等間隔の四角形で完璧なページレイアウトを実現する方法
-
[css3]CSS3アニメーションによるグラフィックドロップ効果
-
[CSSチュートリアル】CSSでデータホットスポット効果を実現する方法
-
[css3]css3のtransformの遷移のジッターの問題を解決しました。