2013-09-04 10 views
5

Próbuję zrobić coś takiego:Blur graniczy z obrazu za pomocą CSS

example

myślę, że można to zrobić za pomocą obrazu tła i innego obrazu (maskę) powyżej z przezroczystego środka. Ale czy można zrobić to samo z czystym css?

Odpowiedz

9

Podczas gdy nie można zastosować box-shadow bezpośrednio do obrazu można stosować go z :before or :after

HTML

<div class="shadow"> 
      <img src="http://lorempixel.com/400/200/" /> 
    </div> 

CSS

.shadow 
{ 
    display:block; 
    position:relative; 
} 

img { 
    width: 100%; 
    height: 100%; 
} 

.shadow:before 
{ 
    display:block; 
    content:''; 
    position:absolute; 
    width:100%; 
    height:100%; 
    -moz-box-shadow:inset 0px 0px 3px 1px rgba(0,0,0,1); 
    -webkit-box-shadow:inset 0px 0px 3px 1px rgba(0,0,0,1); 
    box-shadow:inset 0px 0px 3px 1px rgba(0,0,0,1); 
} 
+0

Zakładam, że pierwszym wierszem jest ".shadow", a nie ".shadow img" yes? To nie działa dla mnie, chociaż wyraźnie. Co jest nie tak? http://jsfiddle.net/FVfgn/ – sealla

+0

: before i: after pseudo elementy nie są obsługiwane w elementach , niestety. Zobacz http://stackoverflow.com/questions/5843035/does-before-not-work-on-img-tags – algoni

+0

Zaktualizowany, miałem zamiar zawinąć go w div :) mój zły –

4

Yess jest możliwe tak:

.img { 
border:1px solid black; 
} 
.img:hover { 
border: none; 
box-shadow: 0 0 10px black inset; 
}