box-sizing
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Die box-sizing CSS Eigenschaft legt fest, wie die Gesamtbreite und -höhe eines Elements berechnet werden.
Probieren Sie es aus
Im CSS Box-Modell wird die von Ihnen zugewiesene width und height standardmäßig nur auf die Inhaltsbox eines Elements angewendet. Wenn das Element einen Rahmen oder Innenabstand hat, wird dieser zu width und height hinzugefügt, um die Größe der Box zu erhalten, die auf dem Bildschirm angezeigt wird. Das bedeutet, dass Sie bei der Festlegung von width und height den von Ihnen angegebenen Wert anpassen müssen, um den hinzugefügten Rahmen oder Innenabstand zu berücksichtigen. Wenn Sie beispielsweise vier Boxen mit width: 25%; haben und eine davon links oder rechts Innenabstand oder einen Rahmen hat, passen sie standardmäßig nicht in eine Zeile innerhalb der Begrenzungen des übergeordneten Containers.
Die box-sizing-Eigenschaft kann verwendet werden, um dieses Verhalten anzupassen:
-
content-boxbietet Ihnen das standardmäßige Verhalten der CSS-Boxgrößenbestimmung. Wenn Sie die Breite eines Elements auf 100 Pixel setzen, ist die Inhaltsbox des Elements 100 Pixel breit, und die Breite eines Rahmens oder Innenabstands wird zur endgültigen angezeigten Breite hinzugefügt, wodurch das Element breiter als 100px wird. -
border-boxweist den Browser an, jeden Rahmen und Innenabstand in den von Ihnen angegebenen Werten für die Breite und Höhe eines Elements zu berücksichtigen. Wenn Sie die Breite eines Elements auf 100 Pixel setzen, beinhalten diese 100 Pixel jeden hinzugefügten Rahmen oder Innenabstand, und die Inhaltsbox wird verkleinert, um die zusätzliche Breite aufzunehmen. Dies macht es in der Regel viel einfacher, Elemente zu dimensionieren.box-sizing: border-boxist die standardmäßige Gestaltung, die Browser für die<table>,<select>, und<button>Elemente sowie für<input>Elemente verwenden, deren Typradio,checkbox,reset,button,submit,colorodersearchist.
Hinweis:
Es ist oft nützlich, box-sizing auf border-box zu setzen, um Elemente anzuordnen. Dies erleichtert den Umgang mit den Größen von Elementen erheblich und beseitigt im Allgemeinen eine Reihe von Stolpersteinen, auf die Sie beim Anordnen Ihrer Inhalte stoßen könnten. Andererseits erlaubt die Verwendung von box-sizing: content-box in Verbindung mit position: relative oder position: absolute, dass sich die Positionierungswerte relativ zum Inhalt verhalten und unabhängig von Änderungen der Rahmen- und Innenabstandsgrößen sind, was manchmal wünschenswert ist.
Syntax
box-sizing: border-box;
box-sizing: content-box;
/* Global values */
box-sizing: inherit;
box-sizing: initial;
box-sizing: revert;
box-sizing: revert-layer;
box-sizing: unset;
Die box-sizing-Eigenschaft wird als ein einzelnes Schlüsselwort angegeben, das aus der unten stehenden Liste der Werte ausgewählt wird.
Werte
content-box-
Dies ist der initiale und standardmäßige Wert, wie im CSS-Standard spezifiziert. Die
widthundheightEigenschaften umfassen den Inhalt, jedoch nicht den Innenabstand, den Rahmen oder den Rand. Zum Beispiel rendert.box {width: 350px; border: 10px solid black;}eine Box, die 370px breit ist.Hier werden die Abmessungen des Elements wie folgt berechnet: width = Breite des Inhalts, und height = Höhe des Inhalts. (Rahmen und Innenabstand sind in der Berechnung nicht enthalten.)
border-box-
Die
widthundheightEigenschaften umfassen den Inhalt, den Innenabstand und den Rahmen, jedoch nicht den Rand. Beachten Sie, dass Innenabstand und Rahmen innerhalb der Box liegen. Zum Beispiel rendert.box {width: 350px; border: 10px solid black;}eine Box, die 350px breit ist, wobei der Bereich für den Inhalt 330px breit ist. Die Inhaltsbox kann nicht negativ sein und wird auf 0 reduziert, wodurch es unmöglich ist,border-boxzu verwenden, um das Element verschwinden zu lassen.Hier werden die Abmessungen des Elements wie folgt berechnet: width = Rahmen + Innenabstand + Breite des Inhalts, und height = Rahmen + Innenabstand + Höhe des Inhalts.
Formale Definition
| Anfangswert | content-box |
|---|---|
| Anwendbar auf | alle Elemente, die Breite oder Höhe akzeptieren |
| Vererbt | Nein |
| Berechneter Wert | wie angegeben |
| Animationstyp | diskret |
Formale Syntax
box-sizing =
content-box |
border-box
Beispiele
Boxengrößen mit content-box und border-box
Dieses Beispiel zeigt, wie verschiedene box-sizing Werte die gerenderte Größe von zwei ansonsten identischen Elementen verändern.
HTML
<div class="content-box">Content box</div>
<br />
<div class="border-box">Border box</div>
CSS
div {
width: 160px;
height: 80px;
padding: 20px;
border: 8px solid red;
background: yellow;
}
.content-box {
box-sizing: content-box;
/* Total width: 160px + (2 * 20px) + (2 * 8px) = 216px
Total height: 80px + (2 * 20px) + (2 * 8px) = 136px
Content box width: 160px
Content box height: 80px */
}
.border-box {
box-sizing: border-box;
/* Total width: 160px
Total height: 80px
Content box width: 160px - (2 * 20px) - (2 * 8px) = 104px
Content box height: 80px - (2 * 20px) - (2 * 8px) = 24px */
}
Ergebnis
Spezifikationen
| Specification |
|---|
| CSS Box Sizing Module Level 3 # box-sizing |
Browser-Kompatibilität
BCD tables only load in the browser