【CSS】clip-path 属性详解


clip-path 属性用于在 SVG 和 HTML 中创建复杂的裁剪区域(即剪切路径),从而只显示元素的一部分。

基本语法

selector {
  clip-path: value;
}

clip-path 属性接受以下类型的值:

几何形状

  1. circle(): 定义一个圆形。
clip-path: circle(50%);

例如:clip-path: circle(50px at 50% 50%); 表示一个中心在元素中心,半径为50px的圆。

  1. ellipse(): 定义一个椭圆。
clip-path: ellipse(50% 50%);

例如:clip-path: ellipse(50% 25% at 50% 50%); 表示一个中心在元素中心,水平半径为元素宽度的50%,垂直半径为元素高度的25%的椭圆。

  1. inset(): 定义一个矩形区域,可以有圆角。
clip-path: inset(10px 20px 30px 40px);

例如:clip-path: inset(10% 20% 30% 40% round 10px); 表示一个从各边内缩指定距离并且有圆角的矩形。

  1. polygon(): 定义一个多边形。
clip-path: polygon(50% 0%, 100% 100%, 0% 100%);

例如:clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%); 表示一个菱形。

SVG 引用

使用定义在 SVG 内部的 元素。

clip-path: url(#clipPathId);

例如:

<svg width="0" height="0">
  <defs>
    <clipPath id="myClip">
      <circle cx="50" cy="50" r="50" />
    </clipPath>
  </defs>
</svg>
<div style="clip-path: url(#myClip); width: 100px; height: 100px; background: red;"></div>

URL 引用

引用外部 SVG 文件中的 。

clip-path: url('path/to/svg#clipPathId');

示例

  1. 使用圆形剪切
<div style="clip-path: circle(50%); width: 200px; height: 200px; background: red;"></div>
  1. 使用椭圆剪切
<div style="clip-path: ellipse(50% 25% at 50% 50%); width: 200px; height: 200px; background: green;"></div>
  1. 使用 inset 剪切
<div style="clip-path: inset(10% 20% 30% 40% round 10px); width: 200px; height: 200px; background: blue;"></div>
  1. 使用多边形剪切
<div style="clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%); width: 200px; height: 200px; background: yellow;"></div>

结合动画

<div class="clip-animated"></div>

<style>
  .clip-animated {
    width: 200px;
    height: 200px;
    background: orange;
    clip-path: circle(0% at 50% 50%);
    animation: clip-animation 3s infinite alternate;
  }

  @keyframes clip-animation {
    0% {
      clip-path: circle(0% at 50% 50%);
    }
    100% {
      clip-path: circle(50% at 50% 50%);
    }
  }
</style>
  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

骑着骆驼去南极

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值