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

CSS:active无法触发菜单展开,JS切换类方案失效问题求助

滑动菜单切换失效问题排查与解决

出于兴趣制作网站滑动菜单,先是尝试用CSS的:active实现菜单展开但失败,之后改用JS切换类名的方案仍然无效。已检查代码、文件及图片路径,使用Firefox浏览器,后续计划将菜单与PHP代码结合。

相关代码

HTML代码

<div class="top">
    <div class="solmenuac" onclick="toggleMenu()">
        <img src="images/menu.png" class="menuxx" >
        <img src="images/menuhover.png" class="menuyy">
    </div>
</div>

<div class="solmenu"></div>


<script>
function toggleMenu() {
  var menu = document.querySelector('.solmenu');
  menu.classList.toggle('solmenu-active');
}
</script>

</body>
</html>

CSS代码

}
:root{
    --d1: #000000;
    --d2: #111111;
    --d3: #232323;
    --d4: #343434;
    --d5: #464646;
    --d6: #575757;
    --d7: #696969;
    --d8: #7A7A7A;

    --dblue: #22223B;
    --lblue: #4A4E69;
    --lila: #9A8C98;
    --greyf: #C9ADA7;
    --icec: #F2E9E4;
}
body{
    background-color: var(--d3);
}
.top{
    position: fixed;
    width: 100%;
    height: 7vh;
    top: 0;
    left: 0;
    z-index: 10;
    background-color: var(--d2);
}
.solmenuac{
    display: flex;
    position: absolute;
    width: 5vh;
    height: 5vh;
    margin: 1vh 0 0 1vh;
    cursor: pointer;
}
.menuyy{
    display: none;
}
.solmenuac:hover .menuxx{
    display: none;
}
.solmenuac:hover .menuyy{
    display: block;
}
.solmenu{
    position: fixed;
    width: 15vh;
    height: 100%;
    left: 0;
    top: 0;
    z-index: 10;
    display: none;
}
.solmenu-active {
    display: grid;
    z-index: 10;
}
</style>

问题原因及修复方案

1. CSS语法错误(核心问题)

CSS代码最开头的多余}会导致浏览器解析CSS时触发语法错误,后续样式大概率无法正常生效。直接删除这个多余的}即可。

2. 选择器权重不足

单独的.solmenu-active类选择器权重和.solmenu相同,可能无法有效覆盖原有的display: none样式。修改选择器为.solmenu.solmenu-active,提高权重确保样式生效:

.solmenu.solmenu-active {
    display: grid;
    z-index: 10;
}

3. 补充:CSS :active方案失效的本质原因

:active伪类仅在元素被点击按住时生效,松开鼠标后就会恢复原样,无法实现菜单持久展开的效果,因此这种方案本身就不适合用于需要保持展开状态的菜单,JS切换类名的方案是正确的选择。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 08:47:39