Ich habe dieses Beispiel .
Ich versuche, das Hintergrundbild zu verwischen, aber der Hauptinhalt ist auch verwischt (das <span>
)
Wie kann ich den Hintergrund verwischen, ohne den Inhalt zu verwischen?
Sie können ein Element wie folgt über das verschwommene Element legen
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;
}
Sie können das Hintergrundbild des Körpers mithilfe der Pseudoklasse: before verwischen, um das Bild zu erben und es dann zu verwischen. Binden Sie all das in eine Klasse ein und verwenden Sie Javascript, um die Klasse hinzuzufügen und zu entfernen, damit sie unscharf und unscharf wird.
Fügen Sie eine weitere div
oder img
zu Ihrer Haupt-div
hinzu und verwischen Sie diese stattdessen. 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>
Was ist damit? Keine absolute Positionierung auf div, sondern auf img und span.
backdrop-filter
Leider hat Mozilla den Ball wirklich fallen lassen und sich mit dem Feature Zeit genommen. Ich persönlich hoffe, es schafft es bis zum nächsten Firefox-ESR, da dies in der nächsten Hauptversion von Waterfox verwendet wird.
MDN-Artikel (Mozilla Developer Network): https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter
Mozilla-Implementierung: https://bugzilla.mozilla.org/show_bug.cgi?id=1178765
Auf der MDN-Dokumentationsseite:
/* 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%);