CSS и вёрстка

Чем отличается margin от padding css

📅 ⏱ 21:13 ⏳ 1 мин 💬 0

Чем отличается margin от padding css: простыми словами, по шагам и с примерами. Разбираем, как это работает на практике, типичные ошибки и лучшие решения. Раскр

Коротко: padding — это внутренний отступ, он добавляет пространство внутри блока между содержимым и границей. margin — внешний отступ, он отодвигает блок от соседних элементов. Оба влияют на раскладку, но по-разному.

Кому и зачемПутаница между margin и padding — одна из самых частых у новичков. От правильного выбора зависит и внешний вид, и поведение кликов, и размер блока. Разберём на наглядных примерах.

Ключевое отличие

Свойство Что делает
padding пространство внутри, увеличивает зону клика
margin пространство снаружи, отодвигает от соседей

Наглядно

CSS
.card {
  padding: 24px;    /* воздух внутри карточки */
  margin-bottom: 16px; /* отступ до следующей карточки */
  background: #003F8F; /* фон закрашивает padding, но не margin */
}

Фон элемента покрывает содержимое и padding, но не заходит в margin. Клик по кнопке срабатывает в области padding, но не margin.

Вкладки: тонкости



CSS
/* без box-sizing ширина + padding */
width: 200px; padding: 20px; /* итог 240px */

/* с border-box padding входит в ширину */
* { box-sizing: border-box; }

padding увеличивает фактический размер блока, если не задан box-sizing: border-box. С ним padding входит в заданную ширину.

Вертикальные margin соседних блоков «схлопываются»: из двух берётся больший, а не сумма. Это называется margin collapse. У padding такого нет.

CSS
.pull-up { margin-top: -24px; }

Отрицательный margin сдвигает блок в обратную сторону и может наложить его на соседа. padding отрицательным быть не может.

Правило выбораНужно пространство внутри блока (от рамки до текста) — padding. Нужно отодвинуть блок от соседей снаружи — margin. Если сомневаетесь, подумайте, где должен заканчиваться фон и область клика.

Практика: выбрать отступ

  1. Определите, внутри или снаружи нужно пространство.
  2. Внутри рамки — padding.
  3. Между блоками — margin.
  4. Включите box-sizing: border-box глобально.
  5. Для отступов между элементами попробуйте gap во flex.
  6. Проверьте, как выглядит на мобильном.

Частые ошибки: причина → решение

Симптом Причина Решение
Блок шире, чем задано padding без border-box включить box-sizing
Отступ меньше ожидаемого схлопнулись margin использовать padding или gap
Кнопка мала для клика мало padding увеличить внутренний отступ
Фон не закрасил промежуток это margin перенести в padding
Элементы наложились отрицательный margin убрать или скорректировать

Проверьте себя

Чек-лист




Что такое padding?




Какой отступ закрашивает фон элемента?




Вопросы и ответы

Это margin collapse: соседние вертикальные margin объединяются, побеждает больший. У padding и у горизонтальных margin такого эффекта нет.

Режим, при котором padding и рамка входят в заданную ширину. Это избавляет от сюрпризов при расчёте размеров. Обычно его задают для всех элементов сразу.

Во flex и grid удобнее свойство gap: оно задаёт отступы между элементами без схлопывания и без лишних крайних отступов.

Нет, отрицательный padding недопустим. Отрицательным бывает только margin, и это приём для наложения элементов.

Итоги

  • padding — внутренний отступ, margin — внешний.
  • Фон закрашивает padding, но не margin.
  • padding увеличивает размер без border-box.
  • Вертикальные margin схлопываются, padding — нет.
Поделиться: ВКонтакте Telegram WhatsApp Одноклассники Viber Мой Мир

Комментарии

Пока комментариев нет — будьте первым, кто поделится мнением.

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Получите консультацию нашего маркетолога

Изучит ваш проект, подберет подходящие услуги и тарифы

Получите бесплатный аудит

Наш специалист сделает базовый аудит вашего проекта и предложит персональные предложения.

Закажите услугу Каталог морепродуктов

Наш специалист свяжется с вами в ближайшее время и уточнит детали

Закажите адаптивный сайт

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите сайт

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите сайт лендинг

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите сайт каталог

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите интернет-магазин

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите веб-приложение

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите тариф Аутсорс

Стоимость от 150 000 ₽

Закажите тариф Магазин

Стоимость 90 000 ₽

Закажите тариф Классический

Стоимость 60 000 ₽

Закажите тариф Эконом

Стоимость 40 000 ₽

Закажите SEO продвижение

Наш специалист свяжется с вами, проведет анализ, предложит стоимость