在下面的代碼中,我將如何使用CSS定位第二個div.b
?我將如何使用CSS來定位這個div?
<div>
<div class="a"></div>
<div class="a"></div>
<div class="a"></div>
<div class="b"></div>
<div class="b"></div>
<div class="a"></div>
</div>
在下面的代碼中,我將如何使用CSS定位第二個div.b
?我將如何使用CSS來定位這個div?
<div>
<div class="a"></div>
<div class="a"></div>
<div class="a"></div>
<div class="b"></div>
<div class="b"></div>
<div class="a"></div>
</div>
在這個特定的情況下,您可以使用。
.b + .b {
color:red;
}
上面假定有不超過兩個,相鄰.b
元件。如果情況並非如此,假設仍然只有兩個元素general sibling combinator, ~
,會更有用。
作爲替代方案,你也可以使用以下,將與多個.b
元素的工作,不管位置。最初,使用.b ~ .b
來設置第二個目標元素的樣式。然後,您需要使用.b ~ .b ~ .b
來重置.b
元素後面的.b
元素的樣式。
.b ~ .b {
color:red;
}
.b ~ .b ~ .b {
color:initial;
}
這應該在所有情況下理論上的工作,例如:
<div class="a">1a</div>
<div class="a">2a</div>
<div class="a">3a</div>
<div class="b">1b</div>
<div class="a">4a</div>
<div class="b">2b</div> <!-- This would be styled red.. -->
<div class="b">3b</div>
這也是值得注意的是,價值initial
在IE不支持。因此,您可以使用color:#000
至reset the color back to the defaults。或者,inherit
would work too。
作爲一個更實際的例子,你可以使用這樣的事情:
.b ~ .b {
width:200px;
background:blue;
color:#fff;
}
.b ~ .b ~ .b {
width:auto;
background:transparent;
color:#000;
}
這工作只要HTML不包含類'B'任何其他元素:http://jsfiddle.net/WvL88/1/ –
使用的'+'也假定連續不超過2個'.b'元素。 – BoltClock
@KevinBowersox查看我的更新。 http://jsfiddle.net/g2YLn/ –