CSS:使用 Mask 作为 Webkit-Mask-Image 的后备

Posted

技术标签:

【中文标题】CSS:使用 Mask 作为 Webkit-Mask-Image 的后备【英文标题】:CSS: Using Mask as a fallback for Webkit-Mask-Image 【发布时间】:2013-10-05 19:37:15 【问题描述】:

所以我一直在尝试将背景图像剪辑成一个圆形六边形形状,我发现 webkit 的惊人蒙版图像可以非常轻松地解决我的所有问题。遗憾的是,它只适用于 Chrome 和 Safari(当然)。

如何为非 webkit 浏览器构建 SVG 掩码的后备?是否可以使用我的图像文件夹中的 .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>

【问题讨论】:

【参考方案1】:

太糟糕的屏蔽有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;

【讨论】:

这很棒,我已经探索了我的 CSS 选项。但我的问题是圆角似乎很难实现,Chrome 在对角边留下锯齿状边缘。 @div 是的 - 我知道,你是对的。这就是我能想到的。 @destan 很高兴它有帮助!

以上是关于CSS:使用 Mask 作为 Webkit-Mask-Image 的后备的主要内容,如果未能解决你的问题,请参考以下文章

很少有人用到的css3遮罩

奇妙的 CSS MASK

页面mask css

基于CSS mask和clip-path实现切角的技巧

CSS mask 实现鼠标跟随镂空效果

hashcat中的一些写法