问题:
想实现给不规则图片设置阴影,使其看起来像发光的效果,box-shadow的确可以加阴影,但是只适合div及一些规则的图片,如图:
解决方案:
css有一个filter函数,它是给图像设置一个阴影效果。阴影是合成在图像下面,可以有模糊度的,可以以特定颜色画出的遮罩图的偏移版本。除了"inset"关键字是不允许的。该函数与已有的box-shadow属性很相似;不同之处在于,通过滤镜,一些浏览器为了更好的性能会提供硬件加速。
注意: Internet Explorer 不支持 filter 属性。
首先图片的背景色得是透明的(不要有白底,镂空),然后设置图片的style:
filter: drop-shadow(0px 0px 20px rgb(9, 187, 189));
效果:
filter其他属性值看:https://www.runoob.com/cssref/css3-pr-filter.html
<!DOCTYPE html>
<html>
<head>
<style>
img {
width: 20%;
height: auto;
float: left;
}
.blur {-webkit-filter: blur(4px);filter: blur(4px);}
.brightness {-webkit-filter: brightness(0.30);filter: brightness(0.30);}
.contrast {-webkit-filter: contrast(180%);filter: contrast(180%);}
.grayscale {-webkit-filter: grayscale(100%);filter: grayscale(100%);}
.huerotate {-webkit-filter: hue-rotate(180deg);filter: hue-rotate(180deg);}
.invert {-webkit-filter: invert(100%);filter: invert(100%);}
.opacity {-webkit-filter: opacity(50%);filter: opacity(50%);}
.saturate {-webkit-filter: saturate(7); filter: saturate(7);}
.sepia {-webkit-filter: sepia(100%);filter: sepia(100%);}
.shadow {
-webkit-filter: drop-shadow(8px 8px 10px green);
filter: drop-shadow(0px 0px 10px green);
margin: 15px;
}
</style>
</head>
<body>
<p><strong>注意:</strong> Internet Explorer 不支持 filter 属性。</p>
<img src="pineapple.jpg" alt="Pineapple" width="300" height="300">
<img class="blur" src="pineapple.jpg" alt="Pineapple" width="300" height="300">
<img class="brightness" src="pineapple.jpg" alt="Pineapple" width="300" height="300">
<img class="contrast" src="pineapple.jpg" alt="Pineapple" width="300" height="300">
<img class="grayscale" src="pineapple.jpg" alt="Pineapple" width="300" height="300">
<img class="huerotate" src="pineapple.jpg" alt="Pineapple" width="300" height="300">
<img class="invert" src="pineapple.jpg" alt="Pineapple" width="300" height="300">
<img class="opacity" src="pineapple.jpg" alt="Pineapple" width="300" height="300">
<img class="saturate" src="pineapple.jpg" alt="Pineapple" width="300" height="300">
<img class="sepia" src="pineapple.jpg" alt="Pineapple" width="300" height="300">
<img class="shadow" src="pineapple.jpg" alt="Pineapple" width="300" height="300">
</body>
</html>
运行效果:
如有问题欢迎交流~~!