(与CSS“and”和“or”不太相关,或者是否存在CSS父选择器?,因为我在这里试图实现不同的目标--或者和
两个选择器,或者创建一个不同的HTML
结构,可由CSS
使用来解决我的问题)
嗨,我想知道在CSS中是否有任何可行的方法来在选择器之间创建一个逻辑和
。 当我只引用一个DOM元素时,这似乎相当容易,但当我尝试引用许多DOM元素时,整个概念就变得困难得多。
我举个例子:
我有以下HTML结构,表示手风琴:
<div id="holder">
<div id="toggle">
<div id="content"></div>
</div>
<div id="data" class="show|hide">
</div>
</div>
(顺便说一句,我使用的是手风琴的自举逻辑,所以我希望在给定的结构中不要做太大的改变)
我想根据hide
还是show
是活动状态来设置#content::after
。
这可以转换为以下语句:
#hodler > #data.show && #holder > #toggle > #content::after
但是,这是一个无效的语法。 而且,CSS没有父选择器。 有什么解决办法吗?
谢啦!
只有CSS和当前的HTML,这是不可能的。
如果#toggle
和#data
元素的顺序颠倒,则可以使用相邻的同级组合符(+
):
<div id="holder">
<div id="data" class="show|hide"></div>
<div id="toggle">
<div id="content"></div>
</div>
</div>
#data.show + #toggle #content:after { /* show styles */ }
#data.hide + #toggle #content:after { /* hide styles */ }