Кратко
СкопированоСвойство padding — или внутренний отступ — позволяет оттолкнуть контент от границ родительского элемента.
Само свойство padding это шорткат, позволяющий задать отступы сразу со всех четырёх сторон.
Можно управлять отступами по отдельности при помощи свойств padding, padding, padding, padding.
Или при помощи логических свойств padding, padding, padding, padding, padding, padding.
Пример
Скопировано
<div class="parent"> <p class="content">Сублимация, как бы это ни казалось парадоксальным, ...</p></div>
<div class="parent">
<p class="content">Сублимация, как бы это ни казалось парадоксальным, ...</p>
</div>
Для наглядности зададим фон родителю:
.parent { background-color: #2E9AFF;}
.parent {
background-color: #2E9AFF;
}
Текстовый контент, вложенный в блок с классом .parent, занимает всю площадь родителя и плотно прилегает к краям.
Попробуем добавить внутренний отступ — padding по 55 пикселей сверху и снизу и 40 пикселей по бокам:
.parent { background-color: #2E9AFF; padding: 55px 40px;}
.parent {
background-color: #2E9AFF;
padding: 55px 40px;
}
Почему в данном случае не следует задавать margin или padding для элемента с классом .content, чтобы оттолкнуть его от краёв родителя? Потому что нужно стараться верстать максимально гибко с расчётом на изменения в дальнейшем.
Если задать отступы для блока .parent, то даже в случае изменения контента всегда останется отступ между краями блока и вложенным контентом.
А если задать отступ для элемента .content, а завтра его заменят на .content, то отступ пропадёт, и вёрстка потеряет свой исходный вид.
Как понять
СкопированоВнутренние отступы являются частью блочной модели, а значит участвуют в расчёте конечного размера элемента.
Как пишется
СкопированоПишем свойство padding и через двоеточие после пробела указываем значение.
Значения можно указывать в любых относительных или абсолютных единицах измерения, доступных в вебе: px, em, rem, %, vh, vw и так далее. Также можно использовать функцию calc.
В качестве значения можно указать одно, два, три или четыре числа. Браузер будет читать это значение по-разному в зависимости от количества указанных значений.
padding— читается по часовой стрелке начиная с верхней границы. Сверху 10 пикселей —> справа 15 пикселей —> снизу 20 пикселей —> слева 30 пикселей. Все вычисления в вебе начинаются от верхнего левого угла. Запомни этот порядок. Он часто нужен при чтении кода.: 10px 15px 20px 30px padding— со всех четырёх сторон будет одинаковый отступ в 15 пикселей.: 15px padding— парные противоположные отступы. Первое значение для верхнего и нижнего отступов: сверху и снизу по 15 пикселей. Второе значение для боковых отступов: справа и слева по 20 пикселей.: 15px 20px padding— первое значение для верхнего отступа (сверху 10 пикселей), второе значение для боковых отступов (справа и слева по 5 пикселей), последнее значение для нижнего отступа (снизу 25 пикселей).: 10px 5px 25px
Подсказки
Скопировано💡 Свойство не наследуется.
💡 Значение по умолчанию — 0.
💡 Внутренний отступ не может быть отрицательным.
💡 Отступы можно анимировать при помощи свойства transition 🥳
💡 У вертикальных отступов нет проблемы схлопывания как у margin.
💡 У списков есть левый отступ по умолчанию. Не забывай его сбрасывать, если используешь списки только для группировки объектов.

💡 В инструментах разработчика в Chrome padding подсвечивается зелёным цветом. В Firefox при инспектировании элемента внутренний отступ обозначается светло-сиреневым цветом.
На практике
Скопированосоветует
Скопировано🛠 Чтобы понять padding, представьте лист бумаги с напечатанным на принтере текстом. Видите отступы по краям листа? Они и есть тот самый padding! padding стоит использовать, чтобы указать отступы от краёв блока и навсегда отказаться от margin. Правильно задав границы, вы сможете упорядочить все прочие отступы у элементов внутри вашего блока.
советует
Скопировано🛠 Самая прикольная фишка, которую можно реализовать при помощи padding — адаптивные картинки, которые при изменении ширины экрана изменяют свой размер, но не деформируются.
<!-- Элемент для трюка в padding --><div class="responsive image-box"></div><!-- Просто блок с фоновой картинкой --><div class="image-box"></div>
<!-- Элемент для трюка в padding -->
<div class="responsive image-box"></div>
<!-- Просто блок с фоновой картинкой -->
<div class="image-box"></div>
.image-box { width: 100%; /* Второй блок будет высотой 200 пикселей. Всегда */ height: 200px; background: url("images/eyes.svg") no-repeat center / contain;}.responsive { /* Первому блоку задаём нулевую высоту */ height: 0; /* Отталкиваем нижнюю границу при помощи внутреннего отступа */ padding-bottom: 56.25%;}
.image-box {
width: 100%;
/* Второй блок будет высотой 200 пикселей. Всегда */
height: 200px;
background: url("images/eyes.svg")
no-repeat center / contain;
}
.responsive {
/* Первому блоку задаём нулевую высоту */
height: 0;
/* Отталкиваем нижнюю границу при помощи внутреннего отступа */
padding-bottom: 56.25%;
}
🛠 Попробуй менять размеры окна браузера и понаблюдать за поведением обоих блоков. Первый будет всегда сохранять пропорции 16:9, а вот второй всегда будет высотой 200 пикселей.
Таблица значений padding-bottom для разных стандартных соотношений сторон:
| Соотношение сторон | padding-bottom |
|---|---|
| 16:9 | 56.25% |
| 4:3 | 75% |
| 3:2 | 66.66% |
| 8:5 | 62.5% |