Как да приложите CSS филтър към фоново изображение
Имам JPEG файл, който използвам като фоново изображение за страница за търсене, и използвам CSS, за да го задам, защото работя в контекста на Backbone.js:
background-image: url("whatever.jpg");
Искам да приложа CSS 3 филтър за размазване само към фона, но не съм сигурен как да стилизирам само този един елемент. Ако опитам:
-webkit-filter: blur(5px);
-moz-filter: blur(5px);
-o-filter: blur(5px);
-ms-filter: blur(5px);
filter: blur(5px);
само под background-image
в моя CSS, той стилизира цялата страница, а не само фона. Има ли начин да изберете само изображението и да приложите филтъра към него? Алтернативно, има ли начин просто да се изключи размазването за всеки друг елемент на страницата?
449
3
Вижте тази писалка.
Ще трябва да използвате два различни контейнера - единият за фоновото изображение, а другият за съдържанието.
В примера съм създал два контейнера:
.background-image
и.content
.И двата са поставени с
position: fixed
иleft: 0; right: 0;
. Разликата в показването им идва от стойностите наz-index
, които са зададени по различен начин за елементите.Извинявам се за Lorem Ipsum текста.
Актуализация
Благодарение на Matthew Wilcoxson за по-доброто изпълнение с помощта на
.content:before
http://codepen.io/akademy/pen/FlkzBЗа да направите това, трябва да промените структурата на вашия HTML. Трябва да размажете целия елемент, за да размажете фона. Така че, ако искате да размажете само фона, той трябва да бъде отделен елемент.
В раздела
.content
в CSS променете стойността му наposition:absolute
. В противен случай изобразената страница няма да може да се превърта.