跳转到主内容
极星编程网:以代码为星,赴技术山海!

CSS如何给文字添加渐变的透明遮罩_利用-webkit-mask-image结合渐变颜色

-webkit-mask-image 渐变不生效是因为它只接受图像值,需用 linear-gradient() 且现代 WebKit 已支持无需 url() 包裹;须配 mask-size 和 mask-position 实现动画,兼容性上应同时写 -webkit-mask-image 和 mask-image。 用
-webkit-mask-image
实现文字透明遮罩时,为什么渐变不生效? 因为
-webkit-mask-image
只接受图像值(
image
类型),不能直接写
linear-gradient(black, transparent)
这种颜色值——它会被当成无效声明而静默忽略。 必须显式加上
url()
包裹,或使用
paint()
(但兼容性极差) 渐变方向要和文字排布匹配:竖排文字用
to bottom
,横排常用
to right
或
to left
Chrome / Safari 支持
linear-gradient
作为 mask 图像,但 Firefox 完全不支持
-webkit-mask-image
,需 fallback 怎么写一个能动的、可复用的文字渐变遮罩 CSS? 核心是把渐变当「贴图」用,靠
mask-size
和
mask-position
控制覆盖范围,避免文字被切掉或遮罩偏移。 用
background-clip: text
+
color: transparent
做文字填色是另一条路,但它不是「遮罩」,而是「裁剪背景」,行为逻辑不同 推荐写法:
-webkit-mask-image: linear-gradient(to right, transparent, black, transparent);
—— 注意这里没加
url()
,是因为现代 WebKit 把这种写法当作合法
image
值了(仅限线性/径向渐变) 必须配
-webkit-mask-size: 200% 100%;
和
-webkit-mask-position: -100% 0;
才能实现「从左滑入」的遮罩动画效果
-webkit-mask-image
和
mask-image
的兼容性差异在哪? 标准
mask-image
在 Firefox 中可用,但 WebKit 内核(Safari / Chrome)长期只认带前缀的
-webkit-mask-image
,且行为更稳定。 使用HTML,CSS,JavaScript开发Android应用程序 英文文字pdf版附源文件 如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Andr​​oid友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Andr​​oid应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更 下载 目前最稳妥的写法是同时写两行:
-webkit-mask-image: ...;
和
mask-image: ...;
Safari 15.4+ 开始部分支持无前缀
mask-image
,但遇到
linear-gradient
仍建议保留前缀 如果项目需兼容 iOS Safari 14 及更早版本,
mask-composite
、
mask-mode
等新属性一律别碰,它们基本不可用 文字遮罩后点击失效或选中异常怎么办? 遮罩本身不影响交互,但常见误操作会让文字「视觉可见却无法选中」。 立即学习 “ 前端免费学习笔记(深入) ”; 检查是否意外加了
-webkit-user-select: none;
或
pointer-events: none;
(尤其在父容器上) 确保
mask-image
的 alpha 通道足够清晰:纯黑(
#000
)完全显示,纯白(
#fff
)完全隐藏,灰色区域半透——若用了
rgba(0,0,0,0.8)
这类半透色,可能让文字边缘模糊到难以选中 不要对
或
内文本直接套遮罩,它们的渲染层和普通
不同,容易触发重绘 bug 文字渐变遮罩看着简单,真正卡住人的地方往往在 mask 的 alpha 解析精度、WebKit 对 gradient 作为 image 的隐式转换规则,还有 Safari 移动端对
mask-position
动画的帧率限制——这些细节不报错,但一动就糊或者不动。

相关文章