📚 CSS clip-path 剪切
clip-path
属性(替代已经弃用的clip
属性)用于裁剪元素,支持逗号赋值。
语法
1 | clip-path:<clip-source> | [ <basic-shape> || <geometry-box> ] | none |
预定义函数
在左上角为(0%,0%),右下角为(100%,100%)的坐标轴中,调用预定义的函数设置裁剪边框:
inset( 上右下左的边距 round 上右下左圆角 )
裁剪內置矩形1
clip-path:inset(10px 20px 30px 10px round 20px 5px 50px 0);
circle(半径 at 圆心坐标)
裁剪圆形1
clip-path:circle(50% at 50% 50%);
![圆形裁剪分析图](2019-07-16-CSS-clip-path/circle.JPG)
ellipse(长短轴半径 at 圆心坐标)
裁剪椭圆形1
clip-path:ellipse(25% 50% at 50% 50%);
polyon(顶点坐标)
裁剪多边形
定义多边形各个顶点坐标,直线勾连顶点圈出裁剪区域。需要过渡效果时必须注意,例如裁剪三角形:1
clip-path:polygon(0% 100%, 50% 0%,100% 100%);
另外如果需要过渡效果就必须注意:
polygon
点坐标的数目在动画的前后数目要一样。
👀 效果对比
多边形裁剪polygon
多边形 | 效果图 | 代码 |
---|---|---|
三角形 | polygon(0% 100%, 50% 0%,100% 100%) | |
正方形 | polygon(0% 0%, 0% 100%,100% 100%,100% 0%) | |
正五边形 | polygon(0% 38.31%, 50% 0%,100% 38.31%,80.86% 100%,19.14% 100%) | |
正六边形 | polygon(25% 0%, 75% 0%,100% 50%,75% 100%,25% 100%,0% 50%) | |
正七边形 | polygon(50% 0%, 90.18% 19.72%,100% 64.22%,72.32% 100%,27.68% 100%,0% 64.22%,10.09% 19.72%) | |
正八边形 | polygon(29.34% 0%, 70.66% 0%,100% 29.34%,100% 70.66%,70.66% 100%,29.34% 100%,0% 70.66%,0% 29.34%) |
动画效果
demo1
1 | .demo1 { |
demo2
1 | .demo2 { |
🌵最后
- 这是一个clip-path在线制作工具
- 点📖 查看MDN上的介绍,致敬
- 多边形例子及裁剪分析图参考了这篇文章,致谢
- 一个超级棒的动物变换例子页面👍