CSS 100% Höhe mit Polsterung / Rand

Diese wurde driving me crazy für ein paar Tage jetzt, aber in Wirklichkeit ist es ein problem, dass ich getroffen habe-und ausschalten für die letzten paar Jahre: Mit HTML/CSS wie kann ich ein element mit einer Breite und/oder Höhe, die 100% des übergeordneten Elements, und hat immer noch die richtige Polsterung oder Margen?

Durch "richtige" meine ich, dass, wenn mein übergeordnetes element ist 200px hoch und ich geben height = 100% mit padding = 5px ich würde erwarten, dass ich bekommen sollte ein 190px hohe Elemente mit border = 5px auf allen Seiten schön zentriert im übergeordneten element.

Nun, ich weiß, dass das nicht, wie das standard-box-Modell gibt, sollte es funktionieren (obwohl ich würde gerne wissen, warum genau...), so dass die offensichtliche Antwort nicht funktioniert:

#myDiv {
    width: 100%
    height: 100%;
    padding: 5px;
}

Aber es scheint mir, dass es muss ein Weg gefunden werden, der zuverlässig die Herstellung dieser Effekt für einen Elternteil von beliebiger Größe. Kennt jemand einen Weg, dies zu erreichen (scheinbar einfache) Aufgabe?

Oh, und für den Datensatz ich bin nicht besonders daran interessiert IE-Kompatibilitätsmodus, damit sollte (hoffentlich) die Dinge etwas einfacher.

EDIT: Da ein Beispiel war gefragt, hier ist das einfachste, das ich denken kann:

<html style="height: 100%">
    <body style="height: 100%">
        <div style="background-color: black; height: 100%; padding: 25px"></div>
    </body>
</html>

Die Herausforderung ist dann, um die black box zu zeigen, bis mit einem 25 pixel-Abstand auf alle Kanten, ohne die Seite wächst groß genug, um erfordern scrollbars.

InformationsquelleAutor der Frage Toji | 2009-01-27

Schreibe einen Kommentar