相対的に配置された を設計しようとしてdiv
いますが、これは 2 つdiv
の で構成されます。固定された高さの子はありませんがdiv
、コンテンツによって変化するため、親div
は子 div の高さに合わせて拡張されます。これでデザインは正常に動作しますが、Firebug でコードを分析しているときに、body
Firebug のタグにカーソルを合わせると、画面全体の最上部の短い部分だけが本体として表示されることがわかりました。div
サイドパネルはそれを確認しました.ボディの幅は問題ありませんが、高さは0です. それはどのように可能ですか?コンテンツが絶対に配置されている場合、要素がコンテンツとともに展開されないことは知っていますが、ここでは子div
s は相対的に配置されているのに、なぜ親はその内容と共に展開しないのでしょうか? フィドルはhttp://jsfiddle.net/Cupidvogel/y79NS/6/にあります。スクリーンショット (拡大して私の言いたいことを理解してください! Firefox で完全な HTML ページとしてコードを試したときです):
質問する
1935 次
2 に答える
4
フロートをクリアするために使用しているCSSでは、div.clear
それ自体が左にフロートされています。つまり、ドキュメント フローの一部ではないため、何も消去できません。
削除するfloat
とうまくいきます:
.clear { width: 400px; clear: both; position: relative; }
div.clear
あるいは、何らかの理由でフロートされたい場合は、フロートをクリアするさまざまな方法があります。
EDIT:div.main
フロートされ、フロートされた要素が子の寸法に「スナップ」されるため、高さは520pxです。左にフロートした場合body
(しないでください。良い考えではありません)、それも子の寸法に「スナップ」し、高さが 520px に設定されます。
于 2012-08-03T13:21:50.087 に答える
1
ここで起こるのは通常のブラウザーの動作です。div をフロートするため、float プロパティのために「通常の」フローにはもうありません。ボディは「そこにない」要素の高さを計算できないため、ボディは高さ0です。
div class="clear" を div class="main" から移動し、div class="clear" の float プロパティも削除して、問題を解決しました。
于 2012-08-03T14:00:27.710 に答える