Эффект фонового фильтра с помощью CSS

Эффект фонового фильтра с помощью CSS

От автора: мне нравятся эти маленькие посты, где какой-то хитроумный дизайн решается одной строкой CSS с использованием малоизвестного свойства. В этом случае дизайн представляет собой эффект матового стекла, а свойство CSS — backdrop-filter.

Эффект фонового фильтра с помощью CSS

Подход? Очень простой:

.container { backdrop-filter: blur(10px);
}

Комментарии также стоит изучить, потому что они касаются поддержки браузерами. Покрытие на самом деле довольно хорошее. Caniuse показывает 83% глобального охвата без поддержки Firefox (и, как ожидается, Internet Explorer). Один комментатор предложил хороший запасной вариант, вместе с небольшим изменением, которое ослабляет эффект:

.container { background: rgba(0,0,0,0.8); backdrop-filter: saturate(180%) blur(10px);
}

Отлично. Но мы можем продвинуться немного дальше, введя @supports, как показано в нашей статье в Альманахе о background-filter:

.container { background: rgba(0,0,0,0.8);
} @supports (-webkit-backdrop-filter: none) or (backdrop-filter: none) { .container { -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
}

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

Хорошо, может быть, это не однострочное решение, как казалось. Но эй, это круто, что подобные вещи относительно просты в CSS.

Автор: Geoff Graham

Источник: https://css-tricks.com

Редакция: Команда webformyself.