私は 2 つの子を囲む div を持っています。子の周りに境界線と背景を配置したいのですが、子に合わせてサイズが変更されないため、div の高さは 0 です。
実際の例を次に示します: http://jsfiddle.net/VVZ7j/17/
赤い背景をずっと下げたいです。height:auto を試してみましたが、うまくいきませんでした。
ありとあらゆる助けをいただければ幸いです、ありがとう。
PS可能であれば、JavaScriptを使用したくありません。
私は 2 つの子を囲む div を持っています。子の周りに境界線と背景を配置したいのですが、子に合わせてサイズが変更されないため、div の高さは 0 です。
実際の例を次に示します: http://jsfiddle.net/VVZ7j/17/
赤い背景をずっと下げたいです。height:auto を試してみましたが、うまくいきませんでした。
ありとあらゆる助けをいただければ幸いです、ありがとう。
PS可能であれば、JavaScriptを使用したくありません。
これは、フロートを操作する際によくある問題です。いくつかの一般的な解決策がありますが、個人的な好みで注文しました (最善の方法を最初に)。
::after CSS 疑似要素を使用します。これは「clearfix」として知られており、IE8 以降で動作します。以前のバージョンの IE との互換性が必要な場合は、この回答が役立ちます。例。
.parentelement::after {
content: "";
display: table;
clear: both;
}
2 つの float を CSS 属性overflow: auto
orを持つコンテナーに追加しますoverflow: hidden
。ただし、この方法では問題が発生する可能性があります (たとえば、ツールチップが親要素の端に重なると、スクロールバーが表示されます)。例。
<div style="overflow: auto">
<div style="float: left"></div>
<div style="float: left"></div>
</div>
親要素に設定された高さを追加します。例。
<div style="height: 200px">
<div style="float: left"></div>
<div style="float: left"></div>
</div>
親要素を float にします。例。
<div style="float: left">
<div style="float: left"></div>
<div style="float: left"></div>
</div>
float の後に div を追加しclear: both
ます。例。
<div style="float: left"></div>
<div style="float: left"></div>
<div style="clear: both"></div>
overflow: hidden;
#wrapに追加します。これはclear fix
. これに関するドキュメントは次のとおりです。http://positioniseverything.net/easyclearing.html
LE: ブラウザーの互換性に応じて、これを実現する方法も複数あります。
#wrap { overflow: hidden; }
clear: both
ます。#wrap:after { clear: both; content: ""; display: table;}
<div style="clear:both"></div>
not
余分な HTML マークアップを取得するため、3 番目のものを使用することをお勧めします。
に追加overflow: hidden
してみてください#wrap
div
。
Nicolas Gallagher のこの「micro-clearfix」ソリューションを使い始めました。
http://nicolasgallagher.com/micro-clearfix-hack/
/* For modern browsers */
.cf:before,
.cf:after {
content:"";
display:table;
}
.cf:after {
clear:both;
}
/* For IE 6/7 (trigger hasLayout) */
.cf {
*zoom:1;
}
それを CSS とフローティング要素に追加するだけで、「cf」クラスをフローティング子を持つ要素のラッパーに追加できます。
外側の div を閉じる前に、スタイル clear:bothでもう 1 つ div を追加するだけです。つまり、ここで「wrap」
--サンプルコード--
<div id="wrap">
<div id="left">
<p>some content at left</p>
</div>
<div id="right">
<p>some content at right</p>
</div>
<div style="clear:both"></div>
</div>