A box-sizing
CSS tulajdonság vezérli, hogy a dobozmodell hogyan kezelje az elemet, amelyre vonatkozik.
.module ( box-sizing: border-box; )
A használat egyik leggyakoribb módja az oldal összes elemére való alkalmazás, beleértve az álelemeket is:
*, *::before, *::after ( box-sizing: border-box; )
Ezt gyakran „univerzális dobozméretezésnek” nevezik, és ez jó módszer a munkára! A width
beállított (szó szerinti) a szélesség, amelyet kapsz, anélkül, hogy mentális matematikát kellene végrehajtanod, és kezelnöd kell a több tulajdonságból származó szélességekből fakadó összetettséget. Még egy dobozméret-tudatosítási napot is tartunk errefelé.
Értékek
content-box
: az alapértelmezett. A szélesség és magasság értékek csak az elem tartalmára vonatkoznak. A párnázatot és a szegélyt hozzáadják a doboz külsejéhez.padding-box
: A szélesség és a magasság értékei az elem tartalmára és kitöltésére vonatkoznak. A keret hozzáadódik a doboz külsejéhez. Jelenleg csak a Firefox támogatja azpadding-box
értéket.border-box
: A szélesség és a magasság értékei a tartalomra, a kitöltésre és a szegélyre vonatkoznak.inherit
: örökli a szülő elem dobozméretét.
Példa
Ez a példa kép összehasonlítja az alapértelmezett content-box
(felső) és border-box
(alsó) képet :
A képek közötti piros vonal az elemek szélességének értékét jelöli. Figyelje meg, hogy az alapértelmezett elem box-sizing: content-box;
meghaladja a deklarált szélességet, amikor a párnázatot és a szegélyt hozzáadják a tartalom mező külsejéhez, míg az box-sizing: border-box;
alkalmazott elem teljesen belefér a deklarált szélességbe.
Doboz méretezés használata
Tegyük fel, hogy beállított egy elemet width: 100px; padding: 20px; border: 5px solid black;
. Alapértelmezés szerint a kapott mező 150 képpont széles. Ez azért van, mert az alapértelmezett dobozméretezési modell content-box
az elem deklarált szélességét csak a tartalmára alkalmazza, a párnázatot és a szegélyt az elem dobozán kívülre helyezi. Ez hatékonyan megnöveli, hogy az elem mennyi helyet foglal el.
Ha megváltoztatja a box-sizing
beállítást padding-box
, a párnázatot az elem dobozába tolja. Ekkor a doboz szélessége 110 képpont, belső részén 20 képpontos párna, kívül pedig 10 képpont szélességű. Ha a párnázatot és a szegélyt a doboz belsejébe szeretné tenni, használhatja border-box
. A doboz ekkor 100 képpontos széles lenne - a 10 képpontos szegély és a 20 képpontos párnázás egyaránt az elem dobozába kerül.
Demó
Lásd a CSS-Tricks (@ css-tricks) dobozméretezési értékeinek tollal való összehasonlítását a CodePen-en.
Összefüggő
width
height
padding
border
Böngésző támogatás
Króm | Szafari | Firefox | Opera | AZAZ | Android | iOS |
---|---|---|---|---|---|---|
Bármi *† | 3 * † | 1 | 7 * | 8 * | 2,1 * † | Bármi * |
* padding-box
nem támogatott
† régebbi verziókhoz -webkit
előtag szükséges (Chrome 1-9, Safari 3-5, Android 2.1-3.x)
‡ -moz
előtag szükséges a 28. verzióig, előre nem javítva 29-től.