У меня есть div с буквой:

HTML

<div>A</div>

CSS

div {
  border: 1px solid black;
  background-color: #CC0000;
  width: 150px;
  height: 150px;
  margin: 10px 5px 5px 50px;
  padding: 0px 30px 0px 10px /* I want to move my letter with it */
}

Буква перемещается из-за свойства padding, но при этом квадрат становится больше. Почему заполнение преобразует квадрат в прямоугольник?

JSF: http://jsfiddle.net/fnBaD/1

0
user3546093 22 Июн 2014 в 23:22
 – 
davidcondrey
22 Июн 2014 в 23:26

3 ответа

Лучший ответ

Заполнение всегда применяется «внутри» элемента. Следовательно,

padding:5px;

Эффективно добавляет 5px со всех четырех сторон «внутри» элемента.

Следовательно, свойство padding увеличивает размер элементов.

0
Satwik Nadkarny 22 Июн 2014 в 23:29
1
'Всегда'? Вы уверены?
 – 
haim770
22 Июн 2014 в 23:38

Заполнение считается частью элемента, к которому оно применяется. Вот почему элемент становится больше.

0
The Velcromancer 22 Июн 2014 в 23:25

Стандартная «блочная модель» НЕ включает отступы / границы в расчеты ширины / высоты.

Добавление свойства box-sizing:border-box заставит браузер ВКЛЮЧИТЬ отступы / границы в измерениях.

Часто встречается в универсальном селекторе.

* {
box-sizing:border-box;
}

https://developer.mozilla.org/en-US/docs/Web/CSS/box-sizing

1
Paulie_D 22 Июн 2014 в 23:26