Wenn ein untergeordnetes element überläufe horizontal, warum ist die richtige Polsterung von den Eltern ignoriert?

Gegeben, diese einfache Struktur:

<div id="parent">
    <div id="child">Lorem ipsum</div>
</div>

mit diesem CSS:

#parent {
    width: 200px;
    height: 200px;
    padding: 20px;
    overflow-x: scroll;
}

#child {
    width: 500px;      
}

Live-demo: http://jsfiddle.net/523me/5/

Beachten Sie, dass die Eltern eine 20px Polsterung und, dass das Kind überläufe horizontal (weil es breiter ist). Wenn Sie Bildlauf im übergeordneten ganzen Weg auf der rechten Seite, werden Sie sehen, dass das Kind berührt den rechten Rand des übergeordneten Elements.

So, die Eltern sollten das Recht haben, die Polsterung, aber es wird ignoriert. Es scheint, dass, wenn das Kind hat eine Feste Breite, die richtige Polsterung der Eltern nicht gelten. (Ist dies angegeben durch eine Norm? Ich würde es gerne wissen. Bitte lassen Sie mich wissen, wenn Sie nichts finden!)

Gibt es eine Möglichkeit zu zwingen, die richtige Polsterung ist in diesem Szenario angewendet ohne mit zu entfernen, die Elemente aus dem Fluss (durch floating oder positioning)?

Wenn ein untergeordnetes element überläufe horizontal, warum ist die richtige Polsterung von den Eltern ignoriert?

Abbildung 1 - Die richtige Polsterung wird ignoriert. Dies ist, wie alle aktuelle Browser Verhalten.

Abbildung 2 - rechts Polsterung gilt. Dies ist, was ich versuche zu erreichen. (Btw, der screenshot ist von IE7, das ist der einzige browser, der nicht zu ignorieren, die rechts-Polsterung.)

InformationsquelleAutor | 2012-04-07
Schreibe einen Kommentar