小元
博客
详情文字在这里缓缓展开
静候你翻开这一页

CSS 实现卡片圆角和折耳圆角

CSS 实现卡片整体圆角 + 右下折耳 + 折耳缺口处圆角。

   项目效果预览:

       1782099736285.png


   前言:

       也许你会想圆角很好实现啊,用border-radius就可以了,但如果还有加一个缺角呢,并且缺角也得两端也得实现圆角呢,这个问题就变得没那么简单了,受技术限制下文只提供了博主的实现方法,如您有更好的方法或不同的解决办法亦或者有其它问题欢迎在下方留言讨论。


   解决过程:

       第一次解决失败,我采用了border-radius + clip-path结合实现,使用border-radius实现四边的圆角,clip-path斜切实现了缺角,一切都按计划走的很美好,效果也不错,但缺角两端的圆角却难倒了我,尝试了各种方法均无法得到有效解决或最终效果不理想,用了AI均失败了,效果和代码如下。

<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>1</title>
  </head>
  <body>
    <div class="box"></div>
  </body>
</html>

<style>
  .box {
    width: 200px;
    height: 200px;
    background: #000;
    margin: 100px auto;
    border-radius: 10px;
    -webkit-clip-path: polygon(100% 1%, 100% 73%, 76% 100%, 0 100%, 0 0);
    clip-path: polygon(100% 1%, 100% 73%, 76% 100%, 0 100%, 0 0);
  }
</style>

1782100298317.png


       第二次完美解决,在几经折腾无果后这里考虑使用SVG作背景图,总所周知SVG总是充满奇妙和可能的,使用SVG替代整体的背景和圆角 + 缺角问题得到了完美的解决。

<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>1</title>
  </head>
  <body>
    <div class="box">
      <svg class="item-bg" viewBox="0 0 285 259" preserveAspectRatio="none" xmlns="http://www.w3.org/2000/svg">
        <path
          class="item-bg-shape"
          d="M 18,0 H 267 A 18,18 0 0,1 285,18 V 182.27 A 18,18 0 0,1 279.73,195 L 222.072,255 A 18,18 0 0,1 209.34,259 H 18 A 18,18 0 0,1 0,241 V 18 A 18,18 0 0,1 18,0 Z"
        />
        <line class="item-bg-fold" x1="279.73" y1="195" x2="222.072" y2="255" />
      </svg>
    </div>
  </body>
</html>

<style>
  .box {
    width: 200px;
    height: 200px;
    margin: 100px auto;
    border-radius: 10px;
    position: relative;
    overflow: hidden;
  }

  .item-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
    pointer-events: none;
  }
  .item-bg-shape {
    fill: #000;
    transition: fill .3s;
  }
  .item-bg-fold {
    stroke: rgba(255, 255, 255, 0.12);
    stroke-width: 1;
    vector-effect: non-scaling-stroke;
    opacity: 1;
  }
</style>

1782100906798.png

渝ICP备2024031078号-1
本网站一切内容不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
如无意中侵犯了企业或个人的知识产权等,请及时通过电子邮件(1102905617@qq.com)告知我,本网站将会给予删除。
最新公告
😊访客你好,很高兴你的到来,本博客仍在建设中,还有些许功能尚在开发中,最后祝你在此能有所收获。
💥小元博客第三代自2025年9月上线以来,2026/08/09日迎来了它的第三次更新本次更新内容如下:
1. 文章详情页样式变更,由原来的弹窗改为单独的页面。
2. 使用Nuxt对项目进行了SEO优化,优化了搜索引擎的抓取和索引。
3. 对验签进行了优化,降低了请求被误触发拦截的概率。
4. 移动端也正在稳步推进中,在不久的将来会与大家见面。
5. 修复了首页黄历节日不显示的问题,以及其它bug的修复。