box-sizing
Vlastnost CSS určuje, jak je model box s ním po prvek se vztahuje k.
.module ( box-sizing: border-box; )
Jedním z nejběžnějších způsobů jeho použití je použití na všechny prvky na stránce, včetně pseudo prvků:
*, *::before, *::after ( box-sizing: border-box; )
Často se tomu říká „univerzální velikost krabice“ a je to dobrý způsob práce! Nastavený (doslovný) width
je šířka, kterou získáte, aniž byste museli provádět mentální matematiku a spravovat složitost, která pochází ze šířek pocházejících z více vlastností. Máme tady dokonce den povědomí o velikosti krabice.
Hodnoty
content-box
: výchozí. Hodnoty šířky a výšky se vztahují pouze na obsah prvku. Výplň a okraj jsou přidány na vnější stranu krabice.padding-box
: Hodnoty šířky a výšky se vztahují na obsah prvku a jeho výplň. Okraj je přidán na vnější stranu rámečku. V současné době tutopadding-box
hodnotu podporuje pouze Firefox .border-box
: Hodnoty šířky a výšky se vztahují na obsah, výplň a ohraničení.inherit
: zdědí velikost pole nadřazeného prvku.
Příklad
Tento příklad obrázku porovnává výchozí content-box
(nahoře) s border-box
(dole):
Červená čára mezi obrázky představuje hodnotu šířky prvků. Všimněte si, že element s výchozím nastavením box-sizing: content-box;
překračuje deklarovanou šířku, když se výplň a ohraničení přidají na vnější stranu pole obsahu, zatímco element s box-sizing: border-box;
aplikovaným se zcela vejde do deklarované šířky.
Použití velikosti krabice
Řekněme, že jste nastavili prvek na width: 100px; padding: 20px; border: 5px solid black;
. Ve výchozím nastavení je výsledný rámeček široký 150 pixelů. Je to proto, že je výchozí model dimenzování pole content-box
, který použije deklarovanou šířku prvku pouze na jeho obsah a umístí výplň a ohraničení mimo pole prvku. To efektivně zvyšuje, kolik místa prvek zabírá.
Pokud změníte box-sizing
na padding-box
, výplň se vloží do rámečku prvku. Pak by byl box široký 110px, s 20px polstrováním na vnitřní straně a 10px okrajem na vnější straně. Pokud chcete do rámečku vložit polstrování a ohraničení, můžete použít border-box
. Krabice by pak měla šířku 100px - 10px ohraničení a 20px polstrování jsou oba zasunuty do rámečku prvku.
Ukázka
Podívejte se na Porovnání hodnot velikosti boxu pomocí CSS-Tricks (@ css-tricks) na CodePen.
Příbuzný
width
height
padding
border
Podpora prohlížeče
Chrome | Safari | Firefox | Opera | TJ | Android | iOS |
---|---|---|---|---|---|---|
Jakékoli * † | 3 * † | 1 ‡ | 7 * | 8 * | 2,1 * † | Libovolný * |
* padding-box
není podporováno
† starší verze vyžadují -webkit
předponu (Chrome 1-9, Safari 3-5, Android 2.1-3.x)
‡ -moz
předpona požadována až do verze 28, bez předpony od 29.