使用 clip-path 实现不规则边框

<template>
  <div class="irregular-container">
    <div class="border_1">
      <div class="content">
        <div class="border_2">
          <slot></slot>
        </div>
      </div>
    </div>
  </div>
</template>

<script setup>
</script>

<style scoped>
.irregular-container {
  /* position: relative; */
  width: 100%;
  height: 100%;
}

.border_1 {
  width: 100%;
  height: 100%;
  /* 使用clip-path创建不规则形状 */
  clip-path: polygon(
    40px 0,
    250px 0,
    282px 36px,
    100% 36px,
    100% calc(100% - 25px),
    calc(100% - 25px) 100%,
    calc(100% - 96px) 100%,
    calc(100% - 104px) calc(100% - 8px),
    12px calc(100% - 8px),
    12px 136px,
    0 131px,
    0 40px
  );

  background: #00ffff;
  position: relative;
}

.border_1::before {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0px;
  left: 0px;
  /* 使用clip-path创建不规则形状 */
  clip-path: polygon(
    41px 1px,
    249px 1px,
    281px 37px,
    calc(100% - 1px) 37px,
    calc(100% - 1px) calc(100% - 26px),
    calc(100% - 26px) calc(100% - 1px),
    calc(100% - 95px) calc(100% - 1px),
    calc(100% - 103px) calc(100% - 9px),
    13px calc(100% - 9px),
    13px 135px,
    1px 130px,
    1px 41px
  );
  background: radial-gradient(50% 50% at 50% 50%, #083053 0%, #05172d 100%);
}

.content {
  width: 100%;
  height: 100%;
  box-sizing: border-box;
  padding: 45px 12px 21px 23px;
}

.border_2 {
  width: 100%;
  height: 100%;
  /* 使用clip-path创建不规则形状 */
  clip-path: polygon(
    16px 0,
    100% 0,
    100% calc(100% - 18px),
    calc(100% - 14px) 100%,
    0 100%,
    0 23px
  );
  position: relative;
  background: #00ffff;
}

.border_2::before {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0px;
  left: 0px;
  clip-path: polygon(
    17px 1px,
    calc(100% - 1px) 1px,
    calc(100% - 1px) calc(100% - 19px),
    calc(100% - 15px) calc(100% - 1px),
    1px calc(100% - 1px),
    1px 24px
  );
  background: radial-gradient(50% 50% at 50% 50%, #083053 0%, #05172d 100%);
}
</style>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

阁下何不同风起?

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

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

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

打赏作者

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

抵扣说明:

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

余额充值