我已经建立了一个有下拉菜单的网站。当调用下拉菜单时,网页的其余部分不会更改,因为我已经给出了页面position:relative;
。
下拉列表的页面高z-index
,因此始终可见。我遇到的唯一问题是,当有人将鼠标悬停在下拉菜单上时,我还想更改下拉菜单的background-color
。
但不幸的是,当我将鼠标悬停在下拉列表上时,浏览器认为我正在页面上空盘旋,并且出于某种原因并不知道我实际上是在实际上盘旋在下拉菜单上。任何人都可以帮助我。
#page {background-color;
height: 2500px;
width: 1600px;
margin: auto;
position: relative;
}
#dropdown {
margin: 0px;
}
.dropdownitem {
opacity: 0.7;
z-index: 1;
background-color: red;
}
.dropdownitem:hover {
background-color: aqua;
color: white
}
我想我已经明白了问题所在。问题是我有一个div
position:absolute
在该div中有许多列表项。因为我的父div具有绝对定位,所以该元素已从文档流中取出,当我将鼠标悬停在列表项上时,:hover伪类对这些嵌套列表项不起作用。所以现在我已经找到了原因,但只有解决方案才有解决方案,我还没有找到原因。
答案 0 :(得分:0)
这可能会有所帮助
ul,
li {
padding: 0;
margin: 0;
}
li {
list-style: none;
padding: 1em;
}
#page {
margin: auto;
position: relative;
}
.mainmenu,
.submenu {
border: thin solid darkgray;
text-align: center;
}
.submenu {
display: none;
}
.mainmenu:hover>.submenu {
position: absolute;
top: 50px;
left: 0;
display: inline-block;
}
.mainmenu,
.dropdownitem {
width: 4em;
}
.dropdownitem {
opacity: 0.7;
background-color: red;
}
.dropdownitem:hover {
background-color: aqua;
color: white
}
<div id="page">
<nav>
<ul id="dropdown">
<li class="mainmenu">Main
<ul class="submenu">
<li class="dropdownitem">One</li>
<li class="dropdownitem">Two</li>
</ul>
</li>
</ul>
</nav>
</div>