Svojstvo box-sizing

Svojstvo box-sizing omogućava da se promeni način izračunavanja dimenzija elementa.

Podrazumevano, dodavanje padding proširuje element: ako smo zadali širinu width od 100px i padding-left od 20px, onda će stvarna širina elementa biti 120px.

A ako zadamo još i border-left od 10px, onda će stvarna širina elementa postati 130px. To jest, padding i border proširuju blok (i po širini, i po visini). Ovo ponašanje se može promeniti pomoću box-sizing.

Sintaksa

cssselektor {
  box-sizing: content-box | border-box;
}

Vrednosti

Vrednost Opis
content-box I padding, i border proširuju blok.
border-box Ni padding, ni border ne proširuju blok.

Podrazumevana vrednost: content-box.

Primer . Standardno ponašanje

Trenutno oba bloka imaju istu visinu i širinu, međutim kod drugog bloka je zadat padding, a kod prvog - nije. Pogledajte kako se razlikuju njihove dimenzije:

html<div id="elem1">elem1</div>
<div id="elem2">elem2</div>
css#elem1 {
  width: 300px;
  height: 100px;
  margin-bottom: 10px;
  background: #f1f1f1;
}
#elem2 {
  padding: 50px;
  width: 300px;
  height: 100px;
  background: #f1f1f1;
}

Результат:

Primer . Standardno ponašanje

Trenutno oba bloka imaju istu visinu i širinu, međutim kod drugog bloka je zadata granica od 10px, a kod prvog - nije. Pogledajte, kako se razlikuju njihove dimenzije:

html<div id="elem1">elem1</div>
<div id="elem2">elem2</div>
css#elem1 {
  width: 300px;
  height: 100px;
  background: #f1f1f1;
}
#elem2 {
  border: 10px solid black;
  width: 300px;
  height: 100px;
  background: #f1f1f1;
}

Результат:

Primer . Standardno ponašanje

Trenutno drugi blok ima i padding, i granicu od 10px:

html<div id="elem1">elem1</div>
<div id="elem2">elem2</div>
css#elem1 {
  width: 300px;
  height: 100px;
  background: #f1f1f1;
}
#elem2 {
  padding: 50px;
  border: 20px solid black;
  width: 300px;
  height: 100px;
  background: #f1f1f1;
}

Результат:

Primer . Vrednost border-box

Dodajmo drugom elementu vrednost border-box za svojstvo box-sizing. Sada će dimenzije i prvog i drugog elementa postati jednake:

html<div id="elem1">elem1</div>
<div id="elem2">elem2</div>
css#elem1 {
  width: 300px;
  height: 100px;
  background: #f1f1f1;
}
#elem2 {
  box-sizing: border-box;
  padding: 50px;
  border: 10px solid black;
  width: 300px;
  height: 100px;
  background: #f1f1f1;
}

Результат:

Pogledajte takođe

  • svojstvo outline,
    koje pravi granicu koja ne proširuje element