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

CSS hover触发box元素显示隐藏.info-sec div失效问题求助

问题根因

你使用的CSS相邻兄弟选择器+仅能匹配同一父元素下、紧跟在第一个元素后的相邻同级元素。你的代码中.box属于.info-container内部的嵌套子元素,而.info-sec是.info-container的同级相邻元素,二者层级不匹配,所以.box:hover + .info-sec这个选择器无法命中任何元素,自然不会生效。
而你修改为.info-container:hover + .info-sec可以正常生效,正是因为.info-container和.info-sec符合同级相邻的匹配规则。

解决方法

方案1:现代浏览器纯CSS实现

如果不需要兼容过旧的浏览器,可以使用CSS:has()选择器实现hover任意box触发显示:

.info-sec{
  visibility:hidden;
}
/* 匹配内部存在box被hover的.info-container,再选中其后相邻的.info-sec */
.info-container:has(.box1:hover) + .info-sec,
.info-container:has(.box2:hover) + .info-sec,
.info-container:has(.box:hover) + .info-sec {
  visibility:visible;
}

方案2:全兼容JS实现

如果需要兼容不支持:has()的低版本浏览器,可以用JavaScript监听hover事件控制显示状态:

const boxes = document.querySelectorAll('.box1, .box2, .box')
const infoSec = document.querySelector('.info-sec')

boxes.forEach(box => {
  box.addEventListener('mouseenter', () => infoSec.style.visibility = 'visible')
  box.addEventListener('mouseleave', () => infoSec.style.visibility = 'hidden')
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 00:15:04