[英]Limit CSS selector scope
這有點奇怪,也許是錯誤的,但這就是我想要做的...
我的HTML看起來像這樣:
<div class="item is-active">
<div class="item-part"></div>
<div class="item small">
<div class="item-part">
</div>
</div>
</div>
並使用CSS,我想這樣做:
.item.is-active .item-part {
outline:1px solid red;
}
問題在於內部的.item-part
也將被概述,這是不希望的。 我希望僅當最接近的.item
是.item
.is-active
時才概述.item-part
。
我寧願不使用JS也不使用direct-sibling
選擇器,因為html可能有所不同。 我也不想覆蓋這樣的規則:
.item:not(.is-active) .item-part {
outline:none;
}
這是一個生動的例子
謝謝。
怎么樣(假設只有一個元素具有is-active
類):
.item.is-active .item-part {
outline:1px solid red; /* active item part style */
}
.item.is-active .item .item-part {/* e.g. child of iten that is not active*/
outline: none; /* disable active item part style */
}
如果您不能修改類名,請不要使用javascript,並且直接后代解決方案將不起作用(例如,由於有時可能有wrapper-div的原因); 這是我能想到的唯一解決方案...
當您的元素沒有is-active
類時,只需重寫樣式即可:
.item.is-active .item-part {
outline:1px solid red;
}
.item.is-active .item .item-part,
.item .item-part {
outline:none;
}
.item.is-active .item-part
具有比.item .item-part
選擇器更高的特異性,因此它將始終應用於.item-part
后代。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.