在css中如何使用clip-path裁剪元素

来源:图像处理网作者:阿亮头衔:草根站长
导读:本期聚焦于小伙伴创作的《在css中如何使用clip-path裁剪元素》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《在css中如何使用clip-path裁剪元素》有用,将其分享出去将是对创作者最好的鼓励。

clip-path是CSS3引入的属性,作用是裁剪元素的可见区域,只显示指定区域内的内容,区域外的内容会被隐藏,常用于实现特殊形状的元素、图片裁剪、动态过渡效果等场景。

clip-path基本语法

clip-path的语法格式为:

/* 基础语法 */
clip-path: <clip-source> | [ <basic-shape> || <geometry-box> ] | none;

/* 示例:裁剪为圆形 */
.element {
    clip-path: circle(50% at 50% 50%);
}

其中<basic-shape>是常用的裁剪形状值,<geometry-box>用于指定裁剪的参考盒模型,默认是border-box。

常用裁剪形状函数

1. circle() 圆形裁剪

circle()函数用于裁剪出圆形区域,参数依次是半径和圆心位置,圆心位置默认是元素中心。

/* 裁剪为半径50px的圆形,圆心在元素左上角 */
.circle-demo {
    width: 200px;
    height: 200px;
    background: #409eff;
    clip-path: circle(50px at 0 0);
}

/* 裁剪为占元素一半大小的圆形,居中显示 */
.circle-center {
    width: 200px;
    height: 200px;
    background: #67c23a;
    clip-path: circle(50% at 50% 50%);
}

2. ellipse() 椭圆裁剪

ellipse()函数用于裁剪出椭圆区域,前两个参数是椭圆的x轴半径和y轴半径,后面是圆心位置。

/* 裁剪为x轴半径80px,y轴半径40px的椭圆,居中 */
.ellipse-demo {
    width: 200px;
    height: 200px;
    background: #e6a23c;
    clip-path: ellipse(80px 40px at 50% 50%);
}

3. polygon() 多边形裁剪

polygon()是最灵活的函数,通过指定多个坐标点来定义多边形裁剪区域,坐标点用逗号分隔,每个点是x y的格式。

/* 裁剪为三角形 */
.triangle {
    width: 200px;
    height: 200px;
    background: #f56c6c;
    clip-path: polygon(50% 0, 0 100%, 100% 100%);
}

/* 裁剪为五边形 */
.pentagon {
    width: 200px;
    height: 200px;
    background: #909399;
    clip-path: polygon(50% 0%, 100% 38%, 82% 100%, 18% 100%, 0% 38%);
}

4. inset() 矩形内裁

inset()函数用于从元素边缘向内裁剪,参数依次是上、右、下、左的内裁距离,还可以指定圆角。

/* 上下内裁20px,左右内裁30px */
.inset-demo {
    width: 200px;
    height: 200px;
    background: #409eff;
    clip-path: inset(20px 30px 20px 30px);
}

/* 内裁同时设置10px圆角 */
.inset-radius {
    width: 200px;
    height: 200px;
    background: #67c23a;
    clip-path: inset(20px round 10px);
}

动态裁剪效果实现

clip-path支持CSS过渡和动画,可以实现动态的裁剪效果。

/* 鼠标悬停时从圆形变为全显示 */
.dynamic-demo {
    width: 200px;
    height: 200px;
    background: #e6a23c;
    clip-path: circle(30% at 50% 50%);
    transition: clip-path 0.3s ease;
}

.dynamic-demo:hover {
    clip-path: circle(70% at 50% 50%);
}

注意事项

  • clip-path裁剪的区域不会响应鼠标事件,只有可见区域可以触发交互
  • 部分旧版本浏览器需要添加前缀,比如-webkit-clip-path
  • 使用polygon()定义复杂多边形时,坐标点需要按顺序闭合,否则裁剪效果可能不符合预期
  • 如果裁剪后元素内容溢出,需要配合overflow: hidden使用吗?不需要,clip-path本身就会隐藏裁剪区域外的内容

兼容性说明

目前主流现代浏览器都支持clip-path属性,具体兼容情况可以参考以下表格:

浏览器支持版本
Chrome55及以上
Firefox54及以上
Safari10.1及以上(需-webkit-前缀)
Edge79及以上

clip-pathCSS元素裁剪polygon修改时间:2026-07-16 18:15:33

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。