通常,我对CSS很好,但我似乎无法想象出这一点。如果我有一个结构
<div> <h2 class="open">1</h2> <h2>2</h2> <h2>3</h2> <h2>4</h2> <h2>5</h2> </div>
如何使用.open类与CSS对齐所有兄弟h2s?我的主要问题是兄弟选择器(.open h2)只会在.open之后立即针对h2。
解决方法
您可以使用CSS3的〜而不是(在CSS2中)选择所有以下兄弟姐妹:
.open ~ h2
如果您需要选择不是.open的所有h2元素,无论它们在.open之前还是之后,都没有同级组合器。您需要使用:not():
h2:not(.open)
如果需要将选择限制为div容器,可以选择使用子组合器:
div > h2:not(.open)