仅限Css,如何在活动元素之前和之后选择所有同级选择器?

时间:2013-04-19 15:54:37

标签: css css-selectors pseudo-class

我一直无法找到答案,所以这里有:

我在页面上有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的解决方案?

感谢。

1 个答案:

答案 0 :(得分:1)

:hover

JS Fiddle demo

它的工作原理是根据共享父级: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,但我不确定您想要实现的目标。不过,这是一个概念验证。