我的理解是,明確的div:兩者;沒有任何浮動的兄弟姐妹位於它的任何一側。在這個例子中,我有3個兄弟,在一個容器div中留下浮動div,其中overflow:auto。有足夠的空間讓所有人並肩而坐。明確的元素:兩邊都有浮動的兄弟元素
鏈接到下面的jsfiddle。
當我申請清除:對中間div它將它移動到下一行(如預期的),但是它右邊的div也向下移動並保持在右側,儘管該區域被清除。我希望每個div都在一個新的線上。
進一步,如果我再補充明確:權利;到中間部分它仍然是它的位置(與預期的左邊的div一致),右邊的div也停留在它旁邊。我會雖然正確的div將搬到一個新的線。
這種行爲似乎違背了什麼明確的是應該防止浮兄弟元素被對方旁邊來實現。任何人都可以解釋嗎?
的jsfiddle這裏:https://jsfiddle.net/2tfgwmek/1/
HTML
<div class="container">
<div class="left">Left Div<br>float: left; </div>
<div class="middle">Middle Div<br>float: left; clear:both; </div>
<div class="right">Right Div<br> float:left </div>
</div>
CSS
.container {
width:300px;
overflow:auto;
border:solid 2px black;
}
.container > div {
width:90px; height:90px;
border:solid 1px red;
background:grey;
float:left;
color:white;
}
.middle {
clear:both;
}