Spec-Zone.ru › CSS

Функция 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);
}

Спецификации

Спецификация
Модуль эффектов фильтров, уровень 1
# funcdef-filter-saturate

Совместимость с браузерами

Компьютеры Мобильные устройства
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:

  • blur()
  • brightness()
  • contrast()
  • drop-shadow()
  • grayscale()
  • hue-rotate()
  • invert()
  • opacity()
  • sepia()

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API