Den box-sizing
eiendom i CSS kontrollerer hvordan boksen modellen er håndtert for elementet det gjelder.
.module ( box-sizing: border-box; )
En av de vanligste måtene å bruke den på er å bruke den på alle elementene på siden, inkludert pseudoelementer:
*, *::before, *::after ( box-sizing: border-box; )
Dette kalles ofte ”universal boksstørrelse”, og det er en god måte å jobbe på! Den (bokstavelige) width
du angir er bredden du får, uten å måtte utføre mental matematikk og håndtere kompleksiteten som kommer fra bredder som kommer fra flere egenskaper. Vi har til og med en bevissthetsdag rundt boksen.
Verdier
content-box
: Standaren. Verdiene for bredde og høyde gjelder bare for elementets innhold. Polstring og kant er lagt på utsiden av boksen.padding-box
: Verdiene for bredde og høyde gjelder elementets innhold og polstring. Rammen legges til på utsiden av boksen. Foreløpig støtter bare Firefoxpadding-box
verdien.border-box
: Verdiene for bredde og høyde gjelder for innhold, polstring og kantlinje.inherit
: arver boksstørrelsen til det overordnede elementet.
Eksempel
Dette eksempelbildet sammenligner standard content-box
(øverst) med border-box
(nederst):


Den røde linjen mellom bildene representerer elementenes breddeverdi. Legg merke til at elementet med standard box-sizing: content-box;
overstiger den deklarerte bredden når polstring og kant legges til på utsiden av innholdsboksen, mens elementet med box-sizing: border-box;
anvendt passer helt innenfor den deklarerte bredden.
Bruke boksstørrelse
La oss si at du setter et element til width: 100px; padding: 20px; border: 5px solid black;
. Som standard er den resulterende boksen 150 px bred. Det er fordi standardmodellen for boksstørrelse er content-box
, som bare bruker et elements deklarerte bredde på innholdet, og plasserer polstring og kant utenfor elementets boks. Dette øker effektivt hvor mye plass elementet tar opp.
Hvis du endrer box-sizing
til padding-box
, skyves polstringen inn i elementets boks. Deretter vil boksen være 110 px bred, med 20 pixel polstring på innsiden og 10 px kant på utsiden. Hvis du vil legge polstringen og kanten inn i boksen, kan du bruke den border-box
. Boksen ville da være 100px bred - 10px kantlinje og 20px polstring skyves begge inn i elementets boks.
Demo
Se pennesammenligning av boksstørrelsesverdier av CSS-Tricks (@ css-tricks) på CodePen.
I slekt
width
height
padding
border
Nettleserstøtte
Chrome | Safari | Firefox | Opera | DVS | Android | iOS |
---|---|---|---|---|---|---|
Eventuelle * † | 3 * † | 1 ‡ | 7 * | 8 * | 2,1 * † | Eventuelle * |
* padding-box
støttes ikke
† eldre versjoner krever -webkit
prefiks (Chrome 1-9, Safari 3-5, Android 2.1-3.x)
‡ -moz
prefiks kreves opp til versjon 28, uprefiksert fra og med 29.