2011-10-17 3 views
0

を適用する場合:次のHTMLコードを考えるとCSSフロートプロパティは、その親の大きさを再描画

<html> 
<body> 
<head> 
<style> 

#myDiv{ 
    background:orange; 
    width:300px; 

} 

.a{ 
    margin:5px; 
    background:purple; 
} 

</style> 
</head> 
<body> 
<div id="myDiv"> 
    <p class="a">A<br>A</p> 
    <p class="b">B</p> 
</div> 
</body> 
</html> 

なぜそれは私が.afloat:rightを追加するとき、myDivが収縮するということでしょうか?

私の答えに同意しますか?

CSS浮動小数点数は位置決めプロパティです。段落 は 'a'と呼ばれ、float CSSプロパティで配置され、 はdiv 'myDiv'のフローから外れます。そのため、 'a'要素 はdiv 'myDiv'の右隅に配置されています。ブラウザ は、フローティング段落「a」なしで 'myDiv'をレンダリングします。そのため、 ブラウザでは、段落 のノード値の背後にバックグラウンドが描画され、「b」として参照され、htmlヘッド要素のCSS宣言の後に300ピクセル幅で伸びるのはこのためです。 [フロートCSSプロパティは、DIVのサイズをリサイズしないのはなぜ?]

+0

が重複する可能性を好むかもしれない(http://stackoverflow.com/questions/7800280/why-does-a -float-css-property-resize-a-divs-size) – Kyle

+1

[ブロック形式設定](http://www.w3.org/TR/CSS2/visuren.html#block-formatting) – BoltClock

+0

@Kyle Sevenoaks:これは1つはより多くの文脈を有する。彼はおそらく、既存の回答/コメントを時代遅れにしないように、既存のものを編集したくなかったでしょう。 – BoltClock

答えて

-1

あなたはこの

<div id="myDiv"> 
    <p class="a">A<br>A</p> 
    <p class="b">B</p> 
    <div style="clear:both;"></div> 
</div> 
+1

"なぜ' float:right'を '.a'に追加すると、myDivは縮小するのですか? "あなたはこの回避策が好きかもしれません" ??? – BoltClock

関連する問題