2012-03-27 10 views
0

Ich dachte, ein Elternteil div automatisch skaliert nach dem Inhalt darin. Zum Beispiel habe ich ein div als Elternteil innerhalb, dass ich ein anderes div mit nur Text drin habe. Wenn ich es durch einen Firebug ansehe, zeigt sich, dass das Eltern-Div den ganzen Weg über den Browser reicht. Ich dachte, es sollte sich nur auf die Länge des Textes innerhalb der inneren div erstrecken. Wie kann ich die Elterngröße auf die innere und nicht die volle Browserbreite skalieren?Eltern div Skalierung auf Inhalt in ihm

<div id="outter"> 
    <div id="inner">some empty text</div> 
</div> 
+2

Was ist Ihr CSS? – kamalo

+0

Standardmäßig sind divs Elemente auf Blockebene und erstrecken sich über die gesamte Breite der enthaltenen Elemente. – j08691

+0

Sie haben recht, wenn Divs automatisch auf ihren Inhalt skaliert werden (ohne CSS), aber nur vertikal! –

Antwort

0

Standardmäßig ist das div innerhalb des anderen so groß wie das div, das es enthält. So müssen Sie die Größe des div „outter“ gesetzt oder wird standardmäßig 100% des Dokuments sein

+0

Ah ok also standardmäßig wird es die Browserbreite in Prozent sein. Wenn ich also das div auf Inline-Block setze, sollte das das Problem beheben. Oder setze eine Breite. Ich möchte keine Breite festlegen, da sich der Text dynamisch ändert und daher an die Textgröße angepasst werden muss. – user1096509

+0

Ja, ich würde dies auf ein Inline-Schwarz setzen, um dieses Problem zu lösen, da es auch das Div erweitern wird – chadpeppers

4

Ein Element, das display:block ist (was div Standardeinstellung) standardmäßig ist 100% der Breite. display: inline oder inline-block Elemente passen zu ihrem Inhalt.

0

<div> ist ein Blockelement. Versuchen Sie <span> oder <div style="display:inline"></div> ... <div style="float:left"></div> könnte einen ähnlichen Effekt haben.

0

Ich glaube, Sie werden feststellen, dass diese divs sind beide:

display:block; 

Wenn Sie das tun:

#outer, #inner { 
    display:inline; 
} 

Beide Elemente werden nur so breit wie ihr Inhalt sein.