[解決済み] 子要素の余白が親要素を移動させる
質問
私は
div
(
親
を含む別の
div
(
子
). 親要素は
body
を、特にCSSスタイル無しで表示します。を設定すると
.child
{
margin-top: 10px;
}
最終的には、子の上部が親と一直線になるようにしました。子プロセスが10px下に移動する代わりに、親プロセスが10px下に移動します。
私の
DOCTYPE
が設定されています。
XHTML Transitional
.
何が足りないのでしょうか?
編集1
私の親は、その下に上から下まで(ピクセル単位で)表示される必要がある背景があるため、厳密に定義された寸法を持つ必要があります。そのため、垂直方向の余白を設定することは
ダメダメ
.
編集2
この挙動はCRだけでなく、FF、IEでも同じです。
解決方法は?
で代替案を見つけました。 DIV内の余白のある子要素 追加することもできます。
.parent { overflow: auto; }
または
.parent { overflow: hidden; }
への余白を防ぐことができます。 崩壊 . Borderとpaddingも同じです。 従って、以下のようにしても、トップマージンの崩れを防ぐことができます。
.parent {
padding-top: 1px;
margin-top: -1px;
}
2021年最新情報:もしもの時のために
IE11のサポートを停止する
を使用すると、新しい CSS 構文
display: flow-root
. 参照
MDNウェブドックス
は、ブロックフォーマットのコンテキストに関するすべての詳細についてです。
ご好評につき更新しました。 マージンを折りたたむことの要点は、テキストコンテンツを扱うことです。例えば
h1, h2, p, ul {
margin-top: 1em;
margin-bottom: 1em;
outline: 1px dashed blue;
}
div { outline: 1px solid red; }
<h1>Title!</h1>
<div class="text">
<h2>Title!</h2>
<p>Paragraph</p>
</div>
<div class="text">
<h2>Title!</h2>
<p>Paragraph</p>
<ul>
<li>list item</li>
</ul>
</div>
ブラウザは余白を縮めるので、テキストは思ったとおりに表示され
<div>
のラッパータグが余白に影響を与えることはありません。各要素はその周囲にスペースを確保しますが、スペースが2倍になることはありません。の余白は
<h2>
と
<p>
は足し算ではなく、互いにスライドしてしまう(崩れてしまう)。同じことが
<p>
と
<ul>
要素を使用します。
悲しいことに、現代のデザインでは、このアイデアは、明示的にコンテナが必要な場合に噛み付かれることがあります。これは、新しい
ブロックフォーマットコンテキスト
をCSSで表現しています。その
overflow
や余白のトリックを使えば、それが可能になります。
関連
-
[CSSチュートリアル】シングルセレクトの折りたたみメニュー機能を実現するCSS
-
[CSSチュートリアル】CSS+HTMLで実現するトップナビゲーションバー機能
-
[css3]css3におけるtransformプロパティの4つの機能
-
[CSSチュートリアル】CSSで2カラムレイアウトを実現するN種類のメソッド
-
[CSSチュートリアル】overflow:hiddenの役割を解説(overflow hidden、clear float、外周マージンの崩れを解決する)。
-
[css3]css3はtransform-originを使用して、大きな円上のドット分布のレイアウトと回転を実現します。
-
[CSSチュートリアル】cssフレックスレイアウト ロング自動改行サンプルコード
-
[解決済み] 要素を水平方向にセンタリングする方法
-
[解決済み] CSSの親セレクタはありますか?
-
[解決済み] CSS 100% height と padding/margin の関係
最新
-
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チュートリアル]CSSで簡単!高周波な異形ボタンを実現する方法
-
[CSSチュートリアル】検索ボックスの非表示機能を実現するCSS(アニメーションの順送り・逆戻りシーケンス)
-
[CSSチュートリアル】height:100%と書いても効かない理由
-
[CSSチュートリアル]cssの位置固定コードで左右2重の位置決め
-
[CSSチュートリアル】CSSでemを開く正しい方法 詳細へ
-
[CSSチュートリアル】タイトルを上部に配置するスティッキーレイアウトを実現するためのCSS
-
[css3]スクロールバー美化効果を実現するcss3サンプルコード
-
[css3]CSS3遷移回転遠近法2D3Dアニメーションなどの効果を持つサンプルコード
-
[css3]CSS3は本当にSCSSに取って代わるのだろうか?
-
[css3]本のページをめくるような効果を実現するcss3サンプルコード