对我一直在想的事情找不到答案。
.class2 a:hover {}和.class2:hover a {}之间有什么区别吗?还是偏爱一个而不是另一个?
我一直在使用.class2 a:hover {}来改变锚悬停上的锚(即锚文本颜色),但是当我也想改变保持锚的div (即锚颜色和div背景颜色都会在悬停上改变)时,我必须使用.class2:hover a {}才能工作。在这样做的过程中,我对两者之间的区别感到困惑,因为两者的书写方式非常相似。
谢谢!
编辑
把问题编辑得更清楚了。谢谢你解开我的大脑:)
发布于 2015-07-14 03:04:09
我的理解是:
当.class2 a:hover标记悬停时,a将针对.class2元素中的任何超链接标记。
当.class2:hover a被悬停时,a将针对.class2元素中的任何超链接a标记。
区别在于您在哪些元素上悬停以更改样式规则。
示例:
.box{
background: red;
width: 50px;
height: 50px;
margin-bottom: 10px;
}
.case1 a:hover {
background: blue;
}
.case2:hover a {
background: green;
}<html>
<body>
<div class="box case1"><a href="#">case 1</a></div>
<div class="box case2"><a href="#">case 2</a></div>
</body>
</html>
在这种情况下,您想要悬停.class2元素还是a?
发布于 2015-07-14 03:13:15
.class2 a:hover {}有了以上所述,只有当特定地悬停a元素时,样式才会应用于a,如果.class元素有填充或其他内容,则悬停在.class元素的其他部分上将而不是触发a的悬停样式。
.class2:hover a {}如果a元素的任何部分悬停(填充、内容等),则上述内容将触发.class2的悬停样式。
工作小提琴这里。
发布于 2015-07-14 03:07:33
是。是有区别的。
从行为上看,这似乎没有什么区别,但如果在<a>标记周围添加一个空白,您可能会发现第一个选择器(.class2 a:hover {})将停止缩进工作。
https://stackoverflow.com/questions/31396880
复制相似问题