所以我一直在尝试将背景图像剪切成圆形六边形,我发现webkit的惊人蒙版图像非常容易解决我的所有问题。可悲的是,它只适用于Chrome和Safari(当然)。
我如何构建非webkit浏览器的SVG掩码的后备?是否有可能使用我的images文件夹中的.svg文件作为掩码,或者它是否必须在html文档的svg标记中定义?
这是我想要的JSFiddle: http://jsfiddle.net/fbB3P/
CSS:
.hexagon {
position: relative;
display: inline-block;
width: 205px;
height: 233px;
overflow: hidden;
color: #fff;
-webkit-mask-image: url('http://i40.tinypic.com/kajqg.jpg');
text-align: center;
}
.hexagon .content {
height: 186px;
width: 186px;
margin: auto;
margin-top: 16px;
}
.hexagon a {
cursor: -webkit-zoom-in;
cursor: -moz-zoom-in;
}
HTML:
<div class="hexagon" style="background: url('https://s3.amazonaws.com/images.dailydabbles.com/artwork/skull-link5243b4c783a87-crop-260x260-medium.png');">
<a href="#skullkid">
<div class="content"></div>
</a>
</div>
答案 0 :(得分:2)
太糟糕的掩码有awful support。
我创建了另一种屏蔽方式,利用了:before
和:after
伪元素。
jsFiddle demo here - 更好的跨浏览器支持。
<强> HTML 强>
<div class="hex"></div>
<强> CSS 强>
.hex {
width: 205px;
height: 233px;
position: relative;
background: url('https://s3.amazonaws.com/images.dailydabbles.com/artwork/skull-link5243b4c783a87-crop-260x260-medium.png');
}
.hex:before {
content: "";
width: 0;
height: 0;
border-bottom: 60px solid transparent;
border-left: 103px solid white;
border-right: 102px solid white;
position: absolute;
}
.hex:after {
content: "";
width: 0;
position: absolute;
bottom: 0px;
border-top: 60px solid transparent;
border-left: 103px solid white;
border-right: 102px solid white;
}