Ich habe ein div mit floated Kinder.Funktioniert "clear: both" und "overflow: hidden" auf die gleiche Weise, um einen Container kinderleicht zu wickeln?
Ich weiß, ich kann die Höhe in den folgenden zwei Möglichkeiten, strecken:
.container {
border: 2px solid #ccc;
margin-bottom: 250px;
}
.container-2::after {
content: '';
display: block;
height: 0;
font-size: 0;
clear: both;
}
.container-3 {
overflow: hidden;
}
.item {
float: left;
width: 200px;
height: 50px;
background: red;
margin: 10px;
}
<div class="container container-1">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
<div class="container container-2">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
<div class="container container-3">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
Aber ich denke, dass sie die verschiedenen Prinzipien haben: die clear:both
:: nach Element bleibt weg von die Float-Brüder, und zwingt das Elternteil, die Höhe zu dehnen; die overflow:hidden
Art macht das div, das BFC hat, und entsprechend standard, BFC wird seine Höhe ausdehnen, um seine sich hin- und herbewegenden Kinder mit einzuschließen.
Die Vor- und Nachteile sind nicht wichtig, aber wie sie funktionieren.
Bin ich richtig, sie sind unterschiedlich, aber haben das gleiche Ergebnis?
Mögliche Duplikat [clear: both oder Überlauf: Auto, das besser ist] (http: // Stackoverflow .com/questions/15725667/clearboth-oder-overflowauto-was-ist-besser) – Aziz