mask 渐变遮罩属性

图片遮罩

  • hasBgBlock 盒子,背景图为 pic4,仅用于观察渐变过渡效果,可忽略
  • imgBox 盒子
    • 背景图为 pic1
    • 遮罩图层为 mask_front
    • mask-image 的 url 属性生效后,会按照 url 中图片的形状来遮罩背景图


html 复制代码
<div class="hasBgBlock">
  <div class="imgBox"></div>
</div>
<style>
  html,
  body {
    margin: 0;
    padding: 0;
  }

  .hasBgBlock {
    width: 100%;
    background: url("images/pic4.png") no-repeat;
    background-size: cover;
    padding: 80px 0;
  }

  .imgBox {
    width: 640px;
    height: 360px;
    margin: 0 auto;
    background: url("images/pic1.png") no-repeat;
    background-size: cover;
    
    /* 标准属性 */
    mask-image: url('images/mask_front.png');
    mask-size: contain;
    mask-repeat: no-repeat;
    mask-position: center;

    /* 旧版适配 */
    -webkit-mask-image: url('images/mask_front.png');
    -webkit-mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
  }
</style>

渐变效果

  • hasBgBlock 盒子,背景图为 pic4,仅用于观察渐变过渡效果,可忽略
  • imgBox 盒子
    • 背景图为 pic1
    • 遮罩图层设置为线性渐变从右到左,从透明到显示
    • 色号 #000,可以替换为其他任何非透明颜色
html 复制代码
<div class="hasBgBlock">
  <div class="imgBox"></div>
</div>
<style>
  html,
  body {
    margin: 0;
    padding: 0;
  }

  .hasBgBlock {
    width: 100%;
    background: url("images/pic4.png") no-repeat;
    background-size: cover;
    padding: 80px 0;
  }

  .imgBox {
    width: 640px;
    height: 360px;
    margin: 0 auto;
    background: url("images/pic1.png") no-repeat;
    background-size: cover;

    mask-image: linear-gradient(to right, transparent, #000);
    -webkit-mask-image: linear-gradient(to right, transparent, #000);
  }
</style>

demo

  • 线性渐变 demo
css 复制代码
mask-image: linear-gradient(to right, transparent, #e73d3d 10%, #68cf3f 90%, transparent);
-webkit-mask-image: linear-gradient(to right, transparent, #e73d3d 10%, #68cf3f 90%, transparent);
  • 径向渐变 demo
css 复制代码
mask-image: radial-gradient(circle at center, #fff 30%, transparent 70%);
mask-size: 100% 100%;
mask-repeat: no-repeat;
-webkit-mask-image: radial-gradient(circle at center, #fff 30%, transparent 70%);
-webkit-mask-size: 100% 100%;
-webkit-mask-repeat: no-repeat;
相关推荐
红尘散仙5 小时前
谁说终端只能敲键盘?我用 Rust 给小说阅读器加上了鼠标
前端·后端·rust
陈随易7 小时前
C++26 草案被否,二十八年来头一回
前端·后端·程序员
ZhengEnCi7 小时前
Agent 工具怎么折叠海量输出才「爽」:Trae、Claude Code 的渐进式披露设计原理
前端·agent
IT_陈寒10 小时前
Redis内存暴涨,没想到是AOF重写捣的鬼
前端·人工智能·后端
ikoala10 小时前
让 Codex 自己查账:一个省 token 的小技巧
前端·后端·ai编程
ikoala10 小时前
AI 写页面像说明书,修 Bug 像贴膏药?把这两句话写进 AGENTS.md
前端·javascript·ai编程
去伪存真12 小时前
AI Agent Harness 深度测评与技术选型实战
前端·agent
FRing0315 小时前
vue2干货总结7(自定义指令、插槽、单页应用程序、路由的使用(VueRouter))
开发语言·前端·vue.js·vue2
疯华整猫18 小时前
被杀掉之后:我把 Android 的「唤起 + 常驻」重做了一遍
前端·面试·架构
IT_陈寒20 小时前
Java开发实战:从入门到精通
前端·人工智能·后端