首页 > 其他分享 >CSS遮罩mask【详解】

CSS遮罩mask【详解】

时间:2024-02-01 09:58:12浏览次数:28  
标签:遮罩 repeat no image mask webkit CSS

参考:https://blog.51cto.com/u_15715491/5465418

我刚开始看到 mask这个词语,就想起了口罩,但是我试用了一下,很奇怪与生活中的口罩理解有很大差别,生活中戴上口罩后肯定就看不到嘴巴了,只能看到口罩的颜色图案样式等,CSS3中使用了mask后,反而遮罩层的颜色图案样式全没了,被遮罩的元素只会按照遮罩层的轮廓来显示。

总结:让一个元素按照某张图像的轮廓显示

兼容性:需使用-webkit-私有前缀。

案例1:使用 png图片作为遮罩层。

 

 

<img src="nature-8.jpg" class="mask-image" width="256" height="192">
.mask-image {
    -webkit-mask: no-repeat center / contain;
    mask: no-repeat center / contain;
    -webkit-mask-image: url(../images/bird.png);
    mask-image: url(../images/bird.png);
}

被遮罩的图按照小鸟的轮廓来显示图片。

2、SVG图形遮罩

 

<img src="8.jpg" class="mask-image" width="256" height="174">
.mask-image {
    --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M28.027 5.161l-17.017 17.017-7.007-7.007-3.003 3.003 10.010 10.010 20.020-20.020z'%3E%3C/path%3E%3C/svg%3E");

    -webkit-mask-image: var(--svg);
    mask-image: var(--svg);

    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
}

3、渐变图像遮罩

最常用的,也是最实用的,因为相比url()函数外链的图像,其资源开销小,开发成本低,维护更加方便。

 

 <img src="/i/ll/?i=2020080217142483.jpg"  />
    <img src="/i/ll/?i=2020080217142483.jpg" class="mask" />
 .mask {
                margin-left: auto;
                margin-right: auto;
                width: 400px;
                height: 400px;
                /* mask: url("/i/ll/?i=20200802171339735.png") center center/400px 400px no-repeat;
                -webkit-mask: url("/i/ll/?i=20200802171339735.png") center center/400px 400px no-repeat;*/
                -webkit-mask: linear-gradient(to right,red,red) 0% 0%, /* 1 */
                              linear-gradient(to right,rgba(0,0,0,0.2),rgba(0,0,0,0.2)) 100% 0%, /* 2 */
                              linear-gradient(to right,rgba(0,0,0,0.5) 0 0) 0% 100%, 
                              linear-gradient(to right,rgba(0,0,0,0.8) 0 0) 100% 100%;
                -webkit-mask-size: 50% 50%;
                -webkit-mask-repeat: no-repeat;
            }

 有一个很重要的属性:

mask-composite 遮罩合并,这个一定要理解。现阶段主流浏览器的兼容性好像还不好。

 

标签:遮罩,repeat,no,image,mask,webkit,CSS
From: https://www.cnblogs.com/huaan011/p/18000608

相关文章

  • Mask Scoring RCNN
    论文:https://openaccess.thecvf.com/content_CVPR_2019/papers/Huang_Mask_Scoring_R-CNN_CVPR_2019_paper.pdf论文翻译和解读:https://zhuanlan.zhihu.com/p/111722103?utm_id=0这篇文章的motivation在于质疑了maskrcnn中利用mask分类的confidence来作为mask完整性指标的标准......
  • css中的resize设置、高度没有对齐、表单在校验、边框发生重叠
    小知识点汇总css❓:css中的resize设置......
  • CSS规则集详解
    整个结构称为规则集(规则集通常简称规则),注意各个部分的名称:选择器(Selector)HTML元素的名称位于规则集开始。它选择了一个或多个需要添加样式的元素(在这个例子中就是 <p> 元素)。要给不同元素添加样式,只需要更改选择器。声明(Declaration)一个单独的规则,如 color:red; 用来指......
  • CSS的单位
    我们在布局或者设置字体大小的时候经常看到:22px;,px其实是css里面长度单位绝对长度px*像素(1px=1/96thof1in)cm厘米mm毫米in英寸(1in=96px=2.54cm)相对长度em它是描述相对于应用在当前元素的字体尺寸,所以它也是相对长度单位。一般浏览器字体大小默认......
  • CSS绘制简单的流程图
    效果图代码<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"/><metaname="viewport"content="width=device-width,initial-scale=1.0"/><title>Document<......
  • vue配合什么css框架
    在Vue中使用CSS框架可以提高开发效率和网站外观的一致性。下面是一些与Vue兼容的常见CSS框架:BootstrapVue:BootstrapVue是一个基于Vue.js的Bootstrap组件库。它提供了一套完整的Vue.js组件,同时也支持Bootstrap的所有特性。ElementUI:ElementUI是一套基于Vue.js的组件库......
  • scss 走马灯效果(兼容微信小程序)
    <template><viewclass="marquee"><viewclass="marquee-inner"><spanv-for="(item,index)oftextList":key="index">{{item.text}}</span><!--复制一份内容-->......
  • css 转盘抽奖(兼容微信小程序)
    <template><divclass="turntable"v-wechat-title="$route.meta.title"><!--转盘包裹--><divclass="rotate"><!--转盘图片--><imageclass="dish"src="../../stati......
  • css实现子元素整体居中,最后一行靠左。grid布局
    <divclass="container"><divclass="item">1</div><divclass="item">2</div><divclass="item">3</div><divclass="item">4</div><divclass......
  • css背景图片实现object-fit的效果
     object-fit是一个用于控制替换元素(如<img>或<video>)内容在其容器内布局和缩放的CSS属性。它的作用是调整替换元素的尺寸和位置,使其适应容器,并保持其纵横比例。然而,object-fit属性本身并不直接适用于背景图片。如果你想在背景图片上应用object-fit效果,可以使用background-size......