导读:本期聚焦于小伙伴创作的《如何用CSS实现带圆角凹陷和透明背景的优惠券样式?》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《如何用CSS实现带圆角凹陷和透明背景的优惠券样式?》有用,将其分享出去将是对创作者最好的鼓励。

在电商、本地生活类的前端页面中,优惠券是高频出现的组件,带圆角凹陷和透明背景的样式既美观又能适配多种页面背景,不需要额外切图就能实现。这种样式的核心是利用CSS的径向渐变模拟凹陷效果,同时控制背景的透明度。

如何用CSS实现带圆角凹陷和透明背景的优惠券样式?

实现核心思路

要实现带圆角凹陷和透明背景的优惠券,主要分为三个步骤:首先设置优惠券的基础容器样式,包括圆角、尺寸和透明背景;然后通过伪元素在容器的左右两侧添加凹陷效果,凹陷部分需要和容器背景保持一致,实现视觉上的镂空感;最后处理优惠券内部的内容布局,避免内容被凹陷部分遮挡。

基础容器样式设置

首先定义优惠券的整体容器,设置圆角、透明背景和基本的尺寸,这里使用rgba来设置背景透明度,保证背景可以透出底层的页面颜色。

/* 优惠券基础容器样式 */
.coupon {
  width: 300px;
  height: 120px;
  border-radius: 12px;
  background: rgba(255, 107, 0, 0.8); /* 橙色半透明背景,可替换为任意颜色 */
  display: flex;
  align-items: center;
  position: relative;
  padding: 0 20px;
  box-sizing: border-box;
}

添加圆角凹陷效果

凹陷效果可以通过::before::after伪元素实现,使用径向渐变生成圆形凹陷,凹陷的颜色需要和容器所在的背景色一致,这里如果容器是放在白色背景页面上,就使用白色径向渐变,保证凹陷部分看起来是镂空的。

/* 左侧凹陷 */
.coupon::before {
  content: '';
  position: absolute;
  left: -10px;
  top: 50%;
  transform: translateY(-50%);
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: radial-gradient(circle, #fff 0%, #fff 50%, transparent 50%);
}

/* 右侧凹陷 */
.coupon::after {
  content: '';
  position: absolute;
  right: -10px;
  top: 50%;
  transform: translateY(-50%);
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: radial-gradient(circle, #fff 0%, #fff 50%, transparent 50%);
}

如果优惠券的背景不是纯色,而是需要完全透明,那么可以把径向渐变的颜色替换为transparent,同时调整容器的背景为完全透明,这样凹陷部分就会直接透出底层页面内容。

/* 完全透明背景的优惠券容器 */
.transparent-coupon {
  width: 300px;
  height: 120px;
  border-radius: 12px;
  background: transparent;
  border: 2px solid rgba(255, 107, 0, 0.8);
  display: flex;
  align-items: center;
  position: relative;
  padding: 0 20px;
  box-sizing: border-box;
}

/* 完全透明背景的凹陷效果 */
.transparent-coupon::before {
  content: '';
  position: absolute;
  left: -12px;
  top: 50%;
  transform: translateY(-50%);
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: radial-gradient(circle, transparent 0%, transparent 50%, #fff 50%);
}

.transparent-coupon::after {
  content: '';
  position: absolute;
  right: -12px;
  top: 50%;
  transform: translateY(-50%);
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: radial-gradient(circle, transparent 0%, transparent 50%, #fff 50%);
}

完整示例代码

下面是一个完整的可运行示例,包含半透明背景和完全透明背景两种优惠券样式,你可以直接复制到HTML文件中查看效果。

<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>优惠券样式示例</title>
  <style>
    /* 半透明背景优惠券 */
    .coupon {
      width: 300px;
      height: 120px;
      border-radius: 12px;
      background: rgba(255, 107, 0, 0.8);
      display: flex;
      align-items: center;
      position: relative;
      padding: 0 20px;
      box-sizing: border-box;
      margin-bottom: 30px;
    }
    .coupon::before {
      content: '';
      position: absolute;
      left: -10px;
      top: 50%;
      transform: translateY(-50%);
      width: 20px;
      height: 20px;
      border-radius: 50%;
      background: radial-gradient(circle, #fff 0%, #fff 50%, transparent 50%);
    }
    .coupon::after {
      content: '';
      position: absolute;
      right: -10px;
      top: 50%;
      transform: translateY(-50%);
      width: 20px;
      height: 20px;
      border-radius: 50%;
      background: radial-gradient(circle, #fff 0%, #fff 50%, transparent 50%);
    }
    .coupon-left {
      flex: 1;
      color: #fff;
    }
    .coupon-price {
      font-size: 32px;
      font-weight: bold;
    }
    .coupon-desc {
      font-size: 14px;
      margin-top: 5px;
    }
    .coupon-right {
      color: #fff;
      font-size: 16px;
      padding-left: 20px;
      border-left: 1px dashed #fff;
    }

    /* 完全透明背景优惠券 */
    .transparent-coupon {
      width: 300px;
      height: 120px;
      border-radius: 12px;
      background: transparent;
      border: 2px solid rgba(255, 107, 0, 0.8);
      display: flex;
      align-items: center;
      position: relative;
      padding: 0 20px;
      box-sizing: border-box;
    }
    .transparent-coupon::before {
      content: '';
      position: absolute;
      left: -12px;
      top: 50%;
      transform: translateY(-50%);
      width: 24px;
      height: 24px;
      border-radius: 50%;
      background: radial-gradient(circle, transparent 0%, transparent 50%, #fff 50%);
    }
    .transparent-coupon::after {
      content: '';
      position: absolute;
      right: -12px;
      top: 50%;
      transform: translateY(-50%);
      width: 24px;
      height: 24px;
      border-radius: 50%;
      background: radial-gradient(circle, transparent 0%, transparent 50%, #fff 50%);
    }
    .transparent-coupon .coupon-left {
      color: rgba(255, 107, 0, 0.8);
    }
    .transparent-coupon .coupon-right {
      color: rgba(255, 107, 0, 0.8);
      border-left: 1px dashed rgba(255, 107, 0, 0.8);
    }
  </style>
</head>
<body style="padding: 30px; background: #f5f5f5;">
  <div class="coupon">
    <div class="coupon-left">
      <div class="coupon-price">50元</div>
      <div class="coupon-desc">满200元可用</div>
    </div>
    <div class="coupon-right">立即领取</div>
  </div>

  <div class="transparent-coupon">
    <div class="coupon-left">
      <div class="coupon-price">30元</div>
      <div class="coupon-desc">满100元可用</div>
    </div>
    <div class="coupon-right">立即使用</div>
  </div>
</body>
</html>

注意事项

  • 凹陷的大小可以通过伪元素的宽高调整,凹陷的位置可以通过topleft/right属性修改,比如放在容器的顶部或底部实现上下凹陷的效果。
  • 如果页面背景不是纯色,而是渐变或者图片,那么凹陷的径向渐变颜色需要替换为和页面背景一致的渐变,才能保证凹陷效果自然。
  • 透明背景的优惠券如果需要适配深色模式,只需要调整边框和文字的颜色即可,不需要修改凹陷的核心实现逻辑。

CSS优惠券样式圆角凹陷透明背景修改时间:2026-07-09 23:42:39

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