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

如何实现激活项仅三边带边框且主右侧边框动态中断的菜单

实现动态中断的菜单边框效果

需求

  • 菜单容器右侧显示主垂直边框
  • 激活状态的菜单项显示上、下、左边框,右侧无框
  • 主垂直边框需在激活项的位置自动中断,且支持任意菜单项切换为激活状态(不能硬编码中断位置)

效果示意图

菜单边框效果示意图

解决方案代码

核心思路是利用负边距让激活项覆盖容器的右侧边框,配合背景色实现中断效果,完全支持动态切换激活项:

CSS 代码

.container {
  border-right: 1px solid #000; /* 主垂直边框 */
  width: 200px;
  padding-top: 20px;
  padding-bottom: 20px;
  background: #fff; /* 需与页面背景色一致 */
}

.item {
  padding: 10px;
}

.active {
  border-top: 1px solid #000;
  border-bottom: 1px solid #000;
  border-left: 1px solid #000;
  margin-right: -1px; /* 向右偏移1px,覆盖容器右侧边框 */
  background: #fff; /* 用背景色盖住被覆盖的边框区域 */
}

HTML 代码

<div class="container">
  <div class="item active">
    Test1
  </div>
  <div class="item">
    Test2
  </div>
  <div class="item">
    Test3
  </div>
</div>

原理说明

  • margin-right: -1px 让激活项超出容器右侧1px,刚好对齐并覆盖容器的右侧边框
  • 相同的背景色确保激活项覆盖区域不会透出容器的边框
  • 无论哪个菜单项添加active类,都会自动触发边框中断效果,无需针对特定位置写死样式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 10:02:17