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

CSS实现button:active状态下HR元素同步变色的方法咨询

方案1:纯CSS实现(仅按住鼠标时生效)

前提条件

需要先调整你的HTML结构,把所有导航按钮包裹在同一个父容器内,结构参考:

<nav id="nav-container">
  <button class="nav-buttons">导航1</button>
  <button class="nav-buttons">导航2</button>
  <button class="nav-buttons">导航3</button>
  <button class="nav-buttons">导航4</button>
</nav>
<hr id="hr-nav">

新增CSS规则

在你现有CSS的基础上添加以下代码即可:

/* 导航容器处于激活状态时,后续的分隔线同步变为红色 */
#nav-container:active ~ #hr-nav {
  border-color: red;
}

这个方案的效果逻辑和你现有的:active状态完全一致:按住导航按钮不松开时分隔线变红,松开鼠标后自动恢复为白色。


方案2:JS实现(点击后持续保持红色)

如果你需要点击按钮后分隔线一直保持红色,直到触发其他复位逻辑,可以用JS实现,代码如下:

// 获取所有导航按钮和分隔线元素
const navBtns = document.querySelectorAll('.nav-buttons')
const navHr = document.getElementById('hr-nav')

// 给每个按钮绑定点击事件
navBtns.forEach(btn => {
  btn.addEventListener('click', () => {
    navHr.style.borderColor = 'red'
  })
})

// 可选扩展:点击页面其他位置时分隔线恢复白色
document.addEventListener('click', (e) => {
  if(!e.target.closest('.nav-buttons')) {
    navHr.style.borderColor = 'white'
  }
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 00:54:00