Selektor CSS, który nie jest elementem podrzędnym typu elementu?

81

Chcę stylizować codeelementy, które nie są wewnątrz atagów.

Jakie jest najlepsze podejście, aby to osiągnąć?

code:not(a code)w ogóle nie działa, przynajmniej w Chrome, mimo że wydaje się, że powinno

Nie mogę go też uruchomić z konsoli.

Czy są jakieś inne podejścia tylko do CSS, których mógłbym użyć w tym celu?

bevacqua
źródło

Odpowiedzi:

121

:not nie obsługuje selektorów typu kombinator.

Jeśli mówimy o jego bezpośrednim rodzicu:

:not(a) > code

W przeciwnym razie nie da się tego zrobić w CSS. Będziesz musiał to zmienić:

code {
    /* some styles */
}

a code {
    /* override previous styles */
}
Joseph Silber
źródło
problem polega na tym, że nie chciałem używać selektora gwiazd
bevacqua
9
Z ciekawości: nie mam pojęcia dlaczego, ale :not(a) > codedziałałem, a :not(a) codenie miałem pojęcia, dlaczego? (nadal chrome)
bevacqua
36
@Nico - Ponieważ :not(a) codeszuka przodka, który nie jest a, co zawsze jest prawdą. :not(a) > codepatrzy tylko na bezpośredniego rodzica.
Joseph Silber
Jackpot, powinienem był o tym pomyśleć.
bevacqua