Уласцівасць box-sizing

Уласцівасць box-sizing дазваляе мяняць спосаб разліку памераў элемента.

Па змаўчанні даданне padding пашырае элемент: калі мы задалі шырыню width 100px і padding-left у 20px, то рэальная шырыня элемента будзе 120px.

А калі мы зададзім яшчэ і border-left у 10px, то рэальная шырыня элемента стане 130px. Гэта значыць padding і border пашыраюць блок (і па шырыні, і па вышыні). Гэту паводзіны можна змяніць з дапамогай box-sizing.

Сінтаксіс

cssселектар {
  box-sizing: content-box | border-box;
}

Значэнні

Значэнне Апісанне
content-box І padding, і border пашыраюць блок.
border-box Ні padding, ні border не пашыраюць блок.

Значэнне па змаўчанні: content-box.

Прыклад . Стандартныя паводзіны

Зараз абодва блока маюць аднолькавую вышыню і шырыню, аднак у другога блока padding зададзены, а ў першага - не. Паглядзіце, як адрозніваюцца іх памеры:

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

Результат:

Прыклад . Стандартныя паводзіны

Зараз абодва блока маюць аднолькавую вышыню і шырыню, аднак у другога блока зададзена мяжа ў 10px, а ў першага - не. Паглядзіце, як адрозніваюцца іх памеры:

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

Результат:

Прыклад . Стандартныя паводзіны

Зараз другі блок мае і padding, і мяжу ў 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;
}

Результат:

Прыклад . Значэнне border-box

Дадамо другому элементу значэнне border-box для ўласцівасці box-sizing. Цяпер памеры і першага і другога элемента стануць аднолькавымі:

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

Результат:

Глядзіце таксама

  • уласцівасць outline,
    якая робіць мяжу, якая не пашырае элемент