2010-12-05 17 views
7

Mit Blick auf den folgenden Code, wo die span Elemente innerhalb der div Floating sind, wie kann ich die div Wrap um die schwimmenden Kind Elemente, so dass die 1px Grenze wickelt die Kinder Elemente?Wie bekomme ich ein div um herumschwimmende Kinder zu wickeln?

<div style="border:1px solid #000"> 
    <span style="float:left">Content</span> 
    <span style="float:left">Content</span> 
    <span style="float:left">Content</span> 
</div> 

Antwort

21

Der meiste Zeit, overflow:hidden auf der Umhüllung Zugabe genügt:

<div style="border:1px solid #000; overflow:hidden;"> 
    <span style="float:left">Content</span> 
    <span style="float:left">Content</span> 
    <span style="float:left">Content</span> 
</div> 

Manchmal werden Sie diesen alternativen Ansatz sehen (die viel mehr Hacky ist, hat aber wahrscheinlich besser zurück-Version Browser-Unterstützung).

<div style="border:1px solid #000; "> 
    <span style="float:left">Content</span> 
    <span style="float:left">Content</span> 
    <span style="float:left">Content</span> 
    <div style="clear:both;"></div> 
</div> 
+4

+1 - Sie auch 'Überlauf verwenden können: auto'. –

+0

Danke, der Hack ist besser für IE6 und so? – Moshe

+0

Um ein Follow-up zu veröffentlichen, wird dies normalerweise mit einem "clearfix" erledigt. Sie können weitere Informationen hier sehen: http://www.webtoolkit.info/css-clearfix.html – TehOne

0

Verwenden Sie die klarCSS Eigenschaft nach MDN web docs: https://developer.mozilla.org/en-US/docs/Web/CSS/clear

Hinweis: Wenn ein Element nur Elemente schwebte enthält, seine Höhe zu nichts zusammenbricht. Wenn Sie möchten, dass die Größe immer geändert werden kann, sodass darin schwebende Elemente enthalten sind, müssen Sie die untergeordneten Elemente selbst löschen. Dies heißt Clearfix, und eine Möglichkeit, es zu tun ist löschen ersetzt :: nach Pseudo-Element auf es.

#container::after { 
    content: ""; 
    display: block; 
    clear: both; 
} 
Verwandte Themen