box-sizing řídí, co vlastnosti width a height skutečně měří. Výchozí hodnota (content-box) měří pouze obsah; je přinutí zahrnout padding a ohranici.
box-sizing řídí, co vlastnosti width a height skutečně měří. Výchozí hodnota (content-box) měří pouze obsah; je přinutí zahrnout padding a ohranici.
border-box.box {
box-sizing: content-box; /* the default */
width: 200px;
padding: 20px;
border: 5px solid;
}
/* Rendered width = 200 + 2×20 + 2×5 = 250px ← bigger than you asked for! */
U content-box se padding a ohranice přidávají na vrch width, takže prvek skončí širší než číslo, které jste nastavili. To porušuje rozvržení: box width: 50% s paddingem přetéká jeho 50%.
.box {
box-sizing: border-box;
width: 200px;
padding: 20px;
border: 5px solid;
}
/* Rendered width = 200px TOTAL. Content shrinks to 150px to make room. */
U border-box je width konečná vykreslovaná šířka — padding a ohranice jsou odečteny zevnitř. Číslo, které nastavíte, je velikost, kterou dostanete, což je mnohem intuitivnější.
*, *::before, *::after {
box-sizing: border-box;
}
Skoro každý moderní stylesheet, framework a reset to aplikuje globálně. Činí změny velikosti předvídatelné: width: 50% + padding zůstane přesně 50% široké, dva boxy width: 50% sedí vedle sebe bez přetečení atd.
border-box eliminuje jedinou nejčastější příčinu bolestí hlavy v layoutu — nutnost mentálně přidat padding a ohranici ke každé šířce.
Jeho globální nastavení se považuje za osvědčenou výchozí praxi, protože "šířka, kterou nastavím, je šířka, kterou dostanu" je to, jak přirozeně očekáváte, že bude fungovat.
Knihovna IT otázek k pohovoru s podrobnými odpověďmi — od Junior po Senior.
Přispět