2012-07-26 7 views
25

親コンテナを拡張するために子供の余白が必要な場合があります。私は、親の外のスペースが割り当てられていることがわかりましたが、親自体は拡張されていません。私はそれから、 `overflow:hidden 'を親に追加することで、この問題を修正できることを発見しました。子の垂直余白が親コンテナを拡張しないのはなぜですか?

これがなぜこのように起こっているのですか?

UPDATE:

私は親に任意のパディングやボーダー値を追加することも、これを修正することを見出しました。

Updated Example

+1

+1良い質問。この年齢のためにこの修正を使用しています..理由を知らずにこのすべての時間..これも知りたいですか? – techfoobar

+0

これは唯一の修正ですか? 'overflow:hidden; 'の結果に対処するのは面倒です – wilsonpage

+1

解決策の1つは、子に余裕を持たせる代わりに親に' padding:10px'を与えることです。 – techfoobar

答えて

15

"なぜ" 十分に説明し、簡潔hereさへの答え。 「block formatting context」を確立する特定のプロパティがあります。すなわち:

フロート、絶対[固定]「オーバーフロー位置決め要素、ブロックコンテナ(例えば、 インラインブロック、テーブル細胞、およびテーブルキャプション) ボックスをブロックされておらず、ブロックボックス'visible'以外の値( がその値がビューポートに伝播されている場合を除く)は、新しい内容のコンテンツをブロックする ブロックを確立します。

それがどのようにmarginのコメント作業において上で与えられる理由ような溶液の理由でブロックフォーマット文脈のこの変化(及び先行floatの場合には、以下の流入要素のpadding)が動作します。

+2

にリンクされている記事は、もはやcolinaarts.comドメインからは入手できませんが、[こちら](https://web.archive.org/web/20150423190902/http://colinaarts.com/articles/the-magic-オーバーフロー隠し/)シンプルで、ポイントまで正しく。ありがとう! – coderfin

関連する問題