美文网首页CSS特效
多曲面卡片实现

多曲面卡片实现

作者: 林中白虎 | 来源:发表于2024-03-09 09:58 被阅读0次

    效果展示

    多曲面卡片7.png

    CSS 知识点

    • inset 属性运用

    整体实现页面布局

    <!-- 只是展示一个卡片,剩余的卡片只要修改对应图标和颜色即可 -->
    <div class="card" style="--clr: #249eff">
      <div class="box">
        <div class="icon">
          <div class="icon_box"></div>
        </div>
        <div class="content"></div>
      </div>
    </div>
    
    .container .card {
      position: relative;
      width: 300px;
      height: 460px;
      background: var(--clr);
      border-radius: 20px;
      border-top-left-radius: 70px;
      overflow: hidden;
    }
    
    多曲面卡片1.png

    实现卡片头部整体部分

    /* 定位在背景上,并且使用inset属性设置四周间距,从而形成边框 */
    .container .card .box {
      position: absolute;
      inset: 10px;
      background: #282828;
      border-radius: 10px;
    }
    
    /* 设置图标容器样式 */
    .container .card .box .icon {
      position: absolute;
      width: 140px;
      height: 140px;
      background: var(--clr);
      border-bottom-right-radius: 50%;
    }
    

    实现卡片图标部分左下角的弯曲部分

    实现思路就是在icon的容器中添加一个伪元素,伪元素使用box-shadow属性进行弯曲部分的实现,如下图橙色框框出的部分,我们只要设置对应的颜色就可以,形成图标部分左下角的弯曲部分。

    多曲面卡片4.png
    .container .card .box .icon::before {
      content: "";
      position: absolute;
      bottom: -30px;
      left: 0;
      width: 30px;
      height: 30px;
      background: transparent;
      border-top-left-radius: 30px;
      box-shadow: -5px -5px 0 5px var(--clr);
    }
    

    实现卡片图标部分右上角的弯曲部分

    实现思路跟左下角部分实现思路一样。

    .container .card .box .icon::after {
      content: "";
      position: absolute;
      top: 0px;
      right: -30px;
      width: 30px;
      height: 30px;
      background: transparent;
      border-top-left-radius: 30px;
      box-shadow: -5px -5px 0 5px var(--clr);
    }
    

    实现图标容器样式

    .container .card .box .icon .icon_box {
      position: absolute;
      inset: 10px;
      background: #282828;
      border-radius: 50%;
      border-top-right-radius: 10px;
      border-bottom-left-radius: 10px;
    }
    
    多曲面卡片6.png

    实现图标样式

    <div class="icon_box">
      <i class="fa-solid fa-code"></i>
    </div>
    
    .container .card .box .icon .icon_box {
      position: absolute;
      inset: 10px;
      background: #282828;
      border-radius: 50%;
      border-top-right-radius: 10px;
      border-bottom-left-radius: 10px;
      display: flex;
      justify-content: center;
      align-items: center;
      font-weight: 600;
    }
    
    .container .card .box .icon .icon_box i {
      font-size: 2.5em;
      color: #fff;
    }
    

    实现内容样式

    .container .card .box .content {
      position: absolute;
      top: 150px;
      padding: 20px;
      text-align: center;
    }
    
    .container .card .box .content h2 {
      color: #fff;
      font-size: 1.35em;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: 0.12em;
    }
    
    .container .card .box .content p {
      color: #fff;
      font-size: 0.95em;
      opacity: 0.75;
      margin: 0 0 10px;
    }
    
    .container .card .box .content a {
      background: var(--clr);
      display: inline-block;
      padding: 10px 25px;
      text-decoration: none;
      color: #333;
      text-transform: uppercase;
      font-weight: 600;
      border-radius: 30px;
      transition: 0.5s;
    }
    
    .container .card .box .content a:hover {
      letter-spacing: 0.2em;
    }
    
    多曲面卡片7.png

    完整代码下载

    完整代码下载

    相关文章

      网友评论

        本文标题:多曲面卡片实现

        本文链接:https://www.haomeiwen.com/subject/zbzkzdtx.html