Box-sizing

CSS vlastnost box-sizing dokáže změnit vypočítávání rozměrů boxu.

2 minuty

content-box

Ve standardním režimu se ve výchozím stavu počítají rozměry boxů tak, že se k nastavené šířce přičte šířka okraje (padding) a tloušťka rámečku (border-width) — nazývá se to modelem obsahovým (box-sizing: content-box).

Následující element tedy bude mít výslednou šířku 112 pixelů (1 + 5 + 100 + 5 + 1).

element {width: 100px; padding: 5px; border: 1px solid #000}

border-box

Druhý typ počítání (a v mnoha situacích výhodnější) je box-sizing: border-box — tzv. okrajový box-model. Při jeho aplikování na výše uvedený kód získáme element o šířce přesně 100 pixelů. A šířky paddingu a borderu se promítnou dovnitř elementu. Tedy pro samotný obsah zbude 88 pixelů (100 - 1 - 5 - 5 - 1).

Změna box modelu vlastností box-sizing funguje od IE 8 (do Firefoxu 28 pouze s -moz- prefixem). Kvůli historickým Webkitům můžeme přidat prefix i pro ně.

element {
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
}

Okrajový box model pro všechny elementy

V případě, že řešíme správné zobrazení od IE 8 včtetně, můžeme si pomocí hvězdičkového selektoru box model přepnout na border-box i při zachování standardního režimu.

*, *:after, *:before {
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
}

V IE 7 a starších je možné okrajového modelu dosáhnout v quirk režimu, což ale znemožní využívat funkcí, které fungují jen v režimu standardním. Takže to se moc nevyplatí.

Co si myslíte o tomto článku?

Diskuse

Související články

CSS item-pack: balance – vyvážené rozložení flex položek

Vlastnost item-pack: balance rozděluje flex položky rovnoměrně mezi řádky, podobně jako text-wrap: balance vyvažuje řádky textu.

11 minut

CSS Container Queries – responsivní komponenty

Jak pomocí @container, container-type a container-name vytvářet komponenty, které se přizpůsobí velikosti svého rodiče místo viewportu.

16 minut

CSS Anchor Positioning – posicování elementů relativně k jiným

Jak pomocí anchor-name, position-anchor a funkce anchor() posicovat elementy relativně k jiným bez JavaScriptu.

6 minut

Centrování na webových stránkách

Moderní způsoby vertikálního i horizontálního centrování v CSS. Flexbox, Grid, margin auto a další techniky.

8 minut

Novinky e-mailem

Když budu mít něco opravdu zajímavého, můžu vám to poslat e-mailem

Přidej se k 500+ čtenářům
Jen kvalitní obsah
Žádný spam

Web jecas.cz píše Bohumil Jahoda, kontakt
Seznam všech článků · Témata · Zkratky
2013–2026