CSS3 Box-sizing
Nach W3C CSS2-Vorgaben gibt die Eigenschaft width
einer Box dessen Innenbreite an. Innenabstand padding
, Rand border
und Aussenabstand margin
werden zur Breite hinzugerechnet. Das Gleiche gilt für die Höhe height
.
Mit CSS3 box-sizing
kann bestimmt werden, dass der Innenabstand padding
und der Rand border
in width
und height
eingerechnet wird.
Syntax und Werte für box-sizing
box-sizing: content-box;
Dies entspricht dem Default-Verhalten von width
und height
oder min-width
und min-height
wie es in den CSS2.1. Spzifikationen des W3C definiert ist: border
und padding
werden zur width
hinzugerechnet.
box-sizing: padding-box;
Das padding
wird innerhalb der width
und height
eingerechnet (~ "box" bis und mit padding).
Beachte!padding-box
, das nur Firefox unterstützt, wird vom MDN explizit als "experimental" bezeichnet. Das W3 fügt hinzu: "The ‘padding-box’ value is at risk"!
box-sizing: border-box;
padding
und border
werden innerhalb der width
und height
eingerechnet (~ "box" bis und mit border).
Eine Box mit 400px width
, 30px padding
und 10px border
hat mit dieser Angabe eine Breite von 400px! Das ist das Box Model, das der Internet Explorer im Quirks mode verwendet.box-sizing: inherit;
Spezifiziert, dass der Wert von box-sizing
vom Elternelement geerbt wird.
Beispiele für box-sizing
BOX 0 / with:400px; border:0; padding:0;
Gesamtbreite: 400px
#box0 { width: 400px; border: 0; padding: 0; }
» Alle nachfolgenden Boxen haben:width:400px; b
order:10px; p
adding:30px;
BOX 1 / default seit CSS2
Gesamtbreite: 480px
#box1 { width: 400px; border: 10px solid #E1DDD9; padding: 30px; }
Mit border-box
BOX 2 / border-box
Gesamtbreite: 400px
#box2 { width: 400px; border: 10px solid #E1DDD9; padding: 30px; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; }
Mit padding-box – experimental!
Wird nur von Firefox unterstützt (vgl. Ausgabe mit Firefox / Chrome!)
BOX 3 / padding-box
Gesamtbreite Firefox: 420px
Gesamtbreite Chrome: 480px
#box3 { width: 400px; border: 10px solid #E1DDD9; padding: 30px; -webkit-box-sizing: padding-box; -moz-box-sizing: padding-box; box-sizing: padding-box; }
Screenshot
padding-box/border-box mit Firefox vs Chrome: Screenshot zeigen.