Détails
Comment appliquer un filtre CSS à une image d'arrière-plan ?
J’ai un fichier JPEG que j’utilise comme image d’arrière-plan pour une page de recherche, et j’utilise CSS pour le définir car je travaille dans des contextes [Backbone.js][1] :
background-image: url("whatever.jpg");
Je veux appliquer un filtre flou CSS 3 seulement à l'arrière-plan, mais je ne sais pas comment styliser ce seul élément. Si j'essaie :
-webkit-filter: blur(5px);
-moz-filter: blur(5px);
-o-filter: blur(5px);
-ms-filter: blur(5px);
filter: blur(5px);
juste en dessous de background-image
dans mon CSS, cela donne un style à toute la page, et pas seulement à l'arrière-plan. Existe-t-il un moyen de sélectionner uniquement l'image et d'y appliquer le filtre ? Ou bien, existe-t-il un moyen de désactiver le flou pour tous les autres éléments de la page ?
449
3
Regardez ce [stylo] (http://codepen.io/aniketpant/pen/DsEve).
Vous devrez utiliser deux conteneurs différents, l'un pour l'image d'arrière-plan et l'autre pour votre contenu.
Dans l'exemple, j'ai créé deux conteneurs,
.background-image
et.content
.Les deux sont placés avec
position : fixed
etleft : 0 ; right : 0;
. La différence d'affichage provient des valeursz-index
qui ont été définies différemment pour les éléments.Toutes mes excuses pour le texte Lorem Ipsum.
Mise à jour
Merci à Matthew Wilcoxson pour une meilleure implémentation utilisant
.content:before
http://codepen.io/akademy/pen/FlkzBPour ce faire, vous devez restructurer votre [HTML][1]. Vous devez brouiller l'ensemble de l'élément pour pouvoir brouiller l'arrière-plan. Ainsi, si vous souhaitez ne brouiller que l'arrière-plan, celui-ci doit être un élément à part entière.
[1] : http://en.wikipedia.org/wiki/HTML
Dans l'onglet
.content
de CSS, changez-le enposition:absolute
. Sinon, la page affichée ne pourra pas être défilée.