Wie kann ich mit HTML / CSS ein Element erstellen, dessen Breite und / oder Höhe 100% des übergeordneten Elements beträgt und das dennoch über die richtigen Auffüllungen oder Ränder verfügt?
Durch die „richtigen“ Ich meine , dass , wenn meine Eltern - Element ist 200px
groß und ich angeben , height = 100%
mit padding = 5px
ich würde erwarten , dass ich einen bekommen soll 190px
mit hohem Elemente border = 5px
auf allen Seiten, schön im Elternelement zentrierte.
Jetzt weiß ich, dass das Standard-Box-Modell nicht vorschreibt, dass es funktionieren soll (obwohl ich genau wissen möchte, warum ...), daher funktioniert die offensichtliche Antwort nicht:
#myDiv {
width: 100%
height: 100%;
padding: 5px;
}
Aber es scheint mir, dass es EINIGE Möglichkeiten geben muss, diesen Effekt für einen Elternteil beliebiger Größe zuverlässig zu erzeugen. Kennt jemand einen Weg, um diese (scheinbar einfache) Aufgabe zu erfüllen?
Oh, und fürs Protokoll, ich bin nicht sonderlich an IE-Kompatibilität interessiert, so dass (hoffentlich) die Dinge ein bisschen einfacher werden sollten.
EDIT: Da nach einem Beispiel gefragt wurde, ist hier das einfachste, das ich mir vorstellen kann:
<html style="height: 100%">
<body style="height: 100%">
<div style="background-color: black; height: 100%; padding: 25px"></div>
</body>
</html>
Die Herausforderung besteht dann darin, die Black Box mit einem 25-Pixel-Abstand an allen Kanten anzuzeigen, ohne dass die Seite groß genug wird, um Bildlaufleisten zu erfordern.