Уласцівасць backdrop-filter

Уласцівасць backdrop-filter дазваляе ўжываць фільтры (размыццё, змяненне кантрасту, каляровыя эфекты) да вобласці, якая знаходзіцца пазаду элемента. Гэта стварае эфект "шкла" або "мароенага шкла".

Сінтаксіс

cssселектар {
  backdrop-filter: none | <фільтр> [<фільтр>]*;
}

Значэнні

Значэнне Апісанне
none Фільтры не ўжываюцца (значэнне па змаўчанні).
blur() Ўжывае эфект размыцця (напрыклад: blur(5px)).
brightness() Змяняе яркасць фону (напрыклад: brightness(0.5)).
contrast() Змяняе кантраснасць фону (напрыклад: contrast(200%)).
drop-shadow() Дадае цень да фону.
grayscale() Пераўтварае фон у адценні шэрага (напрыклад: grayscale(100%)).
hue-rotate() Змяняе каляровы тон фону (напрыклад: hue-rotate(90deg)).
invert() Інвертуе колеры фону (напрыклад: invert(100%)).
opacity() Змяняе празрыстасць фону (напрыклад: opacity(50%)).
sepia() Ўжывае сепію да фону (напрыклад: sepia(100%)).
saturate() Змяняе насычанасць колераў фону (напрыклад: saturate(200%)).

Можна камбінаваць некалькі фільтраў, пералічваючы іх праз прабел.

Прыклад . Простае размыццё

Базавы эфект размыцця фону:

html<div class="blur-example">
  <div class="blur-box">
    Backdrop blur effect
  </div>
</div>
css.blur-example {
  background: linear-gradient(135deg, #667eea, #764ba2);
  padding: 40px;
  height: 200px;
}

.blur-box {
  backdrop-filter: blur(6px);
  background-color: rgba(255, 255, 255, 0.2);
  border-radius: 8px;
  padding: 20px;
  width: 80%;
  margin: 0 auto;
  text-align: center;
  color: white;
  font-size: 22px;
}

Результат:

Прыклад . Цёплы светлы фільтр

Эфект цёплага асвятлення з падвышанай яркасцю:

html<div class="warm-light-bg">
  <div class="warm-light">
    Warm lighting effect
  </div>
</div>
css.warm-light-bg {
  background: url('bg.png');
  background-size: cover;
  padding: 50px;
  height: 250px;
}

.warm-light {
  backdrop-filter: brightness(1.2) hue-rotate(20deg);
  background-color: rgba(255, 235, 205, 0.3);
  padding: 25px;
  width: 70%;
  margin: 20px auto;
  text-align: center;
  color: #333;
  font-size: 24px;
}

Результат:

Прыклад . Размыццё з градыентнай маскай

Спалучэнне размыцця і паўпразрыстага градыенту:

html<div class="gradient-mask">
  <div class="mask-content">
    Gradient mask effect
  </div>
</div>
css.gradient-mask {
  background: url('bg.png') center/cover;
  padding: 50px;
  height: 300px;
}

.mask-content {
  backdrop-filter: blur(10px);
  background: linear-gradient(to right, rgba(255,255,255,0.3), rgba(255,255,255,0));
  padding: 30px;
  width: 80%;
  margin: 0 auto;
}

Результат:

Прыклад . Эфект старога кіно

Камбінацыя сепіі і зерністасці:

html<div class="old-film">
  <div class="film-effect">
    Old film effect
  </div>
</div>
css.old-film {
  background: url('bg.png') center/cover;
  padding: 40px;
  height: 250px;
}

.film-effect {
  backdrop-filter: sepia(80%) contrast(110%) brightness(90%);
  background-color: rgba(0,0,0,0.1);
  padding: 25px;
  width: 70%;
  margin: 20px auto;
}

Результат:

Прыклад . Халодны сіні фільтр

Эфект халоднага асвятлення:

html<div class="cold-bg">
  <div class="cold-effect">
    Cool blue filter
  </div>
</div>
css.cold-bg {
  background: url('bg.png') center/cover;
  padding: 50px;
  height: 300px;
}

.cold-effect {
  backdrop-filter: hue-rotate(180deg) brightness(85%);
  background-color: rgba(200,230,255,0.2);
  padding: 30px;
  width: 75%;
  margin: 0 auto;
}

Результат:

Прыклад . Высокі кантраст

Эфект падвышанай кантраснасці:

html<div class="contrast-bg">
  <div class="contrast-effect">
    High contrast
  </div>
</div>
css.contrast-bg {
  background: url('bg.png') center/cover;
  padding: 40px;
  height: 250px;
}

.contrast-effect {
  backdrop-filter: contrast(200%) brightness(90%);
  background-color: rgba(0,0,0,0.1);
  padding: 25px;
  width: 70%;
  margin: 20px auto;
}

Результат:

Прыклад . Эфект акварэлі

Мяккае размыццё з падвышанай насычанасцю:

html<div class="watercolor-bg">
  <div class="watercolor-effect">
    Watercolor effect
  </div>
</div>
css.watercolor-bg {
  background: url('bg.png') center/cover;
  padding: 50px;
  height: 300px;
}

.watercolor-effect {
  backdrop-filter: blur(12px) saturate(200%);
  background-color: rgba(255,255,255,0.15);
  padding: 30px;
  width: 80%;
  margin: 0 auto;
}

Результат:

Прыклад . Цень на фоне

Эфект ценю на фонавым выяўленні:

html<div class="shadow-bg">
  <div class="shadow-effect">
    Drop shadow effect
  </div>
</div>
css.shadow-bg {
  background: url('bg.png') center/cover;
  padding: 40px;
  height: 250px;
}

.shadow-effect {
  backdrop-filter: drop-shadow(4px 4px 10px rgba(0,0,0,0.5));
  background-color: rgba(255,255,255,0.2);
  padding: 25px;
  width: 70%;
  margin: 20px auto;
}

Результат:

Прыклад . Поўная інверсія

Поўная інверсія колераў фону:

html<div class="invert-bg">
  <div class="invert-effect">
    Full inversion
  </div>
</div>
css.invert-bg {
  background: url('bg.png') center/cover;
  padding: 50px;
  height: 300px;
}

.invert-effect {
  backdrop-filter: invert(100%);
  background-color: rgba(0,0,0,0.1);
  padding: 30px;
  width: 80%;
  margin: 0 auto;
}

Результат:

Прыклад . Эфект зацянення

Зацяненне фону з захаваннем чытальнасці тэксту:

html<div class="darken-bg">
  <div class="darken-effect">
    Darkened background
  </div>
</div>
css.darken-bg {
  background: url('bg.png') center/cover;
  padding: 50px;
  height: 300px;
}

.darken-effect {
  backdrop-filter: brightness(40%);
  background-color: rgba(0,0,0,0.3);
  color: white;
  padding: 30px;
  width: 80%;
  margin: 0 auto;
}

Результат:

Прыклад . Эфект абясколервання

Поўнае абясколерванне фону:

html<div class="grayscale-bg">
  <div class="grayscale-effect">
    Grayscale filter
  </div>
</div>
css.grayscale-bg {
  background: url('bg.png') center/cover;
  padding: 50px;
  height: 300px;
}

.grayscale-effect {
  backdrop-filter: grayscale(100%);
  background-color: rgba(255,255,255,0.2);
  padding: 30px;
  width: 80%;
  margin: 0 auto;
}

Результат:

Прыклад . Эфект падвышанай насычанасці

Узмацненне колераў фону:

html<div class="saturate-bg">
  <div class="saturate-effect">
    Super saturated colors
  </div>
</div>
css.saturate-bg {
  background: url('bg.png') center/cover;
  padding: 50px;
  height: 300px;
}

.saturate-effect {
  backdrop-filter: saturate(300%);
  background-color: rgba(255,255,255,0.1);
  padding: 30px;
  width: 80%;
  margin: 0 auto;
}

Результат:

Прыклад . Камбінаваны мастацкі эфект

Спалучэнне некалькіх фільтраў для мастацкага эфекту:

html<div class="artistic-bg">
  <div class="artistic-effect">
    Artistic combination
  </div>
</div>
css.artistic-bg {
  background: url('bg.png') center/cover;
  padding: 50px;
  height: 300px;
}

.artistic-effect {
  backdrop-filter: blur(3px) hue-rotate(90deg) saturate(150%) contrast(120%);
  background-color: rgba(255,255,255,0.15);
  padding: 30px;
  width: 80%;
  margin: 0 auto;
  color: white;
  text-shadow: 0 0 5px black;
}

Результат:

Прыклад . Эфект паўпразрыстасці

Рэгуліроўка празрыстасці фону:

html<div class="opacity-bg">
  <div class="opacity-effect">
    Opacity control
  </div>
</div>
css.opacity-bg {
  background: url('bg.png') center/cover;
  padding: 50px;
  height: 300px;
}

.opacity-effect {
  backdrop-filter: opacity(50%);
  background-color: rgba(0,0,0,0.3);
  color: white;
  padding: 30px;
  width: 80%;
  margin: 0 auto;
}

Результат:

Падтрымка браўзерамі

Уласцівасць падтрымліваецца ў большасці сучасных браўзераў, але можа патрабаваць прэфікс -webkit- для поўнай крос-браўзернай сумяшчальнасці.

Глядзіце таксама

  • уласцівасць filter,
    якая ўжывае эфекты да самога элемента
  • уласцівасць opacity,
    якая кіруе празрыстасцю элемента
  • уласцівасць background-blend-mode,
    якая вызначае рэжым змяшчэння фонавых выяўленняў