使用CSS实现中间镂空的图片遮罩效果

中间镂空的图片遮罩指的大概就是这样一个效果:

镂空一个洞的代码

CSS Code复制内容到剪贴板 <div id="container" style="position: relative; margin: 550px 0 0 50px;">    <svg style="position: absolute;" width="400" height="280">    <defs>    <mask id="mask3">    <rect x="0" y="0" width="100%" height="100%" style="stroke:none; fill: #ccc"></rect>    <circle id="circle1" cx="100" cy="100" r="50" style="fill: #000" />    </mask>    </defs>    <rect x="0" y="0" width="100%" height="100%" style="stroke: none; fill: #ccc; mask: url(#mask3)"></rect>    </svg>    <img src="http://img6.cache.netease.com/cnews/2014/11/3/20141103100737855b7.jpg" />    </div>  

镂空多个洞的代码

CSS Code复制内容到剪贴板 <div id="container" style="position: relative;">    <svg style="position: absolute;" width="400" height="280">    <defs>    <mask id="mask3">    <rect x="0" y="0" width="100%" height="100%" style="stroke:none; fill: #ccc"></rect>    <circle id="circle1" cx="100" cy="50" r="50" style="fill: #000" />    <circle id="circle1" cx="300" cy="100" r="50" style="fill: #000" />    <circle id="circle1" cx="100" cy="200" r="50" style="fill: #000" />    </mask>    </defs>    <rect x="0" y="0" width="100%" height="100%" style="stroke: none; fill: #ccc; mask: url(#mask3)"></rect>    </svg>    <img src="http://img6.cache.netease.com/cnews/2014/11/3/20141103100737855b7.jpg" />    </div>  

 

CSS3 版

用 box-shadow ,代码如下:

CSS Code复制内容到剪贴板 positionfixed;    left150px;    top35px;    width100px;    height100px;    border-radius: 100px;    box-shadow: rgba(0,0,0,.8) 0px 0px 0px 2005px;    z-index: 100;  

缺点是只能镂空一个洞。

 

使用CSS实现中间镂空的图片遮罩效果