第一个菜单项有一个下拉子菜单,应该显示在 li:hover 上。但是,由于某种原因,悬停在任何 li 之间的边距会导致子菜单显示,我不知道为什么。它以兼容模式在 Chrome 和 IE 中运行,但不适用于 IE8。
这是显示子菜单的 CSS 行:
.menu li:hover ul {
display: block;
position: absolute;
margin: 0;
padding: 0;
}
对我来说,这意味着每当您将鼠标悬停在一个 li 上时,都使用以下样式设置其任何子 ul 的样式。为什么这会在没有嵌套 ul 的 li 之间的边距上触发?
这是菜单的整个 CSS 以防万一:
.menu {
font-weight: normal;
font-size: 1.1em;
margin-top: 5px;
padding: 5px 0 0 0;
font-family: OswaldLight;
display: table;
margin: 0 auto;
}
.menu li {
list-style: none;
float: left;
margin-right: 10px;
}
.menu li a {
display: block;
text-decoration: none;
padding:5px;
color:@navbar-text;
background:@navbar;
text-decoration:none;
}
.menu li ul {
display: none;
background-color: @navbar;
}
.menu li ul li {
margin: 0;
}
.menu li a:hover {
color: @navbar-text-highlight;
background-color: @navbar-highlight;
}
.menu li:hover ul {
display: block;
position: absolute;
margin: 0;
padding: 0;
}
.menu li:hover li {
float: none;
}
.menu li:hover li a {
background-color: @navbar;
color: @navbar-text;
}
.menu li li a:hover {
color: @navbar-text-highlight;
background-color: @navbar-highlight;
}