質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

1521閲覧

margin-topについて

l_l

総合スコア38

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

1クリップ

投稿2015/08/25 14:30

下記コードにつきまして
親要素のoverflow:hiddenを削除すると
親要素を突き抜けて?余白がかかってしまいます。

調べてみて親要素にoverflow:hiddenを使うと
子要素にmargin-topがかかるようなったのは良いのですが
いまいち納得できずにいます。
具体的な理由があればと思い質問させていただきました。
お手数おかけ致しますが、宜しくお願い致します。

html

1<div class="wrapper"> 2 <div class="content"></div> 3</div>

scss

1.wrapper{ 2 width: 100px; 3 height: 100px; 4 background-color: #ddd; 5 overflow:hidden; 6 7 .content{ 8 width: 50px; 9 height: 50px; 10 background-color:red; 11 margin-top: 20px; 12 } 13}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

この現象は「marginの相殺」という仕様によるものです。
たとえば

(1)隣り合う要素のmargin-bottomとmargin-top
(2)padding・borderなどを持たない親要素のmargin-topと子要素のmargin-top

といったものは、相殺されて大きい方の値にまとめられます。
今回は(2)の現象が起こっている状態です。
親要素.wrapperにはmargin・padding・borderがいずれも設定されていませんが、
その状態で子要素にmargin-topがつくと、親要素のmarginとまとめられて、親要素の外側に設定される仕様です。(margin-bottomも同じです)

本当はもう少しいろいろと細かい条件があったりして割と難しいので、
詳しくはこちらのサイトなどを参考にしてください。

マージンの相殺
(CSSのmarginが難しい)
[CSSのハマリどころ] marginの相殺

他にも「marginの相殺」で検索すれば山ほど情報が出てきます。

投稿2015/08/25 15:16

aKusano

総合スコア3763

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

l_l

2015/08/25 23:38

ご回答とURLの展開ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問