【发布时间】:2022-02-13 22:27:33
【问题描述】:
我正在制作一个纯 css 和 html 的网站,我想以某种方式只使用 css。
我有一个列表,每次,我将鼠标悬停在其中任何一个上,我希望其他人采用不同的颜色。 我写的,不一样!
当我将鼠标悬停在其中任何一个上时,只有它下面的项目会改变颜色:
<div class="sketch">
<div class="sketch-div">
<a href="#">Sketch</a>
</div>
<div class="hide">
<img width="50%" src="images/sketchcloud.jpg"
alt="Sketch Cloud">
</div>
</div>
<div class="WeTransfer">
<div class="WeTransfer-div">
<a href="#">WeTransfer</a>
</div>
<div class="hide">
<video width="50%" webkit-playsinline="webkit-playsinline">
<source src="images/wetransfer-preview.3b6e83b8.mp4" type="video/mp4">
</video>
</div>
</div>
<div class="Coffee">
<div>
<a href="#">Coffee by Benjamin</a>
</div>
<div class="hide">
<img width="50%" src="images/coffeebybenjamin.jpg"
alt="Coffee by Benjamin">
</div>
</div>
<div class="Beam">
<div>
<a href="#">Beam</a>
</div>
<div class="hide">
<video width="50%" webkit-playsinline="webkit-playsinline">
<source src="images/beam-preview.940b40c4.mp4" type="video/mp4">
</video>
</div>
</div>
<div class="More">
<div>
<a class="arrow" href="#">More</a>
</div>
<div class="hide">
</div>
</div>
上面是nav 元素内。
这是它的 css 代码:
.sketch:hover ~ .WeTransfer a{
color: #ccc;
}
.sketch:hover ~ .Coffee a{
color: #ccc;
}
.sketch:hover ~ .Beam a{
color: #ccc;
}
.sketch:hover ~ .More a{
color: #ccc;
}
/* Wetransfer */
.WeTransfer:hover ~ .sketch a{
color: #ccc ;
}
.WeTransfer:hover ~ .Coffee a{
color: #ccc;
}
.WeTransfer:hover ~ .Beam a{
color: #ccc;
}
.WeTransfer:hover ~ .More a{
color: #ccc;
}
/* Coffee */
.Coffee:hover ~ .WeTransfer a{
color: #ccc;
}
.Coffee:hover ~ .sketch a{
color: #ccc;
}
.Coffee:hover ~ .Beam a{
color: #ccc;
}
.Coffee:hover ~ .More a{
color: #ccc;
}
这里我悬停在 benjamin 的咖啡上,它下面的元素得到不同的颜色,但它上面的元素不会改变颜色。
我怎样才能只用 css 和 html 做到这一点?
【问题讨论】:
-
~仅选择所选同级之后的同级。您不能以这种方式选择以前的兄弟姐妹。见stackoverflow.com/questions/1817792/…