Html 奇怪的悬停行为
我有一个像这样的htmlHtml 奇怪的悬停行为,html,css,hover,Html,Css,Hover,我有一个像这样的html <div id = "header"> <a href ="#">Panel</a> <ul class="headermenu"> <li><a href="">asdas</a></li> <li><a href="">asdasd</a></li&g
<div id = "header">
<a href ="#">Panel</a>
<ul class="headermenu">
<li><a href="">asdas</a></li>
<li><a href="">asdasd</a></li>
</ul>
</div>
*{
padding:0px;
margin:0px;
font-family: "Open Sans",Arial, Verdana;
font-weight:100;
}
ul{
list-style-type:none;
padding:0px;
margin:0px;
}
div#header{
margin:40px;
}
div#header a{
color:#B2B4B8;
line-height:40px;
display:block;
float:left;
}
.headermenu li{
float:left;
}
.headermenu li a{
display:block;
margin-left:20px;
font-size:12px;
}
.headermenu li a:hover{
color:#000;
}
.headermenu{
float:right;
margin-right:20px;
}
我无法使用.headermenu li a:hover将白色应用于ul的a的悬停,它有一个名为headermenu的类
但是我可以使用divheader应用这个悬停
为什么??所有其他的SYLE都应用在.headermenu选择器下,但hover无法解释为什么
divheader a{正在设置颜色,ID元素始终优先于任何基于类的元素
因此,基于类的悬停线将被忽略。这是由于选择器的特殊性。ID元素的特殊性高于class元素,因为它们都决定元素的颜色,ID优先 更多详情: 在学习css规则时,我发现这非常有用:
只需添加!在悬停css中很重要 校长李娜:悬停{color:000!重要;} 或者试试这个:
divheader.headermenu-li a:hover{color:000;}如果您无法提供更具体的选择器,请使用!important:.headermenu-li a:hover{color:000!important;}它可以工作。但我为什么需要它呢?正如@Lee所提到的,ID选择器比类选择器更有效。您也可以使用header-ul-li a{color:000;}最后,您可能应该为headermenu使用ID。我想您不会有多个标题菜单?不应该diva标题菜单吗{设置标签的颜色?它不应该设置aIt的悬停颜色。如果不设置悬停颜色,则会忽略您尝试使用悬停颜色的操作,因为整个标签的ID具有优先权。您应该删除基于ID的规则,而改为使用基于类的规则。但为什么会忽略它?其他属性我在.headermenu下使用的不会被忽略,因为您没有在ID类中使用它们。您的ID中有颜色:B2B4B8;行高:40px;显示:块;浮动:左;在您的类样式中有显示:块;左边距:20px;字体大小:12px;这些没有被复制,因此被设置。对不起,我可能没有以最好的方式解释这一点。我没有我不太明白,但我想你的答案是对的