那么是否有可能使这项工作
#element img:hover #otherelement {...}
喜欢
#element:hover #otherelement {...}
img 保持指定很重要,因为图像在我制作的内容中是自动的。
那么是否有可能使这项工作
#element img:hover #otherelement {...}
喜欢
#element:hover #otherelement {...}
img 保持指定很重要,因为图像在我制作的内容中是自动的。
由于img
不能容纳任何其他嵌套标签,我假设您的目标是相邻元素,您可以在此处使用相邻选择器+
#element img:hover + #otherelement {...}
img
当图像悬停时,上面的选择器将选择标签旁边的元素。
注意:上面的选择器只有在你有你的标记时才会起作用
<div id="element">
<img src="#" />
<div id="otherelement"></div >
</div >
但是如果你有这样的标记就会失败
<div id="element">
<img src="#" />
</div >
<div id="otherelement"></div >
您可以通过以下方式选择下一个元素:
element1 + element2
选择element2
紧跟在元素之后element1
的每个元素。他们是兄弟姐妹。
#element img:hover + #otherelement
如果#otherelement
放置在 之后,则在悬停img
时将被选中。img
另一种选择是:
element1 ~ element2
匹配element2
其前面的匹配项,element1
而它们具有相同的父项。他们也是兄弟姐妹,但element2
不必紧跟在element1
.
#element img:hover ~ #otherelement
如果#otherelement
和img
是兄弟姐妹,并且#otherelement
放置在 之后的某个位置,则在悬停img
时将被选中。img
HTML
<div id="parent">
<img src="http://lorempixel.com/200/200/" alt="Sport">
<div class="text">This is a text.</div>
</div>
CSS:
#parent {
overflow: hidden;
width: 200px;
height: 200px;
}
.text {
position: relative;
-webkit-transition: .3s all;
-moz-transition: .3s all;
transition: .3s all;
background-color: rgba(255,255,255,.5);
height: 40px;
line-height: 40px;
}
#parent img:hover + .text {
top: -40px;
}
您的第一个选择器正在寻找的是在图像#otherelement
内部调用的东西。图片不能有子元素。
如果元素是图像的同级元素,您可能需要尝试img:hover~#otherelement
或img:hover+#otherelement
。
是的,请尝试:
#element:hover + #otherelement {...}
或者
#element:hover ~ #otherelement {...}
您可以在任何元素上使用 :hover 伪类。在跨浏览器方面需要考虑。不过,您可以使用像 Selectivizr 这样的 polyfill。
至于您的问题,您可能需要考虑为您尝试使用悬停定位的两个元素定位一个共享祖先,并以这种方式应用您的样式。