考慮這個HTML:選擇孩子的div,但沒有嵌套
<div class="row compress">
<div class="col"></div>
<div class="col">
<div class="row">
<div class="col"></div>
</div>
</div>
</div>
現在我想的目標.col
的div是的.compress
第一級子:
.compress > .col {
padding: 0;
}
這個CSS不會影響嵌套.row
按計劃.col
。 但是,如果我稍微改變HTML包括.compress
之間的元素和其子.col
像這樣:
<div class="row compress">
<div>
<div class="col"></div>
<div class="col">
<div class="row">
<div class="col"></div>
</div>
</div>
</div>
</div>
現在我的CSS不工作,因爲.col
不是直接孩子。
有沒有辦法像我的第一個例子那樣選擇.col
,但是使用第二個例子的HTML和.compress
和.col
之間的任意數量的元素?
作爲最後一招,我可以爲所有兒童設置樣式,然後覆蓋它們嵌套的元素,但這並不理想:
.compress .col {
padding: 0;
}
.compress .col .col {
padding: 1em;
}
我覺得你寫的最後已經是正確的答案 - 我沒有看到任何其他的方式來做到這一點。 – Johannes
@Johannes的問題是,如果我將'compress'類添加到嵌套的'.row'中,由於更具體的選擇器'.compress .col .col'存在,樣式將被覆蓋。 – Coop