clipPath 与 mask

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 为您旅程的每个阶段提供云产品。立即开始使用 200 美元的免费额度!

这些东西非常相似,我发现很难区分它们。这是 viewBox 的一个很好的解释(多么酷的名字和 URL,我希望他们能继续保持下去)。

最主要的区别在于 clipPath(SVG 中的元素,以及 CSS 中的 clip-path)是矢量的,当它被应用时,任何你正在裁剪的内容要么是 **在内要么在外**。使用 mask,你还可以实现部分透明度,这意味着你可以使用渐变来,例如,淡出你正在遮罩的内容。因此,我想到 mask 更有力,因为它可以做到 clip path 可以做的一切以及更多。

Sarah 也有一篇 完整的文章 专门介绍这一点。

mask 总是让我感到困惑的一点是,它们可以是 luminance 样式,这意味着白色是透明的,黑色是不透明的,介于两者之间的颜色是部分透明的。或者它们可以是 alpha 样式,其中像素的 alpha 通道是 mask 的 alpha 值。写出来感觉比较清楚,但是当你将其应用于元素时,就会感觉完全相反并且令人困惑。

直接链接 →