Soweit ich weiß CSS-Selektoren werden von rechts nach links ausgewertet, so body div *
würde jedes Element auswählen, als schauen, die ein Elternteil vom Typ div und von denen, die ein Elternteil vom Typ Körper hat. Was ich unsicher bin, ist, wie dynamische Pseudoklassen in dieser Kette bewertet werden.Wird eine dynamische Pseudoklasse vor dem Rest des Selektors ausgewertet?
Wenn ich einen Selektor wie div *:hover
hätte, wie würde die Auswertung sein?
:hover
=>*
=>div
*
=>:hover
=>div
- Eine andere Lösung, die ich hätte nicht gedacht, über
Wahrscheinlich ist das implementierungsabhängig. – Oriol
Die Auswertung sieht für eine typische Implementierung eher wie '*: hover' => ancestor' div' aus. Es gibt keine Vorstellung von der Ordnung innerhalb eines einzelnen Verbindungsselektors, außer der Reihenfolge, in der einfache Selektoren am einfachsten zu finden wären, und dies wird durch 1) welche einfachen Selektoren verwendet werden und 2) die Implementierung entschieden. Siehe diese Antworten: [\ [1 \]] (http://stackoverflow.com/a/5813672) [\ [2 \]] (http://stackoverflow.com/a/10108700) Beachten Sie, dass es sich bei dieser Frage um eine Frage handelt dynamische Pseudo-Klassen, was es interessanter macht, auch wenn es letztlich immer noch um Details der Implementierung geht. – BoltClock