1、clip-path的简介
如果您需要在现代网站上 操作复杂的视觉效果,那么熟悉然后使用 CSS 属性 clip-path 尤为重要。
clip-path 属性可以像下面这样使用 :
img {
clip-path: url(#myClip);
}
2、clip-path的基本语法
clip-path 的基本语法十分简单,它只接受一个值:函数值。这个函数值指定了一个剪切路径,用来定义应该保留的区域。
clip-path: {basic-shape || url() || none}
none : 表示不应该使用裁剪路径 ,使用元素的边界盒子来控制元素
url() : 表示要使用一个 SVG <clipPath>
元素来指定裁剪路径。这个 SVG 元素应该一个 ID 用项
3、clip-path的使用场景
3.1 隐藏图像或文本外的内容
clip-path是产生视觉差异的神器,可以用来隐藏图像或文本的外部内容。
/* 将元素裁剪为圆形 */
.clip {
clip-path: circle(50%);
}
3.2 制作特殊形状
clip-path也可以用于裁剪形状,如下例子:
/* 裁剪椭圆形状 */
img {
clip-path: ellipse(50% 50% at 50% 50%);
}
3.3 制作图片遮罩效果
我们可以使用SVG,将它作为剪切路径应用到元素上。这时候,需要使用“url()”函数:
/* 用切割路径遮罩文本 */
h2 {
background: url(https://assets.codepen.io/721952/c2.png) 50% / cover no-repeat;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
-webkit-clip-path: url(#wavy);
clip-path: url(#wavy);
}
/* SVG 剪切路径 */
<svg>
<defs>
<clipPath id="wavy">
<path d="M0 100 C 20 0 50 0 100 100 Z" />
</clipPath>
</defs>
</svg>
4、clip-path的兼容性
谷歌,火狐,Safari和Edge浏览器都支持clip-path。IE浏览器仅支持一小部分clip-path功能。
5、clip-path的局限性
clip-path 属性支持可伸展的大小,但是它们是基于像素的。这就意味着元素的大小必须已知。此外,clip-path 不会将被裁剪掉的像素从元素渲染中去除。这意味着浏览器虽然渲染了这些图像,但是对它们的显示进行了修剪。