Ich suche nach einer Lösung, um ein Kind div
in das der Eltern zu integrieren width
.
Die meisten Lösungen, die ich hier gesehen habe, sind nicht browserübergreifend kompatibel (z. B. display: table-cell;
wird im IE nicht unterstützt <=8
).
html
css
cross-browser
parent-child
mate64
quelle
quelle
Antworten:
Die Lösung besteht darin, einfach nicht zu deklarieren
width: 100%
.Die Standardeinstellung ist
width: auto
, dass für Elemente auf Blockebene (z. B.div
) der ohnehin verfügbare "volle Speicherplatz" belegt wird (anders als dies derwidth: 100%
Fall ist).Siehe: http://jsfiddle.net/U7PhY/2/
Nur für den Fall, dass es aus meiner Antwort noch nicht klar ist: Setzen Sie
width
das Kind einfach nicht aufdiv
.Sie könnten stattdessen interessiert sein
box-sizing: border-box
.quelle
width
Eigenschaft festlegt und ein Problem verursacht. In diesem Fall explizitwidth: auto
für das untergeordnete div festlegen .Sie können die
box-sizing
CSS-Eigenschaft verwenden, sie ist Crossbrowser (dh8 + und alle echten Browser) und eine ziemlich gute Lösung für solche Fälle:#childDiv{ box-sizing: border-box; width: 100%; //or any percentage width you want padding: 50px; }
Geige
quelle
In Ihrem Bild platzieren Sie die Polsterung außerhalb des Kindes. Das ist nicht der Fall. Das Auffüllen erhöht die Breite eines Elements. Wenn Sie also das Auffüllen hinzufügen und ihm eine Breite von 100% geben, hat es eine Breite von 100% + Auffüllen. Um das zu erreichen, was Sie möchten, müssen Sie entweder dem übergeordneten Div einen Abstand hinzufügen oder dem inneren Div einen Rand hinzufügen. Da Divs Elemente auf Blockebene sind, werden sie automatisch auf die Breite ihres übergeordneten Elements erweitert.
quelle
Wenn Sie
position:relative;
das äußere Element anlegen , platziert sich das innere Element entsprechend diesem. Dann entspricht awidth:auto;
am inneren Element der Breite des äußeren.quelle
width:100%;
und die Box passt automatisch hinein.Wenn Sie diesen Auffüllraum nutzen möchten, dann ist hier etwas:
http://jsfiddle.net/qD4zd/
Alle Farben sind Hintergrundfarben.
quelle
Sie brauchen nicht einmal
width: 100%
in Ihrem Kind div:http://jsfiddle.net/DanielDZC/w2mev/1/
quelle