我正在测试JQuery
代码,以便将:hover
Css动态追加到<head>
。
我发现element :hover
和element:hover
(注意空间)的工作存在差异
也就是说,当我使用CSS
动态更改:hover
的{{1}}时:
JQuery
<小时/> FULL CODE
$(document).ready(function(){
$("head").append("<style type='text/css'>
.nav_menu li :hover{
background-color: red !important;
}
</style>"); // Code is formatted and trimmed for simplicity.
});
,那么它可以正常工作。
那就是如果初始CSS是:
element :hover
然后一切正常,输出就像:
你也可以看到它Here。
<小时/>
但如果最初的CSS就像.nav_menu li :hover{
background:#a55;
color:#fff;
}
那就是:
element:hover
然后在.nav_menu li:hover{
background:#a55;
color:#fff;
}
元素之后发生初始背景颜色的奇怪填充。
像:
正如您所看到的,hovering
的此版本无法按预期工作。 Fiddle
此处也未正确呈现初始样式。
因此很明显且element:hover
和element :hover
之间存在差异(注意空格(element:hover
))。还是我的浏览器故障?在
和chrome
上对其进行了测试;同样的问题。
请专家在这,请清楚这个给我?提前谢谢。
PS:
我不想使用firefox
实际上我在这里知道为什么会这样。
答案 0 :(得分:4)
是的,有区别:
element:hover
将规则应用于element
,当它位于&#34; hovered&#34;状态; element :hover
将规则应用于element
的{em>后代,当它们位于&#34; hovered&#34;状态。答案 1 :(得分:3)
有很大的不同。与element .div-class
和element.div-class
相同。第二个将选择.div-class
类element
,第一个将选择.div-class
的孩子element
答案 2 :(得分:3)
是!有区别。
element:hover
适用于element
本身处于悬停状态时。
左element :hover
适用于element
的子元素,当其中任何元素处于悬停状态时。