Savybė box-sizing

Savybė box-sizing leidžia keisti elemento matmenų skaičiavimo būdą.

Pagal numatytuosius nustatymus padding pridedimas išplečia elementą: jei nustatėme plotį width 100px ir padding-left 20px, tai tikrasis elemento plotis bus 120px.

O jei nustatysime ir border-left 10px, tai tikrasis elemento plotis taps 130px. Tai yra, padding ir border išplečia bloką (ir plotį, ir aukštį). Šį elgesį galima pakeisti naudojant box-sizing.

Sintaksė

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

Reikšmės

Reikšmė Aprašas
content-box Ir padding, ir border išplečia bloką.
border-box Nei padding, nei border neišplečia bloko.

Numatytoji reikšmė: content-box.

Pavyzdys . Standartinis elgesys

Dabar abu blokai turi tą patį aukštį ir plotį, tačiau antrajam blokui nustatytas padding, o pirmajam - ne. Pažiūrėkite, kaip skiriasi jų matmenys:

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;
}

Результат:

Pavyzdys . Standartinis elgesys

Dabar abu blokai turi tą patį aukštį ir plotį, tačiau antrajam blokui nustatyta sienelė 10px, o pirmajam - ne. Pažiūrėkite, kaip skiriasi jų matmenys:

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;
}

Результат:

Pavyzdys . Standartinis elgesys

Dabar antrasis blokas turi ir padding, ir sienelę 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;
}

Результат:

Pavyzdys . Reikšmė border-box

Pridėsime antram elementui reikšmę border-box savybės box-sizing parametrui. Dabar matmenys ir pirmo, ir antro elemento taps vienodi:

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;
}

Результат:

Taip pat žiūrėkite

  • savybė outline,
    kuri sukuria sienelę, neišplečiančią elemento