CSS clip-path 属性


CSS clip-path属性介绍

CSS clip-path属性用于剪切元素的部分区域,它能够用于任何有固定宽高的元素,并且支持多种剪切类型,比如矩形、圆形、椭圆、多边形等。

剪切类型

基础形状

clip-path属性可以使用svg基本形状作为最基本的剪切类型,这些形状包括矩形、圆形、椭圆、多边形等。这些形状可以通过函数的参数来指定。

矩形

clip-path属性可以通过rect()函数来指定一个矩形区域来进行剪切。

.clip {
  clip-path: rect(0, 100px, 100px, 0);
}

圆形

clip-path属性可以通过circle()函数来指定一个圆形区域来进行剪切。

.clip {
  clip-path: circle(50% at center);
}

椭圆形

clip-path属性可以通过ellipse()函数来指定一个椭圆形区域来进行剪切。

.clip {
  clip-path: ellipse(80px 60px at center);
}

多边形

clip-path属性可以通过polygon()函数来指定一个多边形区域来进行剪切。

.clip {
  clip-path: polygon(0 0, 100px 0, 80px 80px, 0 100px);
}

Path形状

clip-path属性还可以使用svg的path形状进行剪切,可以通过复杂的路径定义来创建更复杂的剪切形状。

.clip {
  clip-path: path('M10,80 C40,10 65,10 95,80 S150,150 180,80 L180,180 L10,180 Z');
}

实现效果

clip-path属性可以实现一些比较炫的效果,比如将图片剪切成不规则形状、用圆形或其它形状代替方形的遮罩等。

比如,下面的例子将图片剪切成一个多边形:

.clip {
  clip-path: polygon(0 0, 100px 0, 80px 80px, 0 100px);
}

image

下面的例子将图片剪切成一个圆形:

.clip {
  clip-path: circle(50% at center);
}

image

注意事项

注意事项如下:

  • clip-path属性不是所有的浏览器都支持,为了保证兼容性,建议在使用时使用前缀(-webkit-、-moz-等);
  • clip-path属性对渲染性能有影响,因此建议只在必要的情况下使用,尽量避免滥用;
  • 由于clip-path属性作用的是元素的外形而非元素本身的大小,因此元素还是照常占据着原来的空间,需要通过其它方式来调整元素的位置和大小。

总结

CSS clip-path属性可以用于剪切元素的部分区域,可以用于任何有固定宽高的元素,并且支持多种剪切类型,比如矩形、圆形、椭圆、多边形等。它能够实现一些比较炫的效果,但是需要注意兼容性和性能问题。