我有一个带有内部链接的文本的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>
答案 0 :(得分:2)
您可以尝试这样的事情:
#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;
答案 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
来保留您的图片。