マージン崩壊とは何ですか?どのような状況で現れるのでしょうか?どうやって対処すればいいのでしょうか?
この記事では、CSS ボックス モデルを理解し、マージン崩壊とは何なのかを紹介します。マージン崩壊はどのような状況で発生しますか?そして解決策について話し合います。
CSS では、すべての要素を 1 つずつ「ボックス」で囲みます。私たちはブロックレベルのボックス (ブロック ボックス) の 2 種類の「ボックス」を広く使用します。
) とインライン ボックス (インライン ボックス
)。
CSS ボックス モデルとは何ですか?
CSS では、デザインとレイアウトの際にボックス モデルが使用されます。
ボックス モデルの定義は次の部分に分割できます。
-
コンテンツ ボックス : この領域はコンテンツを表示するために使用され、サイズは次のとおりです。
width
とheight
によって設定されます。 -
Padding box: コンテンツ領域の外側に囲まれた空白領域。サイズは ## によって設定されます。 #padding
関連プロパティ。
- 境界ボックス: コンテンツとパディングを折り返します。サイズは、border
関連プロパティによって設定されます。
- マージンボックス: これは最も外側の領域であり、ボックスと他の要素の間の空白スペースです。サイズは、margin
関連プロパティによって設定されます。
box-sizing
box-sizing 属性は、ブラウザが要素の合計幅を計算する方法を定義します。全高。
-
content-box
(デフォルト値)
(標準ボックス モデル)、width: 100pxはコンテンツ領域を指します。幅100ピクセル。
- ボックスのサイズ =
- content(100px)
- content(100px)
- ##border-box
(代替 (IE) ボックス モデル)
width: 100px は、コンテンツ領域の境界線の内側の余白
の合計を指します。幅は100ピクセルです。ボックスのサイズ =
- content
-
padding
border
=100px
-
どのモデルであっても、実際のサイズには余白は含まれません- もちろん、ページ上のボックスが占めるスペースに影響しますが、ボックスの外側のスペース。
display
ここでは、内部および外部の表示タイプという概念を追加できます。
- 外部表示タイプ
- 、ボックスの display 属性 (
inline
やなど) を設定します。 block
、ボックスがインライン レベルかブロック レベルかを制御します。 内部表示タイプ - 。ボックス内の要素がどのようにレイアウトされるかを決定します。
display: flex が設定されている場合、要素では外部表示タイプは
block ですが、内部表示タイプはflex
に変更されます。ボックスの直接の子要素はすべて flex
要素になり、フレキシブル ボックス (Flexbox
) のルールに従ってレイアウトされます。
display: inline-block もあり、これはインラインとブロックの間の中間状態を提供します。これは、次の状況で非常に役立ちます: 行の折り返しは発生しませんが、幅と高さを設定できるため、ブロック レベルの効果がいくつか得られます:
- width
- および
height
プロパティが有効になります。 padding - 、
margin
、およびborder
は、他の要素を押しのけます。
HTML4 では、要素は
inline (インライン要素) と 2 つのカテゴリに分類されます。 block
(ブロックレベル要素)。
インライン要素は、対応するラベルの境界線に含まれるスペースのみを占めます。
一般的なインライン要素には、
a、b
、span
、img
、strong
、# # が含まれます。 #sub
sup、
button、
input、
label、
select、
textarea #2. ブロックレベル要素とは何ですか?
ブロック レベルの要素は、その親要素 (コンテナ) のスペース全体を占有するため、「ブロック」が作成されます。通常、ブラウザはブロックレベル要素の前後に新しい行を追加します。 一般的なブロックレベル要素には、
div、
ul、ol
、li
、dl## が含まれます。 #、
dt、
dd、
h1、
h2、
h3、
h4 、
h5、
h6 、
p
3. 違いは何ですか?
フォーマット (デフォルト)、インライン要素は折り返されませんが、ブロックレベル要素は折り返されます。
コンテンツ (デフォルト) では、インライン要素にはデータとその他のインライン要素のみを含めることができます。ブロックレベルの要素には、インライン要素と他のブロックレベルの要素を含めることができます。
-
属性について:
-
インライン要素
-
width
とheight
の設定は無効です (line-height は設定できます)、 - 内側のマージン (
padding
)、外側のマージン (margin
)上下方向
の境界線(border)は他の要素には影響しません。
-
- #ブロックレベルの要素
- width
プロパティと
heightプロパティが機能します。
パディング ( - padding
)、マージン (
margin)、およびボーダー (
border) は、現在の要素の周囲から他の要素を「押しのけ」ます。要素
- width
-
インライン要素
Margin (マージン) 折りたたみ
ブロック上マージン (margin-top) と下マージン (
margin-bottom) は、サイズが 1 つのマージンの最大値である 1 つのマージンにマージ (折りたたまれます) されることがあります (または、それらが一致する場合)。が等しい場合、そのうちの 1 つだけ)、
マージン崩壊 と呼ばれる動作。
何が起こるか #通常のフロー内の 2 つ以上の隣接するブロック要素の垂直方向のマージンが崩れます
- 隣接
- : 空ではないコンテンツ、パディング、境界線、またはクリアによって区切られていないことを指します 垂直方向
- : 垂直方向のマージンのみを指します。 ## 解決しますか?
要素
- BFC
- が作成した
とその子/兄弟は折りたたまれません
/Settingspadding
border - 、いくつかの特定のシナリオ:
と重複します。## 親要素 ##margin- top
は子要素の
margin-top- 隣接しているために重なりが発生するので、これで問題を解決できます。親要素の
border-top
と
padding-topの値を設定して、それらを区切ることができます。
は、次の高さ
autoの親要素の
margin-bottom margin-bottom - と重なっています。子要素。
min-height1 つは隣接しているために重複が発生し、もう 1 つは親要素の高さが固定されていないために発生します。したがって、親要素に
border-bottom、
padding-bottomを設定してそれらを分離するか、親要素の高さ
max-height## を設定できます。 # ともこの問題を解決できます。
はコンテンツのない要素であり、独自の
margin-top
とmargin-bottom
が重複します。 この問題は、 - border
、
padding
、または高さを設定することで解決できます。
BFCfloat
を引き起こす要因
- 隣接しているために重なりが発生するので、これで問題を解決できます。親要素の
float (なしを除く)
overflow- (可視を除く)
-
display
(表セル / 表キャプション / インラインブロック) -
position
(静的/相対を除く) -
プログラミング関連の知識の詳細については、
プログラミング ビデオ - をご覧ください。 !
以上がマージン崩壊とは何ですか?どのような状況で現れるのでしょうか?どうやって対処すればいいのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











インライン要素には、div、p、h1-h6、ul、ol、li、table、form などが含まれ、ブロックレベルの要素には、span、a、img、strong、em、input、label などが含まれます。 2 つの要素の特徴: 1. インライン要素は行を占有し、親コンテナの幅を自動的に埋め、幅、高さ、内側と外側のマージンおよびその他の属性を設定でき、他のブロックレベル要素とインライン要素を含めることができます。 ; 2. インライン要素は排他的な行を占有しません、幅と高さは内容によって決まり、内余白と外余白は要素自体の配置にのみ影響します。

インライン要素とブロックレベル要素には、「ボックスモデル」、「配置」、「コンテンツ表示」、「相対位置」、「デフォルトサイズ」の 5 つの違いがあります。 1. インライン要素は独立したボックス、幅、高さを生成しません。内容に応じて、ブロックレベル要素は独立した長方形のフレームを生成し、幅、高さ、マージン、パディングなどの属性を設定できます; 2. インライン要素は同じ行に水平に配置されますが、ブロックレベル要素は上から下へ押す 順番に並べる; 3. インライン要素にはブロックレベル要素を含めることはできませんが、ブロックレベル要素には他のブロックレベル要素およびインライン要素を含めることができます。

インライン要素とブロックレベル要素の違い: HTML の要素の分類を深く理解する HTML では、要素はインライン要素とブロックレベル要素の 2 つのカテゴリに分類できます。 HTML のレイアウトとスタイルを正しくマスターするには、それらの違いを理解することが非常に重要です。この記事では、インライン要素とブロックレベル要素の特性を深く理解し、具体的なコード例を示します。インライン要素 インライン要素は、HTML ドキュメント内でデフォルトでインラインに表示される要素です。これらは行全体を占めるわけではありませんが、ドキュメント フローの配置方法に基づいて行内に密接に表示されます。業界ではよくあること

HTML インライン要素には、a (アンカー要素)、b (太字)、br (改行)、code、em (強調)、font (フォント設定)、i (斜体)、img (画像)、input (入力ボックス) が含まれます。 )、span、strong (太字強調)、textarea、u など; ブロック要素には、address (アドレス)、blockquote (ブロック引用符)、center (中央揃えのブロック)、div、h1~h6 (タイトル)、hr が含まれます。 ( 水平分割線)、p、ul、ol など。

インライン要素に対するマージンの影響は、ブロックレベル要素の影響とは異なります。インライン要素では、margin 属性は垂直方向の上下のマージンにのみ影響し、水平方向の左右のマージンには影響しません。たとえば、HTML に段落要素がある場合、それにいくつかのスタイルを設定し、その要素に対する margin 属性の効果を観察できます。 HTML コードは次のようになります。

CSS インライン要素とブロックレベル要素の一般的な例: それらをより深く理解するには、具体的なコード例が必要です。 はじめに: CSS では、インライン要素とブロックレベル要素は、よく目にする 2 つの要素タイプです。 Web ページのレイアウトとスタイルのデザインでは、インライン要素とブロックレベル要素の違いと使用法を理解することが非常に重要です。この記事では、読者がその特性と使用法をより深く理解できるように、CSS のインライン要素とブロックレベル要素を具体的なコード例とともに紹介します。 1. インライン要素 インライン要素(inlineelem)

インライン要素には、a、span、strong、b、em、i、label、img、input、select、textarea、button、abbr、cite、code、big、small、sub、sup などが含まれます。ブロックレベル要素には、div、p、h1-h6、form、ul、ol、dl、dt、dd、li、table、tr、td、th、hr、blockquote、address、menu、pre などが含まれます。

CSS インライン要素とブロックレベル要素の詳細な説明: アプリケーション シナリオと使用方法を探る CSS では、要素は表示特性に基づいて、インライン要素とブロックレベル要素の 2 つのタイプに分類できます。 Web 開発者にとって、これら 2 つの概念を理解することは非常に重要です。それらの異なる特性によってアプリケーション シナリオと使用方法が決まるからです。インライン要素は、Web ページ内で 1 行のみを占める要素です。一般的なインライン要素には、<span>、<img>、および <input> が含まれます。
