是否可以使用纯粹的css(而不是javascript):
<ul>
<li>a</li>
<li>b</li>
</ul>
<div id="x" style="display:none;">c</div>
当我将鼠标悬停在<div>
时显示<li>
答案 0 :(得分:6)
li
元素位于ul
中,因此无法再从#x
访问li:hover
。因此,如果您必须仅对li
元素具有悬停效果,则需要使用JavaScript。
如果没有,你可以这样做:
/* Or ul:hover ~ #x if there are any other elements between them */
ul:hover + #x {
display: block;
}
但是光标可以在ul
本身的任何位置显示#x
,而不是直接显示在任何li
上,这不是你想要的,除非你{ {1}}占据整个li
区域。
答案 1 :(得分:1)
几乎所有的li都不是div {x的Adjacent sibling。如果你把div放在ul元素中,那就好了。
<style>
ul:hover + #x {
display:none;
}
</style>
<ul>
<li>a</li>
<li>b</li>
</ul>
<div id="x">c</div>
答案 2 :(得分:0)
我认为你需要使用JavaScript作为&#34; div&#34;在列表之外。
答案 3 :(得分:0)
我认为你的意思是......
<style>
li:hover div#x{
display:block;
}
</style>
如果您悬停其中一个<div>
代码,则会将display:block;
元素设置为<li>