Функция CSS `saturate()`
Базовая поддержка Широко доступна
Эта возможность хорошо зарекомендовала себя и работает на многих устройствах и в разных версиях браузеров. Она доступна во всех браузерах с сентября 2016 года.
saturate() CSS функция усиливает или снижает насыщенность входного изображения. Результатом является <filter-function>.
Примечание: saturate() задаётся как матричная операция над цветом RGB. На самом деле цвет не преобразуется в модель HSL, поскольку такое преобразование нелинейно. Поэтому исходные оттенок и светлота могут не сохраниться.
Попробуйте
filter: saturate(1);
filter: saturate(4);
filter: saturate(50%);
filter: saturate(0);
<section id="default-example">
<img
class="transition-all"
id="example-element"
src="/shared-assets/images/examples/firefox-logo.svg"
width="200" />
</section>
Синтаксис
saturate(amount)
Параметры
-
amountНеобязательный - Степень преобразования, заданная как
<number>или<percentage>. Значение меньше100%снижает насыщенность изображения, а значение больше100%усиливает её. Значение0%полностью убирает насыщенность, а значение100%оставляет входные данные без изменений. Начальное значение для интерполяции —1. Значение по умолчанию —1.
Формальный синтаксис
<saturate()> =
saturate( [ <number> | <percentage> ]? )
Примеры
Примеры допустимых значений для saturate()
saturate(0) /* Completely unsaturated */ saturate(.4) /* 40% saturated */ saturate() /* No effect */ saturate(100%) /* No effect */ saturate(200%) /* Double saturation */
saturate() не сохраняет оттенок или светлоту
На диаграмме ниже сравниваются два цветовых градиента с hsl(0 50% 50%) в качестве средней точки: первый создан с помощью saturate(), а во втором используются реальные значения цветов HSL. Обратите внимание, как в градиенте saturate() оттенок и светлота меняются по направлению к обоим краям.
<div> <p>Using <code>saturate()</code></p> <div id="saturate"></div> </div> <div> <p>Using <code>hsl()</code></p> <div id="hsl"></div> </div>
#saturate,
#hsl {
display: flex;
margin: 1em 0;
}
#saturate div,
#hsl div {
width: 2px;
height: 100px;
}
const saturate = document.getElementById("saturate");
const hsl = document.getElementById("hsl");
for (let i = 0; i <= 200; i++) {
const div1 = document.createElement("div");
div1.style.backgroundColor = `hsl(0 ${i / 2}% 50%)`;
hsl.appendChild(div1);
const div2 = document.createElement("div");
div2.style.backgroundColor = "hsl(0 50% 50%)";
div2.style.filter = `saturate(${i}%)`;
saturate.appendChild(div2);
}
Спецификации
Совместимость с браузерами
| Компьютеры | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | WebView на iOS | |
saturate |
18 |
12 |
35 |
15 |
6 |
53 |
35 |
14 |
6 |
6.0 |
4.4 |
6 |
См. также
Другие функции <filter-function>, которые можно использовать в значениях свойств filter и backdrop-filter:
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Values/filter-function/saturate