详解CSS Masking模块之Clipping

2020-05-09 07:33:22易采站长站整理
多边形 ;剪切路径是一个区域,该区域 内部 的所有内容都可以显示出来,外部的所有内容将被剪切掉,在页面上不可见
遮罩 需要一个高亮或Alpha遮罩层,将源和遮罩层合在一起会创建一个缓冲区域,在合层阶段之前,亮度和Alpha遮罩会影响这个 缓冲区 的透明度,从而实现完全或部分遮罩源的部分

注意:虽然遮罩提供了许多增强图形效果的可能性,并且通常对内容的可见部分提供了更多的控制,但是剪切路径可以执行得更好,基本形状可以更容易插值。

相关术语

在深入学习和了解 MaskingClipping 相关的知识前,我们先了解一些有关于这方面的术语。

源对象

不管是Masking还是Clipping中都会有一个源(对象)的概念。这个源可能是一个HTML元素,比如一个

<img />
元素。

路径或基本图形

在Clipping中对源对象进行剪切时,需要一个图形,而这个图形可以是一些基本图形,也可以是一个闭合的矢量路径。在CSS中,我们可以通过

clip-path
来绘制这些图形:

正如上面示例所示,可以绘制:


inset()
circle()
ellipse()
polygon()
url()

其中

inset()
circle()
ellipse()
绘制基本图形,
polygon()
绘制多边形,另外
url(#id)
配合SVG的
clipPath
来绘制更多圆滑的路径(这个也被称闭合的矢量路径)。怎么通过这些函数来绘制图形,后面介绍
clip-path
的时候再述。

遮罩层

在Masking中有一个遮罩层,这个遮罩层是一个图像(渐变绘制的也是),该层也被称为遮罩模式,主要有 高亮Alpha 两种模式。

Alpha模式:带有

alpha
通道的图像,
alpha
通道是包含在每个像素数据中的透明度信息。最简单的例子是带有黑色和透明区域的PNG图像。遮罩图像 黑色部分 将会显示(
alpha
的值是
1
),透明区域(
alpha
的值为
0
)内容将会隐藏: