You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现此Bottom tab Bar点击图标时的曲线样式效果?

实现底部TabBar点击时的曲线效果

下面给你几种实用的实现方案,按需选择即可:

方案1:CSS伪元素+圆角实现(简单易上手)

适合常规的顶部凸起圆角曲线,步骤如下:

  1. 基础HTML结构
<div class="bottom-tab-bar">
  <div class="tab-item">首页</div>
  <div class="tab-item active">发现</div>
  <div class="tab-item">我的</div>
</div>
  1. 核心CSS样式
/* 底部TabBar基础样式 */
.bottom-tab-bar {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  height: 60px;
  border-top: 1px solid #eee;
  background-color: #ffffff;
  display: flex;
  align-items: center;
}

/* 单个Tab项样式 */
.tab-item {
  flex: 1;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}

/* 激活Tab的曲线效果 */
.tab-item.active::before {
  content: "";
  position: absolute;
  top: -8px; /* 向上偏移,让曲线露出TabBar */
  left: 50%;
  transform: translateX(-50%);
  width: 60px;
  height: 20px;
  background-color: #ffffff; /* 和TabBar背景色一致 */
  border-top-left-radius: 30px;
  border-top-right-radius: 30px;
  border-top: 1px solid #eee; /* 和TabBar边框色一致,覆盖原有边框 */
}

原理:通过伪元素创建顶部圆角形状,背景色和边框色与TabBar匹配,定位在激活Tab顶部,覆盖TabBar上边框,形成凸起曲线效果。

方案2:SVG自定义曲线(支持复杂造型)

如果需要更灵活的曲线(比如非对称、更圆润的弧度),用SVG是最优解:

  1. 嵌入SVG的HTML结构
<div class="bottom-tab-bar">
  <div class="tab-item">首页</div>
  <div class="tab-item active">
    <svg class="tab-curve" viewBox="0 0 100 20" xmlns="http://www.w3.org/2000/svg">
      <!-- 贝塞尔曲线定义,可调整Q后面的坐标改变曲线形状 -->
      <path d="M0,20 Q50,-8 100,20" fill="#ffffff" stroke="#eee" stroke-width="1"/>
    </svg>
    发现
  </div>
  <div class="tab-item">我的</div>
</div>
  1. 配套CSS样式
.bottom-tab-bar {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  height: 60px;
  border-top: 1px solid #eee;
  background-color: #ffffff;
  display: flex;
  align-items: center;
}

.tab-item {
  flex: 1;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}

.tab-curve {
  position: absolute;
  top: -10px;
  left: 50%;
  transform: translateX(-50%);
  width: 70px;
  height: 20px;
}

原理:用SVG的贝塞尔曲线(Q命令)绘制自定义形状,填充色和描边色匹配TabBar,定位在激活Tab顶部即可。你可以修改d属性里的坐标,调整曲线的弧度和高度。

方案3:CSS clip-path裁剪(适合特殊折线+曲线)

如果需要TabBar整体配合的裁剪效果,可以用clip-path:

.tab-item.active {
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 15% 0, 85% 0);
}

这种方式适合简单造型,复杂曲线还是推荐用SVG。

内容的提问来源于stack exchange,提问作者parveen kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 04:54:16