CSS и вёрстка

CSS сделать картинку черно белой

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

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

Коротко: сделать картинку чёрно-белой в CSS очень просто — filter: grayscale(100%). Часто добавляют эффект при наведении: серое по умолчанию, цветное при :hover, с плавным переходом. Работает и для фоновых изображений, и для <img>, и для SVG.

Кому и зачемЧ/б приёмы используют в портфолио, галереях, карточках команды: спокойный вид по умолчанию и цвет при наведении. Это чистое CSS-решение, без обработки картинок в редакторе.

Основные варианты

Задача Код
Полностью ч/б filter: grayscale(100%)
Приглушить наполовину filter: grayscale(50%)
Цвет при наведении :hover { filter: grayscale(0) }
Плавный переход transition: filter .3s

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




CSS
img.bw { filter: grayscale(100%); }

Работает прямо на теге изображения. Значение можно писать и как grayscale(1) — это то же самое.

CSS
.photo {
  filter: grayscale(100%);
  transition: filter .3s ease;
}
.photo:hover { filter: grayscale(0); }

Классика для карточек сотрудников и галерей: серое фото «оживает» при наведении. Не забудьте про transition — иначе переключение будет резким.

CSS
.hero {
  background: url("hero.jpg") center / cover no-repeat;
  filter: grayscale(100%);
}

Фильтр применится ко всему блоку, включая текст. Если текст не должен «сереть», вынесите изображение в отдельный слой:

CSS
.hero { position: relative; }
.hero__img {
  position: absolute; inset: 0;
  object-fit: cover;
  filter: grayscale(100%);
  z-index: -1;
}

Кроме ч/б, полезны другие фильтры — их можно комбинировать:

CSS
.muted {
  filter: grayscale(60%) brightness(1.05) contrast(1.05);
}
.blurred { filter: blur(4px); }

Например, лёгкое затемнение под текстом или размытие фона под модалкой.

filter создаёт новый контекстЭлемент с filter становится «контейнером» для позиционирования потомков: position: fixed внутри может вести себя иначе. Если это мешает — применяйте фильтр к отдельному изображению, а не к большому блоку.

Практика: галерея с «оживлением»

  1. Задайте карточкам filter: grayscale(100%).
  2. Добавьте transition: filter .3s и другие переходы.
  3. На :hover и :focus-within — grayscale(0).
  4. Проверьте на тач-устройствах: там нет hover, поэтому сделайте состояние и по фокусу.
  5. Проверьте производительность при большом числе карточек.

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

Симптом Причина Решение
Text тоже почернел filter на всём блоке применять к картинке/слою
Нет плавности нет transition добавить переход
На телефоне нет эффекта hover недоступен использовать :focus-within
«Ломается» фиксированный элемент filter создаёт контейнер вынести фильтр на картинку

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

Чек-лист




Какое свойство делает изображение чёрно-белым?




Что нужно для плавного перехода цвета при наведении?




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

Через filter — нет, он применяется ко всему элементу. Для «частично ч/б» используют mask-image с двумя слоями или заранее подготовленное изображение.

Фильтры обрабатываются браузером и на слабых устройствах могут слегка нагружать графику. На больших галереях лучше ограничиться небольшим числом элементов с эффектом.

Да, filter применяется и к SVG, в том числе к инлайн-иконкам.

Переопределите фильтр у нужного элемента: filter: none или grayscale(0) — при условии, что фильтр задан не на родителе.

Итоги

  • Ч/б — filter: grayscale(100%).
  • Цвет при наведении — grayscale(0) с transition.
  • Фильтр на всём блоке «серит» и текст — применяйте к картинке.
  • filter создаёт новый контекст — учитывайте это с fixed.
Поделиться: ВКонтакте Telegram WhatsApp Одноклассники Viber Мой Мир

Комментарии

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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