我一直无法找到答案,所以这里有:
我在页面上有4个div。当一个div为:active时,我希望所有其他div都采用不透明度:0;
有没有人想出一种方法来选择所有兄弟姐妹,而不仅仅是那些来自:active元素的兄弟姐妹?
<div class="circle c1"> </div>
<div class="circle c2"> </div>
<div class="circle c3"> </div>
<div class="circle c4"> </div>
<style type="text/css">
.c2:active ~.circle {
opacity: 0;
}
</style>
从这个例子中,.c1 div永远不会消失。什么是仅使用CSS的解决方案?
感谢。
答案 0 :(得分:1)
:hover
它的工作原理是根据共享父级:active
(示例代码中的.circle {
opacity: 1;
width: 48%;
margin: 0;
display: inline-block;
border: 1px solid #000;
height: 10em;
}
body:hover .circle {
opacity: 0.4; /* obviously adjust to 0, but used 0.4 for the demonstration */
}
body:hover .circle:hover {
opacity: 1;
}
)选择要设置为opacity: 0
的所有元素,然后选择当前悬停的{ {1}}覆盖该样式。
在演示中,我使用了:hover
,但如果您愿意,可以使用body
,但我不确定您想要实现的目标。不过,这是一个概念验证。