2016-08-14 5 views
0

ich die folgende CSS-Eigenschaft verwenden blur Effekt einstellen:Wie mache ich Unschärfe-Effekte ohne weißes Licht?

-webkit-filter: blur(5px); 
    -moz-filter: blur(5px); 
    -o-filter: blur(5px); 
    -ms-filter: blur(5px); 
    filter: blur(5px); 

Es macht div Element blur, aber ich sehe weißes Licht an den Ecken des Blocks, wie kann ich blur effect ohne sie machen?

Antwort

4

Der einzige Weg, um die unscharfen Kanten in einer reinen CSS Weise zu entfernen ist, indem das Element ein wenig dann Zoomens die Kanten mit overflow: hidden hinzugefügt, um den Behälter clipping:

.container { 
 
    overflow: hidden; 
 
    border: 1px solid red; 
 
    display: inline-block; 
 
} 
 

 
.blur { 
 
    -webkit-filter: blur(5px); 
 
    -moz-filter: blur(5px); 
 
    -o-filter: blur(5px); 
 
    -ms-filter: blur(5px); 
 
    filter: blur(5px); 
 
    transform-origin: 50%; 
 
    transform: scale(1.3); 
 
}
<div class="container"> 
 
    <div class="blur"> 
 
    <img src="http://lorempixel.com/700/300" alt=""> 
 
    </div> 
 
</div>

jsFiddle : https://jsfiddle.net/azizn/7v0mtfyn/

+1

Seien Sie vorsichtig, wenn Sie jedoch als unscharfen Hintergrund verwenden. transform: Maßstab(); auf ganzer Seite Hintergrund gemacht scrollen unglaublich laggy, sowohl auf Macbook und iPhone. Die Lösung war in diesem Fall, den Hintergrund etwas größer zu machen (zB 110%) und mit Überlauf einige Pixel vom Rand entfernt zu positionieren: versteckt; – Honza

+0

Schön, es ist perfekte Antwort, aber können Sie einen Blick auf meinen Code werfen, warum es hier nicht funktioniert, wenn ich denselben css-Code verwende [jsfiddle link] (https://jsfiddle.net/mostofa/Ly7Lht3a/1/) –

+0

Danke @Honza für Ihre Informationen –

Verwandte Themen