Odpowiedzi:
Dodaj następującą właściwość:
.c{
...
overflow: hidden;
}
Zmusi to kontener do przestrzegania wysokości wszystkich znajdujących się w nim elementów, niezależnie od elementów pływających.
http://jsfiddle.net/gtdfY/3/
Ostatnio pracowałem nad projektem, który wymagał tej sztuczki, ale musiał umożliwić wyświetlanie przepełnienia, więc zamiast tego możesz użyć pseudoelementu, aby wyczyścić elementy pływające, skutecznie osiągając ten sam efekt, jednocześnie pozwalając na przepełnienie wszystkich elementów.
.c:after{
clear: both;
content: "";
display: block;
}
Unosisz dzieci, co oznacza, że „unoszą się” przed pojemnikiem. Aby uzyskać prawidłową wysokość, należy „wyczyścić” pływak
Styl div = "clear: both" czyści zmienną i podaje prawidłową wysokość kontenera. zobacz http://css.maxdesign.com.au/floatutorial/clear.htm aby uzyskać więcej informacji o pływakach.
na przykład.
<div class="c">
<div class="l">
</div>
<div class="m">
World
</div>
<div style="clear: both" />
</div>
Spróbuj wstawić ten usuwający element div przed ostatnim </div>
<div style="clear: both; line-height: 0;"> </div>
Najlepszym i najbardziej kuloodpornym rozwiązaniem jest dodanie ::before
i ::after
pseudoelementy do kontenera. Więc jeśli masz na przykład listę taką jak:
<ul class="clearfix">
<li></li>
<li></li>
<li></li>
</ul>
A każdy element na liście ma float:left
właściwość, to powinieneś dodać do swojego css:
.clearfix::after, .clearfix::before {
content: '';
clear: both;
display: table;
}
Lub możesz spróbować display:inline-block;
właściwości, wtedy nie musisz dodawać żadnych poprawek.