CSS и вёрстка

Как вставить изображение в css

📅 ⏱ 20:53 ⏳ 1 мин 💬 0

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

Коротко: вставить изображение в CSS можно через background-image (фон), content: url(...) в псевдоэлементе, mask (форма) или data-URI (картинка «внутри» CSS). Для контентных изображений лучше тег img, а CSS-картинки — для декора и фонов.

Кому и зачемВажно понимать разницу: картинка, вставленная через CSS, не индексируется как контент и не имеет alt. Поэтому фоны — для оформления, а смысловые изображения — тегом img.

Способы вставки

Способ Для чего
background-image фоны, паттерны, иконки-декор
content: url(...) картинка в псевдоэлементе
mask иконка с перекраской
data-URI мелкая картинка без отдельного файла
тег img смысловые изображения

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




CSS
.hero {
  background-image: url("hero.jpg");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.icon {
  width: 24px; height: 24px;
  background: url("icon.svg") center / contain no-repeat;
}

Основной способ. Не забудьте background-size и no-repeat, иначе картинка растянется или размножится.

CSS
.link::after {
  content: url("arrow.svg");
  margin-left: 8px;
}

Иконку можно вставить через content. Минус: размер такой картинки сложно контролировать — она вставляется в «натуральном» размере.

CSS
.dot {
  width: 8px; height: 8px;
  background: url("data:image/svg+xml,<svg xmlns='...'><circle r='4'/></svg>") no-repeat;
}

Data-URI «встраивает» картинку прямо в CSS: не нужен отдельный запрос. Удобно для мелочей (иконки, точечки), но файл CSS становится больше.

CSS
.icon-mask {
  width: 24px; height: 24px;
  background: #003F8F;                 /* цвет иконки */
  -webkit-mask: url("icon.svg") center / contain no-repeat;
          mask: url("icon.svg") center / contain no-repeat;
}

Маска позволяет «перекрашивать» внешний SVG-файл: форма задаётся маской, цвет — фоном. Часто используется для иконок из файла.

Контентные картинки — только imgИзображения, несущие смысл (товар, статья, портрет), вставляйте тегом img с атрибутом alt. Так их найдут поисковики, а скринридеры прочитают описание.

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

  1. Фон секции — background-image + cover + center.
  2. Иконка у ссылки — псевдоэлемент с фоном или маской.
  3. Мелочь «внутри» CSS — data-URI (если файл небольшой).

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

Симптом Причина Решение
Картинка повторяется нет no-repeat добавить
Картинка растянута нет background-size задать cover/contain
Не видно на светлом фоне путь неверный проверить URL относительно CSS
Мелкая иконка «мыльная» PNG вместо SVG использовать SVG

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

Чек-лист




Какое свойство вставляет фоновое изображение?




Почему смысловые картинки вставляют тегом img?




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

Картинка, закодированная прямо в CSS. Убирает отдельный запрос, но увеличивает CSS. Оправдан только для очень мелких изображений.

Напрямую — нет. Используйте mask: форма берётся из SVG, цвет задаётся фоном. Либо вставляйте SVG инлайн, где работает fill: currentColor.

Путь в CSS считается относительно CSS-файла, а не HTML. Проверьте в DevTools, откуда грузится ресурс, и исправьте путь.

background-size: cover — заполняет блок с обрезкой; contain — вписывает целиком. Обычно берут cover.

Итоги

  • Фон — background-image, декор — псевдоэлементы и маски.
  • Data-URI — только для мелочей.
  • Смысловые картинки — тегом img с alt.
  • Пути в CSS считаются относительно CSS-файла.
Поделиться: ВКонтакте Telegram WhatsApp Одноклассники Viber Мой Мир

Комментарии

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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