Eigenschap box-sizing
De eigenschap box-sizing maakt het mogelijk
de manier waarop de afmetingen van een element worden berekend te veranderen.
Standaard voegt het toevoegen van padding
het element uit: als we een breedte
width
van 100px en padding-left
van 20px instellen, dan zal de werkelijke breedte van het element
120px zijn.
En als we ook nog een border-left
van 10px instellen, dan wordt de werkelijke breedte van het element
130px. Dat wil zeggen, padding en border
vergroten het blok (zowel in breedte als in hoogte).
Dit gedrag kan worden veranderd met box-sizing.
Syntaxis
selector {
box-sizing: content-box | border-box;
}
Waarden
| Waarde | Beschrijving |
|---|---|
content-box |
Zowel padding als border vergroten het blok.
|
border-box |
Noch padding, noch border vergroten het blok. |
Standaardwaarde: content-box.
Voorbeeld . Standaard gedrag
Momenteel hebben beide blokken dezelfde hoogte
en breedte, maar het tweede blok heeft wel padding
ingesteld, en het eerste niet. Kijk hoe
hun afmetingen verschillen:
<div id="elem1">elem1</div>
<div id="elem2">elem2</div>
#elem1 {
width: 300px;
height: 100px;
margin-bottom: 10px;
background: #f1f1f1;
}
#elem2 {
padding: 50px;
width: 300px;
height: 100px;
background: #f1f1f1;
}
:
Voorbeeld . Standaard gedrag
Momenteel hebben beide blokken dezelfde hoogte
en breedte, maar het tweede blok heeft een rand
van 10px, en het eerste niet. Kijk
hoe hun afmetingen verschillen:
<div id="elem1">elem1</div>
<div id="elem2">elem2</div>
#elem1 {
width: 300px;
height: 100px;
background: #f1f1f1;
}
#elem2 {
border: 10px solid black;
width: 300px;
height: 100px;
background: #f1f1f1;
}
:
Voorbeeld . Standaard gedrag
Nu heeft het tweede blok zowel padding als een rand
van 10px:
<div id="elem1">elem1</div>
<div id="elem2">elem2</div>
#elem1 {
width: 300px;
height: 100px;
background: #f1f1f1;
}
#elem2 {
padding: 50px;
border: 20px solid black;
width: 300px;
height: 100px;
background: #f1f1f1;
}
:
Voorbeeld . Waarde border-box
Laten we het tweede element de waarde border-box
voor de eigenschap box-sizing toevoegen. Nu worden de afmetingen
van zowel het eerste als het tweede element hetzelfde:
<div id="elem1">elem1</div>
<div id="elem2">elem2</div>
#elem1 {
width: 300px;
height: 100px;
background: #f1f1f1;
}
#elem2 {
box-sizing: border-box;
padding: 50px;
border: 10px solid black;
width: 300px;
height: 100px;
background: #f1f1f1;
}
:
Zie ook
-
de eigenschap
outline,
die een rand maakt die het element niet vergroot