J'ai fait cet exemple .
J'essaie de rendre l’arrière-plan flou, mais le contenu principal est également flou (le <span>
)
Comment puis-je brouiller l'arrière-plan sans brouiller le contenu?
Vous pouvez superposer un élément au-dessus de l’élément flou, comme
div {
position: absolute;
left:0;
top: 0;
}
p {
position: absolute;
left:0;
top: 0;
}
.blur-bgimage {
overflow: hidden;
margin: 0;
text-align: left;
}
.blur-bgimage:before {
content: "";
position: absolute;
width : 100%;
height: 100%;
background: inherit;
z-index: -1;
filter : blur(10px);
-moz-filter : blur(10px);
-webkit-filter: blur(10px);
-o-filter : blur(10px);
transition : all 2s linear;
-moz-transition : all 2s linear;
-webkit-transition: all 2s linear;
-o-transition : all 2s linear;
}
Vous pouvez brouiller l'image d'arrière-plan du corps à l'aide de la pseudo-classe avant du corps pour hériter de l'image, puis la rendre floue. Emballez tout cela dans une classe et utilisez javascript pour ajouter et supprimer la classe afin de la rendre floue et non floue.
Ajoutez un autre div
ou img
à votre principal div
et bloquez-le à la place. jsfiddle
.blur {
background:url('http://i0.kym-cdn.com/photos/images/original/000/051/726/17-i-lol.jpg?1318992465') no-repeat center;
background-size:cover;
-webkit-filter: blur(13px);
-moz-filter: blur(13px);
-o-filter: blur(13px);
-ms-filter: blur(13px);
filter: blur(13px);
position:absolute;
width:100%;
height:100%;
}
jsfiddle .
<div>
<img class="class" src="http://i0.kym-cdn.com/photos/images/original/000/051/726/17-i-lol.jpg?1318992465">
</img>
<span>
Hello World!
</span>
</div>
Et ça? Pas de positionnement absolu sur div, mais sur img et span.
backdrop-filter
Malheureusement, Mozilla a vraiment lâché la balle et pris son temps avec cette fonctionnalité. Personnellement, j'espère que cela fera partie de la prochaine édition de Firefox ESR car c'est ce que la prochaine version majeure de Waterfox utilisera.
Article MDN (Mozilla Developer Network): https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter
Implémentation de Mozilla: https://bugzilla.mozilla.org/show_bug.cgi?id=1178765
Depuis la page de documentation MDN:
/* URL to SVG filter */
backdrop-filter: url(commonfilters.svg#filter);
/* <filter-function> values */
backdrop-filter: blur(2px);
backdrop-filter: brightness(60%);
backdrop-filter: contrast(40%);
backdrop-filter: drop-shadow(4px 4px 10px blue);
backdrop-filter: grayscale(30%);
backdrop-filter: hue-rotate(120deg);
backdrop-filter: invert(70%);
backdrop-filter: opacity(20%);
backdrop-filter: sepia(90%);
backdrop-filter: saturate(80%);
/* Multiple filters */
backdrop-filter: url(filters.svg#filter) blur(4px) saturate(150%);