2010-10-13 2 views
12

Wenn ich versuche, das folgende auszuführen:Schwimmdock Bild auf der linken Seite ändert Höhe des div-Container

​<div id="container"> 
    //This is a 200x200 image   
    <img src="http://dummyimage.com/200x200/CCC/000" /> 
</div>​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ 

mit CSS:

​#container { 
    background:#000; 
} 

ich ein DIV mit einem schwarzen Hintergrund Container wie ich will .

Allerdings, wenn ich den folgenden Code zu dem CSS:

#container img { 
    float:left; 
} 

Es scheint, wie der Behälter nicht das Bild im Inneren erkennt und seine Höhe auf ein Minimum eingestellt ist (hier werden können: http://jsfiddle.net/wc4GJ/).

Wie kommt es, schwebend das Bild auf der linken Seite die Höhe des Container DIV versauen?

Danke,

Joel

Antwort

26

hinzufügen overflow:auto; zu #container

(Erklärungen unten)

+0

Warum sollte das Hinzufügen eines Bildes (mit einer festen Breite und Höhe) als Überlauf für das DIV betrachtet werden? – Joel

+6

Weil Floating das Element aus dem Fluss nimmt, bedeutet dies, dass das Elternelement keinen Inhalt mehr enthält, der seine Höhe bestimmt. Überlauf hinzufügen: hidden/auto; an das übergeordnete Element stellt sicher, dass es seinen Inhalt ordnungsgemäß umschließt. – PatrikAkerstrand

+0

Ich stimme dir zu ^^ – MatTheCat

0

Sie benötigen eine Lichtung div nach dem img hinzuzufügen:

​<div id="container"> 
    //This is a 200x200 image   
    <img src="http://dummyimage.com/200x200/CCC/000" /> 
    <div class="clearing"></div> 
</div>​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ 

Und in CSS:

.clearing { clear: both; } 
+0

Was ist der Grund dafür? Sollte der Container DIV kein Bild darin erkennen, obwohl er nach links schwebt? – Joel

+0

Arbeitete gut für mich einbetten Youtube Videos in eine Liste von Polymer-Container, wo Überlauf: Auto nicht wirklich die Aufgabe (das Video erweitert und nachfolgende Container in der Liste wurden gestoßen, aber der Einbettungscontainer nicht erweitert) – user2778525

Verwandte Themen