如何在文本后面显示img:hover?

时间:2018-03-10 12:30:58

标签: html css hover z-index

我有一个带有内部链接的文本的div。在那个文本div之后,我有一个带有img的div。现在,我希望当我:悬停链接时,img会在文本后面生成。当img div在文本div容器中时,它可以工作,但随后它会生成文本。

HTML

<body>

<div id="text">
text with a <a id="link">hover me link</a>
</div>

<div id="pic">
<img src="pic.jpg"/>
</div>

</body>

CSS

<style type="text/css">
#text {
    position: absolute;
    z-index:2;
    }

#pic {
    display:none;
    position:fixed;
    top:10px;
    left:20px;
    z-index:1;
}

#link:hover ~ #pic {
    display:block;
}
</style>

2 个答案:

答案 0 :(得分:2)

您可以尝试这样的事情:

&#13;
&#13;
#link:before {
  content:url(https://lorempixel.com/400/200/);
  position:fixed;
  z-index:-1;
  top:0;
  left:0;
  display:none;
}
#link:hover::before {
  display:block;
}
&#13;
<div id="text">
    text with a <a id="link">hover me link</a>
  </div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

最好的解决方案是使用Temani Afif提出的背景属性。 Hoverwer,如果你想使用<img/>标签,使用z-index: -1会有一个棘手的方法。

#pic {
  position: absolute;
  top: 0;
  left: 0;
  display: none;
  background: red;
  height: 100px;
  width: 100px;
  z-index: -1;
}

#text, #link {
  position: relative;
}

#link:hover + #pic {
  display: block;
}
<div id="text">
    text with a <a id="link">hover me link</a>
    <img id="pic" src="https://lorempixel.com/400/200"/>
</div>

由于#pic位于#text内,并且由于您无法在css中选择上一个元素,因此您必须使用z-index: -1来保留您的图片。