2015-09-18 10 views
5

Sto tentando di utilizzare un filtro sfocatura css mantenendo l'opacità di un'immagine. Nell'esempio seguente ho un'immagine che è solo un quadrato blu. Quando applico un filtro sfocatura, i bordi diventano trasparenti e puoi vedere il div nero sotto. C'è un modo per applicare la sfocatura senza che venga introdotta questa trasparenza? Idealmente, vorrei che includesse solo i pixel visibili all'interno dello span nel calcolo della media. Capisco che in questo esempio risulterebbe in un semplice quadrato blu ma per i casi meno banali darebbe il risultato che sto cercando.Come posso usare il filtro sfocatura css senza che i bordi diventino trasparenti?

div { 
 
    background-color: black; 
 
    width: 100px; 
 
    height: 100px; 
 
} 
 
span { 
 
    overflow: hidden; 
 
    -webkit-filter: blur(30px); 
 
    display: block; 
 
}
<div> 
 
    <span> 
 
    <img width="100px" src="https://upload.wikimedia.org/wikipedia/commons/thumb/f/fd/000080_Navy_Blue_Square.svg/600px-000080_Navy_Blue_Square.svg.png"> 
 
    </span> 
 
</div>

risposta

2
img { 
    filter: blur(5px); 
    -webkit-filter: blur(5px); 
    -moz-filter: blur(5px); 
    -o-filter: blur(5px); 
    -ms-filter: blur(5px); 
    margin: -5px -5px -5px -5px; 
} 

div { 
    display: inline-block; 
    overflow: hidden; 
} 

http://jsfiddle.net/serGlazkov/nv6evzmk/

+0

Il problema non è nascondere l'overflow, è che l'immagine viene resa trasparente e si può vedere il nero sotto di esso. – Ivanna

+0

http://stackoverflow.com/questions/12224320/defined-edges-with-css3-filter-blur – sglazkov

Problemi correlati