使用CSS导致在一个对象上悬停以影响另一个对象

时间:2016-07-20 17:18:28

标签: html css

使用纯CSS我希望将鼠标悬停在文本上时显示图像:

HTML

<h1 id="hover">Hover over me</h1>
<div id="squash">
  <img src="http://askflorine.com/wp-content/uploads/2013/10/temp_quash.jpg" width="100%">
</div>

CSS

#squash {
  display: none;
}

#hover:hover + #squash {
  display: block;
}

除非我在<h1><div>之间放置一些内容,否则此方法无效。我知道这是因为我使用的CSS选择器(+)。我怎么能在一个标签上使用一个事件来改变另一个标签上的CSS呢?

JSFiddle

3 个答案:

答案 0 :(得分:2)

您可以使用General Sibling Selector ~选择器代替Adjacent Sibling Selector +选择器,如下所示:

#hover:hover ~ #squash {
  display: block;
}

<强> JSFiddle

您可以阅读有关不同CSS同级选择器here的更多信息。

答案 1 :(得分:0)

请试试这个

<h1 id="hover">Hover over me</h1>
<img id="squash" src="http://askflorine.com/wp-content/uploads/2013/10/temp_quash.jpg" width="100%">

#squash {
  display: none;
}

#hover:hover ~ #squash {
  display: block;
}

答案 2 :(得分:0)

取决于在两个部分之间插入的内容。如果文字将南瓜包裹在

<p> text here
    <div id="squash"...>
    </div>
</p>

然后将CSS更改为

#hover:hover + p #squash {