Praca z wcięciami padding w CSS

Załóżmy, że pewnemu elementowi ustawiliśmy szerokość 100px. W CSS wcale nie oznacza to, że element faktycznie będzie miał szerokość 100px. Chodzi o to, że dodanie padding rozszerza element i staje się on większy, niż podano we właściwości width.

Spójrzmy na przykład. Zróbmy dwa bloki, którym ustawimy szerokość 100 pikseli. Jednocześnie drugiemu blokowi ustawimy padding, a pierwszemu - nie. W rezultacie drugi blok będzie większy o rozmiar wcięcia:

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

#elem2 {
  padding: 25px; /* ustawiamy wcięcia */
  width: 100px;
  height: 100px;
  background: #f1f1f1;
}

Результат: