CSS и вёрстка

Как сделать отступ между картинками в CSS

📅 ⏱ 22:05 ⏳ 1 мин 💬 0

Как сделать отступ между картинками в css: простыми словами, по шагам и с примерами. Разбираем, как это работает на практике, типичные ошибки и лучшие решения.

Коротко: отступ между картинками делают либо отступами (margin), либо зазором контейнера (gap). Для галереи в ряд почти всегда лучше gap — ровно и без «двойных» полей по краям.

Кому и зачемПригодится, если собираете галерею, сетку товаров или просто аккуратно расставляете изображения в статье. Покажем, как избежать «дырок», «слипания» и лишних отступов.

Как выбрать способ

Ситуация Лучший способ
Картинки в ряд в контейнере flex или grid + gap
Сетка (плитка) grid + gap
Отдельные картинки в тексте margin
Картинки «в строку» (inline) убрать пробелы или перейти на flex

Ключевое преимущество gap: он добавляет отступы только между элементами и не создаёт поля по краям контейнера.

Вкладки: три способа с кодом



CSS
.gallery {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;             /* горизонталь и вертикаль одинаково */
}
.gallery img { display: block; }

Если нужны разные отступы по осям: gap: 8px 16px; (вертикаль / горизонталь).

CSS
.gallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

Сетка сама держит равные колонки; gap делает ровные «коридоры» между плитками.

CSS
img { margin: 0 8px 16px 0; } /* справа и снизу */

Минус: у последнего элемента справа тоже будет отступ — «двойное» поле у края. Иногда его убирают селектором :last-child.

Практика: три частые задачи

1. Галерея из 3 колонок

  1. Контейнеру задайте display: grid.
  2. Колонки: grid-template-columns: repeat(3, 1fr).
  3. Отступ: gap: 16px.
  4. Картинкам — width:100%; height:auto; display:block.

2. Картинки «в строку» в тексте

CSS
.inline-gallery { font-size: 0; }        /* убирает пробелы между inline-картинками */
.inline-gallery img { margin: 0 8px; font-size: 16px; }

Если можно — лучше перейти на flex и не бороться с пробелами.

3. Разный отступ по осям

CSS
.gallery { gap: 8px 20px; }  /* 8px по вертикали, 20px по горизонтали */
Частая ловушкаУ gap не будет эффекта, если у контейнера нет display: flex или grid. Многие ставят gap обычному блоку — и удивляются, что «ничего не меняется».

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

Симптом Причина Решение
gap не работает контейнер не flex/grid добавить display:flex/grid
Отступ по краям «двойной» у всех картинок margin использовать gap или снять у :last-child
Пробелы между картинками inline-разметка font-size:0 или flex
На телефоне картинки выходят за экран фиксированная ширина max-width:100%; height:auto

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

Чек-лист





Что нужно контейнеру, чтобы gap заработал?




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

Либо перейти на flex/grid, либо обнулить font-size у контейнера и вернуть его картинкам.

gap: 8px 20px — первое значение вертикаль, второе горизонталь.

Из-за margin у всех элементов. Используйте gap или снимите отступ у :last-child.

Задайте одинаковое aspect-ratio и object-fit: cover — карточки станут ровными.

Итоги

  • В ряд — flex/grid + gap.
  • Отдельные картинки — margin.
  • Картинкам — display:block, max-width:100%.
  • Проверяйте отступы по краям и на телефоне.
Поделиться: ВКонтакте Telegram WhatsApp Одноклассники Viber Мой Мир

Комментарии

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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