Antwort an „Rolf B“ verfassen

Hallo Gunnar Bittersmann,

:is() hat die Spezifität des höchsten darin aufgelisteten Selektors.

Man kann es wohl nicht genug wiederholen: Bei dieser Spezifität kommt es nicht darauf an, welcher der Selektoren im :is() verwendet wird. Die :is()-Spezifität ist statisch.

Gegeben sei dieses HTML

<style>
p.xx { color: green; }
</style>

...

<p class="xx" id="foo">FOO</p>
<p class="xx">FOO</p>

Mit #foo, p { color: red; } im Stylesheet wird nur das erste p Element rot.

Mit :is(#bar, p) { color: red; } werden beide p Elemente rot, obwohl weit und breit kein Element mit id="bar" zu sehen ist und p.xx eine höhere Spezifität (0-1-1) hat als p (0-0-1). Wegen #bar hat :is() die Spezifität 1-0-0 und gewinnt.

Der Vollständigkeit halber: mit :where(#bar, p) { color: red; } bleibt alles grün.

Rolf

--
sumpsi - posui - obstruxi
freiwillig, öffentlich sichtbar
freiwillig, öffentlich sichtbar
freiwillig, öffentlich sichtbar

Ihre Identität in einem Cookie zu speichern erlaubt es Ihnen, Ihre Beiträge zu editieren. Außerdem müssen Sie dann bei neuen Beiträgen nicht mehr die Felder Name, E-Mail und Homepage ausfüllen.

abbrechen