我有一个看起来像这样的 HTML 定义的一部分。
<div id="photoindex" class="content">
<div class="photocategory">
<a href="/photo/clouds"><img src="img.jpg"></a>
<h1><a href="/photo/clouds">Clouds</a></h1>
</div>
</div>
应该是不可见的h1
,直到图像悬停在上面,此时h1
变得可见,并且img
不透明度降低。我目前的尝试有一个不容忽视的小缺陷。
div#photoindex h1 {
visibility: hidden;
}
div#photoindex h1:hover {
visibility: visible;
}
div#photoindex img:hover {
opacity: 0.7;
}
div#photoindex a:hover + h1 {
visibility: visible;
}
div#photoindex h1:hover + a {
opacity: 0.7;
}
有了这个,我可以将鼠标悬停在图像上并h1
显示出来,并且图像不透明度会下降。但是,如果我将鼠标移到 上h1
,图像不透明度会恢复正常。我试过使用:first-child
and:last-child
选择器,但这似乎不起作用。我没有运气尝试将东西应用于.photocategory
任何一个。
div.photocategory:hover a {
opacity: 0.7;
}
div.photocategory:hover h1 {
visibility: visible;
}
这会改变不透明度,但对h1
. 我可以在没有 Javascript 的情况下做我想做的事吗?也许不同的 HTML 结构会更好?