使用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复制内容到剪贴板
- position: fixed;
- left: 150px;
- top: 35px;
- width: 100px;
- height: 100px;
- border-radius: 100px;
- box-shadow: rgba(0,0,0,.8) 0px 0px 0px 2005px;
- z-index: 100;
缺点是只能镂空一个洞。