CSS и вёрстка

Как отцентрировать элемент CSS

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

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

Коротко: отцентрировать элемент можно через margin: 0 auto (блок с шириной), text-align: center (текст и инлайн-элементы), flex (justify-content + align-items), grid (place-items: center) или абсолютное позиционирование с transform. Выбор зависит от типа элемента и нужной оси.

Кому и зачемЦентрирование «не работает» почти всегда по одной причине: элемент строчный или у него нет ширины. Разберём, что применять к тексту, картинке, блоку и оверлею.

Что центрируем

Тип Способ
Строчный (a, span, img) text-align: center у родителя
Блочный с шириной margin: 0 auto
Любой элемент по обеим осям grid + place-items: center
Элемент поверх блока absolute + translate(-50%, -50%)

Вкладки: примеры




CSS
.box {
  width: 100%;
  max-width: 720px;
  margin: 0 auto;
}

Только для блочных элементов с ограниченной шириной. Если ширина auto — центрировать нечего.

CSS
.parent {
  display: grid;
  place-items: center;
  min-height: 320px;
}

Центрирует и по горизонтали, и по вертикали. Родителю нужна высота — иначе «центр по вертикали» не от чего считать.

CSS
.picture {
  display: block;
  margin: 0 auto;
  max-width: 100%;
}

Картинка — строчный элемент, поэтому сначала display: block, затем авто-отступы. Либо просто text-align: center родителю.

CSS
.parent { position: relative; }
.center {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
}

Центрирование «поверх» чего-либо: лоадер, надпись на картинке, модальное окно. Не влияет на остальную раскладку.

Универсальный ответНе уверены? Возьмите display: grid; place-items: center; у родителя. Это две строки и работает почти всегда, включая вертикальное центрирование.

Практика: три задачи

  1. Блок текста по центру: max-width + margin: 0 auto + text-align: center.
  2. Карточка входа по центру экрана: min-height: 100vh + grid + place-items: center.
  3. Кнопка по центру секции: flex у секции и justify-content: center.

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

Симптом Причина Решение
Не центрируется элемент строчный display: block
Не работает margin auto нет ширины задать max-width
Нет центра по вертикали нет высоты родителя min-height
Сдвиг на полпикселя нечётные размеры + translate выровнять размеры

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

Чек-лист




Что нужно, чтобы margin: 0 auto сработал?




Как центрировать картинку?




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

Родителю — display: flex; align-items: center; и высоту (min-height). Либо grid с place-items: center.

Потому что top/left: 50% сдвигает левый верхний угол в центр. translate компенсирует половину размеров самого элемента.

Проверьте отступы (padding/margin) родителя, ширину элемента и box-sizing. Часто мешают margin у body или фикс-ширина больше родителя.

display: inline-flex; align-items: center; justify-content: center; и ровные отступы padding.

Итоги

  • Блок — margin: 0 auto и ширина; текст — text-align.
  • Обе оси — grid + place-items: center.
  • Картинку делают блочной и центрируют авто-отступами.
  • Поверх — absolute + translate(-50%, -50%).
Поделиться: ВКонтакте Telegram WhatsApp Одноклассники Viber Мой Мир

Комментарии

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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