私はそのようなコードを持っています:
HTML:
<ul class="list">
<li class="list-item"> item 1 </li>
<li class="list-item list-item_active"> Active item </li>
<li class="list-item"> item 3 </li>
<li class="list-item"> item 4 </li>
<li class="list-item"> item 5 </li>
</ul>
CSS:
.list-item:nth-child(even) {
background: #eee
}
.list-item_active {
background: none;
}
jsfiddle リンク - http://jsfiddle.net/Re3xV/2/
.list-item
スタイルを設定できる子要素がないと仮定しましょう。
問題 :.list-item_active
上書きする必要がある.list-item:nth-child(even)
次のソリューションのどれがセレクターのパフォーマンスに関して最速かを判断する必要があります。
- ul .list-item_active
- li.list-item_active
- .list .list-item_active
- .list-item.list-item_active
- .list-item_active:nth-child(n)
- .list-item:nth-child(偶数):not(.list-item_active)
- .list-item[data-state="active"] (data-state="active" を html に追加する必要があります)
おそらく私は使用します
.list-item_active {
background: none !important;
}
パフォーマンスにはまったく影響しないようです (そして、使用すること!important
はしばしば悪い考えであることを知っています) が、どのセレクターがより高速であるかを知りたいです。そのような比較を行う自動化された方法はありますか?