html
<li class="nav-item sc-active position-relative">
<a class="nav-link waves-effect waves-dark px-lg-3" href="javascript:void(0)">关于我们</a>
<ul class="sc-children position-absolute list-unstyled">
<li class="sc-item">
<a class="sc-link p-3 waves-effect waves-light d-block">子菜单1</a>
</li>
<li class="sc-item">
<a class="sc-link p-3 waves-effect waves-light d-block">子菜单2</a>
</li>
<li class="sc-item">
<a class="sc-link p-3 waves-effect waves-light d-block">子菜单3</a>
</li>
<li class="sc-item">
<a class="sc-link p-3 waves-effect waves-light d-block">子菜单4</a>
</li>
<li class="sc-item">
<a class="sc-link p-3 waves-effect waves-light d-block">子菜单5</a>
</li>
</ul>
</li>
css
#header .sc-children {
left: .3rem;
top: 75.3px;
width: 200px;
background-color: rgba(var(--sc-dark-rgb), .5);
color: var(--sc-light);
}
#header .sc-link:hover {
background-color: rgba(var(--sc-primary-rgb), .6);
}
#header .sc-children {
display: none;
}
#header .nav-item:hover .sc-children {
display: block;
}
现在悬停在 '关于我们' 这里, 子菜单会弹出
但是有个问题, 如果鼠标往下移动, 子菜单就会消失
有什么办法能解决这个问题, 让鼠标能够停留在子菜单(注: 不能用js)
不能用 JS 这个要求既然有了,那么就应该要明白
:hover
的“作用域”有多大才行。对于:hover
,如果你要用这种方式来实现子菜单的弹出,最简单的道理就是,响应区域要够大。所以,最简单的解决方法就是,当你的鼠标经过某个菜单的时候,就把该菜单的盒模型大小改变,变得跟子菜单一样大就可以了。