阅读 335

【CSS】clip-path裁剪路径

clip-path

这次,我们一起来学习一下CSS中的clip-path属性:裁剪路径

  • clip-path可用于裁剪各种形状,并将裁剪出来的形状应用于元素的可视区域,这样元素将会呈现出clip-path裁剪后的形状

  • 该属性使用的属性值主要包括三类

    本文主要介绍basic-shape属性值的使用方式,其它两种仅作简单介绍

    • clip-source:表示引用外部资源进行裁剪

    • geometry-box:表示使用盒模型属性对元素进行裁剪

    • basic-shape:表示使用自带的函数来绘制裁剪图形

(1)clip-source

  • 作用:引入外部路径来绘制裁剪路径

  • 语法:clip-path: url()

    • 通过url()来进行引入SVG元素,并按照SVG的路径进行裁剪

  • 使用:略

(2)geometry-box

  • 作用:通过设置引用框来确定裁剪边缘

  • 语法:clip-path: <geometry-box>

    • margin-boxborder-boxpadding-boxcontent-boxfill-boxstroke-boxview-boxnone

  • 使用:略

(3)basic-shape

  • 作用:使用形状函数来绘制裁剪路径

  • 语法:clip-path: <basic-shape>

    • circle:裁剪圆形

    • ellipse:裁剪椭圆形

    • inset:裁剪矩形

    • polygno:裁剪多边形

  • 使用:

    • 语法:clip-path: polygon(x1 y1, x2 y2, ...)

    • 使用:

      /* 三角形 */ .box1 {     width: 100px;     height: 100px;     clip-path: polygon(50% 0%, 100% 100%, 0% 100%);     background-color: #000; } /* 菱形 */ .box2 {     width: 100px;     height: 100px;     clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);     background-color: #000; } /* 五角形 */ .box3 {     width: 100px;     height: 100px;     clip-path: polygon(         50% 0,         65% 40%,         100% 40%,         72% 60%,         85% 100%,         50% 75%,         15% 100%,         28% 60%,         0 40%,         35% 40%     );     background-color: #000; } 复制代码

      image-20211107153925565

    • x1y1表示第一个点的坐标

    • x2y2表示第二个点的坐标

    • polygon可以接收多个(x,y)坐标,以此类推,可以使用这个属性绘制任何形状

    • 语法:clip-path: inset()

    • 其效果也同border-radius,为矩形区域设置圆角

    • 设定一个值x,表示矩形区域距离上下左右的距离都是x

    • 设定两个值x y,表示矩形区域距离上下的距离为x,左右的距离为y

    • 设定三个值x y z,表示矩形区域,上边距为x,下边距为z,左右边距相同为y

    • 设定四个值x y z p,表示矩形区域的上下左右边距分别为x y z p

      .box1 {     width: 100px;     height: 100px;     clip-path: inset(10px);     background-color: #000; } .box2 {     width: 100px;     height: 100px;     clip-path: inset(10px 20px);     background-color: #000; } .box3 {     width: 100px;     height: 100px;     clip-path: inset(10px 20px 30px);     background-color: #000; } .box4 {     width: 100px;     height: 100px;     clip-path: inset(10px 20px 30px 40px);     background-color: #000; } 复制代码

      image-20211107145256343

    • 属性值同marginpadding的属性值设置方式一致

    • 此外,inset()还支持round属性值,属性值设置方式同border-radius(略,同上)

      .box1 {     clip-path: inset(10px round 5px); } .box2 {     clip-path: inset(10px 20px round 5px 10px); } .box3 {     clip-path: inset(10px 20px 30px round 5px 10px 15px); } .box4 {     clip-path: inset(10px 20px 30px 40px round 5px 10px 15px 20px); } 复制代码

      image-20211107145902623

    • 语法:clip-path: ellipse(rx ry at x y)

    • 使用:

      .box2 {     width: 100px;     height: 100px;     clip-path: ellipse(20px 40px at center center);     background-color: #000; } 复制代码

      image-20211107143935006

    • 必须的,可以相同,相同则为圆形

    • rx表示椭圆的X轴方向上的半径,ry表示椭圆的Y轴方向上的半径

    • 其它参数同circle的参数

    • 语法:clip-path: circle(r at x y)

    • 使用:

      .box {     width: 100px;     height: 100px;     clip-path: circle(40% at center center);     background-color: #000; } 复制代码

      image-20211107143300426

    • 初始坐标(0,0)从元素的左上角开始计算

    • 属性值可以是具体的数值,如px%,百分比值以元素的宽高为基准

    • 也可以是方位名词,如topleftcenter,缺省默认为center

    • 半径必传,也可以只传半径,圆心默认居中

    • r表示圆的半径

    • at表示定义圆心的参数

    • x表示圆心的X坐标

    • y表示圆心的Y坐标

    • 属性值:

    • 裁剪圆形

    • 裁剪椭圆形

    • 裁剪矩形

    • 裁剪多边形


作者:Ruovan
链接:https://juejin.cn/post/7028174453095792647


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐