+7 |964| 561-83-85
Подать заявку
18.07.2019

CSS фильтры

Css фильтры позволяют добавлять элементам сайта визуальные эффекты, такие как яркость, контраст, размытие и т.д.

Фильтры задаются с помощью css свойства filter

Виды фильтров

В качестве примера объекта для демонстрации возможностей фильтров будем использовать изображение.

Изображение без фильтров

grayscale (оттенки серого)

Один из самых популярных фильтров, позволяющий работать с оттенками серого и добиваться черно-белого эффекта.

Пример

img { 
  filter: grayscale(100%); 
} 
Изображение с фильтром grayscale

sepia (сепия)

Добаяляет объекту эффект старой фотографии.

Пример

img { 
  filter: sepia(100%); 
}
Изображение с фильтром sepia

blur (размытие)

Добаяляет объекту эффект размытия

Пример

img { 
  filter: blur(1px); 
}
Изображение с фильтром blur

opacity (прозрачность)

Добавляет объекту эффект прозрачности. Работает аналогично css свойству opacity, различия только в синтаксисе.

Пример

img { 
  filter: opacity(50%); 
} 
Изображение с фильтром opacity

brightness (яркость)

Позволяет уменьшать и увеличивать яркость объекта.

Пример

mg { 
  filter: brightness(50%); 
} 

iИзображение с фильтром brightness уменьшение

img { 
  filter: brightness(200%); 
} 

Изображение с фильтром brightness увеличение

contrast (контраст)

Позволяет уменьшать и увеличивать контрастность объекта.

Пример

img { 
  filter: contrast(50%); 
}

Изображение с фильтром contrast уменьшение

img { 
  filter: contrast(200%); 
} 

Изображение с фильтром contrast увеличение

saturate (насыщенность)

Позволяет уменьшать и увеличивать насыщенность цветов объекта.

Пример

img { 
  filter: saturate(50%); 
}

Изображение с фильтром saturate уменьшение

img { 
  filter: saturate(200%); 
}

Изображение с фильтром saturate увеличение

hue-rotate (смещение цвета)

Позволяет смещать цвета объекта по цветовому кругу.

Пример

img { 
  filter: hue-rotate(90deg); 
} 

Изображение с фильтром hue-rotate 90 градусов

img { 
  filter: saturate(200%); 
} 

Изображение с фильтром hue-rotate 180 градусов

invert (инверсия цвета)

Позволяет инвертировать цвета объекта.

Пример

img { 
  filter: invert(100%); 
} 
Изображение с фильтром invert

Часто возникающие проблемы

Наиболее часто возникающим проблемой при использовании фильтров является: "Я задал блоку фоновое изображение и фильтр, но фильтр применился ко всем элементам, а не только к фону". Все правильно, ведь фильтр как и фон задан для всего блока. Для того чтобы применить фильтр только к изображению его надо вынести в отдельный элемент.

<div class="back_block">
    <div class="slider-main__button">
       <div class="inline-top"></div>
       <div class="inline-top">Кнопка</div>
    </div>
</div>

Как было:

.back_block { 
  background: url(/media/blog/filter_img.jpg); center no-repeat; 
  background-size: cover; 
  filter: grayscale(100%); 
}
 
Кнопка

Как надо:

.back_block { 
  position: relative; 
} 

.back_block * { 
  position: relative; 
} 

.back_block__img { 
  width 100%; 
  height: 100%; 
  background: url(/media/blog/filter_img.jpg); center no-repeat; 
  background-size: cover; 
  position: absolute; 
  left: 0; 
  top: 0; 
}
 
 
Кнопка
Назад в раздел