clip-path
一、认识
clip-path
属性使用裁剪方式创建元素的可显示区域,区域内的部分显示,区域外的隐藏。
二、语法
/* Keyword values */
clip-path: none;
/* <clip-source> values */
clip-path: url(resources.svg#c1);
/* <geometry-box> values */
clip-path: margin-box;
clip-path: border-box;
clip-path: padding-box;
clip-path: content-box;
clip-path: fill-box;
clip-path: stroke-box;
clip-path: view-box;
/* <basic-shape> values */
clip-path: inset(100px 50px);
clip-path: circle(50px at 0 100px);
clip-path: ellipse(50px 60px at 0 10% 20%);
clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
clip-path: path('M0.5,1 C0.5,1,0,0.7,0,0.3 A0.25,0.25,1,1,1,0.5,0.3 A0.25,0.25,1,1,1,1,0.3 C1,0.7,0.5,1,0.5,1 Z');
/* Box and shape values combined */
clip-path: padding-box circle(50px at 0 100px);
/* Global values */
clip-path: inherit;
clip-path: initial;
clip-path: revert;
clip-path: revert-layer;
clip-path: unset;
三、取值
3.1 <clip-source>
clip-path: <clip-source>
用 url()
引用 SVG
的 <clipPath>
元素
3.2 <basic-shape>
**``clip-path: basic-shape** 一种形状, 其大小和位置由
geometry-box的值定义。如果没有指定
geometry-box,则将使用
border-box` 用为参考框。取值可为以下值中的任意一个:
-
inset(): 定义一个
inset
矩形 -
circle(): 定义一个圆形(使用一个半径和一个圆心位置)
-
ellipse(): 定义一个椭圆(使用两个半径和一个圆心位置)
-
polygon(): 定义一个多边形(使用一个
SVG
填充规则和一组顶点) -
path(): 定义一个任意形状(使用一个可选的
SVG
填充规则和一个SVG
路径定义)
3.3 <geometry-box>
clip-path: geometry-box
如果同 basic-shape
一起声明,它将为基本形状提供相应的参考框盒。通过自定义,它将利用确定的盒子边缘包括任何形状边角(比如说,被 border-radius
定义的剪切路径)。几何框盒可以有以下的值中的一个:
-
margin-box
: 使用margin box
作为引用框 -
border-box
: 使用border box
作为引用框 -
padding-box
: 使用padding box
作为引用框 -
content-box
: 使用content box
作为引用框 -
fill-box
: 利用对象边界框(object bounding box
)作为引用框 -
stroke-box
: 使用笔触边界框(stroke bounding box
)作为引用框 -
view-box
: 使用最近的SVG
视口(viewport
)作为引用框。如果viewBox
属性被指定来为元素创建SVG
视口,引用框将会被定位在坐标系的原点,引用框位于由viewBox
属性建立的坐标系的原点,引用框的尺寸用来设置viewBox
属性的宽高值。
3.4 none
clip-path: none
不创建剪切路径。
CSS
计算值不为 none
时,会创建新的层叠上下文,就像 CSS opacity
的值不为 1
时那样。