box-sizing în CSS

Stabilește dacă lățimea (width) și înălțimea (height) includ și spațierea interioară (padding) plus bordura (border).

Sintaxă CSS
box-sizing: border-box;
box-sizing: content-box; /* valoare implicită veche */

Ce face box-sizing

box-sizing este una dintre cele mai importante proprietăți CSS. În modelul vechi implicit (content-box), dacă pui width: 200px și adaugi padding: 20px, elementul ajunge să ocupe 240px lățime totală, stricând grila.

Cu box-sizing: border-box, lățimea declarată de 200px rămâne fix 200px: padding-ul și bordura sunt absorbite spre interior. Standardul universal pe orice site modern este resetarea tuturor elementelor la border-box.

Valori uzuale

Valoare Descriere
border-box Recomandat: lățimea și înălțimea includ conținutul, padding-ul și border-ul.
content-box Implicit: lățimea include doar conținutul; padding-ul și bordura se adaugă peste.

Exemple

Exemplul 1: Resetul universal recomandat pentru orice proiect web

Garantează că două coloane de 50% vor încăpea perfect una lângă alta chiar dacă au padding.

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

.coloana {
  width: 50%;
  padding: 20px; /* nu va rupe rândul! */
  border: 1px solid #ccc;
}

Efect vizual în browser

Coloana ocupă exact 50% din lățimea ecranului, iar padding-ul de 20px rămâne în interiorul celor 50%.

Greșeli frecvente

  • Construirea unui site fără resetul border-box pe selectorul universal *; fără el, adăugarea oricărui padding va lărgi elementul și va cauza derulare orizontală nedorită.

Comenzi înrudite

  • width și height (min/max): Controlează dimensiunile orizontale și verticale ale unui element, inclusiv limitele minime și maxime permise.
  • padding: Creează spațiu interior între conținutul elementului și bordura sa, preluând culoarea de fundal a elementului.
  • margin: Creează spațiu gol în exteriorul bordurii unui element, distanțându-l de elementele vecine.
  • border: Desenează o linie de contur în jurul conținutului și padding-ului unui element (grosime, stil, culoare).