Css IE8 li:悬停,悬停在li项目之间的边距上触发?

Css IE8 li:悬停,悬停在li项目之间的边距上触发?,css,internet-explorer-8,hover,Css,Internet Explorer 8,Hover,第一个菜单项有一个下拉子菜单,应该显示在li:hover上。然而,由于某种原因,在任何一个li之间的空白处悬停会导致子菜单显示,我不知道为什么。它可以在Chrome和IE的兼容模式下工作,但不能在IE8上工作 下面是显示子菜单的CSS行: .menu li:hover ul { display: block; position: absolute; margin: 0; padding: 0; } 对我来说,这意味着,无论何时你在安里徘徊,都要用下面的

第一个菜单项有一个下拉子菜单,应该显示在li:hover上。然而,由于某种原因,在任何一个li之间的空白处悬停会导致子菜单显示,我不知道为什么。它可以在Chrome和IE的兼容模式下工作,但不能在IE8上工作

下面是显示子菜单的CSS行:

.menu li:hover ul {
    display: block;
    position: absolute;
    margin: 0;
    padding: 0; 
    }
对我来说,这意味着,无论何时你在安里徘徊,都要用下面的风格来设计它的任何一个孩子。为什么这会在没有嵌套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; 
}

这可能与ul的子菜单的宽度有关,我将进一步研究它,但很可能是IE中的宽度问题


更新:看来你已经解决了这个问题,因为有人想知道,问题是.menu类中的“display:table”。.menu类被分配给父UL,IE8不知道如何处理它。我删除了这一行,在父对象周围添加了一个父对象,并改为使用“display:table”,这似乎解决了问题。我使用“display:table”的原因是为了清除浮点数,但允许我使用“margin:0 auto”轻松将包含的浮点数居中,这似乎是我找到的最好的解决方案,可以使一个容器的浮子居中。

我试着从你的
  • 中去掉边距,用锚点右侧的填充物替换,并触发锚点上的悬停。我会尝试的。我更愿意避免它,因为我不希望父菜单项是链接,只是嵌套项,但如果这是唯一的解决方案,那么我将不得不解决。不要认为它必须是链接如果我将下拉悬停更改为仅在:悬停时触发,但是,如果下拉父菜单项没有锚,下拉菜单将如何显示?有没有可能在一个不是链接的标记中包含一些文本?当使用锚上的边距而不是li时,它实际上表现得更好,事实上,我可以在不创建链接的情况下做一些事情,但是li a:hover ul{}不针对嵌套的ul,因为它不包含在锚中。。。嗯。