因此可以使这项工作
#element img:hover #otherelement {...}
像
#element:hover #otherelement {...}
img保持指定非常重要,因为图像在我正在制作的内容中是自动的。
答案 0 :(得分:4)
由于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 >
答案 1 :(得分:2)
您可以做的是通过以下方式选择下一个元素:
element1 + element2
选择紧跟element2
个元素之后放置的每个element1
元素。他们是兄弟姐妹。
#element img:hover + #otherelement
如果#otherelement
位于img
之后,img
会在element2
悬停时被选中。
另一种选择是:
element1 ~ element2
匹配element1
在element2
之前具有相同父级的出现次数。他们也是兄弟姐妹,但element1
不一定要紧接#element img:hover ~ #otherelement
。
#otherelement
如果img
和#otherelement
是兄弟姐妹,并且img
位于img
之后的某处,则会在<div id="parent">
<img src="http://lorempixel.com/200/200/" alt="Sport">
<div class="text">This is a text.</div>
</div>
悬停时选择。{ / p>
<强> Here is an example 强>
<强> HTML 强>
#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;
}
<强> CSS:强>
{{1}}
答案 2 :(得分:1)
您的第一个选择器正在寻找的内容是<{1}} 内部图像。图像不能包含子元素。
如果元素是图片的 sibling ,您可能需要尝试#otherelement
或img:hover~#otherelement
。
答案 3 :(得分:0)
是的,试试:
#element:hover + #otherelement {...}
或
#element:hover ~ #otherelement {...}
答案 4 :(得分:0)
您可以在任何元素上使用:hover伪类。关于跨浏览器需要考虑。不过,你可以使用像Selectivizr这样的polyfill。
至于您的问题,您可能需要考虑针对您尝试使用悬停定位的两个元素的共享祖先,并以这种方式应用您的样式。