li タグ内にリンクを含むネストされたリストがあります。ネスト レベル x では、リンクの外観を変更したいと考えています。サンプルコード:
CSS:
.blue a { color: blue; }
.red a { color: red; }
HTML:
<ul>
<li class="blue"><a href="#">blue-1</a></li>
<li class="red"><a href="#">red-1</a></li>
<li class="blue"><a href="#">blue-2</a>
<ul>
<li>
<a href="#">blue-3</a>
<ul>
<li class="red">
<a href="#">red-2</a>
<ul>
<li><a href="#">red-3</a></li>
<li><a href="#">red-4</a></li>
</ul>
</li>
<li><a href="#">blue-4</a></li>
</ul>
</li>
<li class=""><a href="#">blue-5</a></li>
</ul>
</li>
<li class="red"><a href="#">red-5</a>
<ul>
<li><a href="#">red-6</a></li>
<li><a href="#">red-7</a></li>
</ul>
</li>
</ul>
このように、期待どおりに動作しています。テキストが red-* のリンクは赤で表示されます。しかし、CSS クラスの順序を変更すると、機能しなくなります。
.red a { color: red; }
.blue a { color: blue; }
なぜこの動作ですか?それは同じであるべきではありませんか?赤と青よりも多くの色を使用する必要があるため、CSS で正しい順序を指定することは不可能です。