ich viele CSS Performance Artikel, wie zum Beispiel gelesen haben;Warum sind Selektoren wie ein [title = „home“] langsamer als Klasse verwenden?
ich warum Selektoren wie diese sind schlecht
#social a {
}
Als Browser ein zuerst liest, dann gezwungen ist, Schleife durch alle <ein>-Tags in der Seite.
Aber warum ist ein Selektor wie a [title = "home"] langsamer als eine Klasse verwenden?
Ich gehe davon aus, dass der Browser eine Art Index erstellt, um herauszufinden, welche Elemente eine bestimmte Klasse haben (Richtig?).
Aber sollten Browser nicht auch indiziert haben, welche Elemente ein bestimmtes Attribut haben? (Wie Titel)?
Meine Frage ist; Warum ist das CSS/Element bei Verwendung von Selektoren wie a [title = "home"] im Vergleich zur Verwendung einer Klasse viel langsamer? Was oder wie geht der Browser vor, damit das Ergebnis so viel langsamer ist?
"Aber sollten Browser nicht auch indiziert haben, welche Elemente ein bestimmtes Attribut haben?" - Denkst du, das macht Sinn? Eine Klasse sagt etwas wie "Hey, ich bin von diesem Typ, jeder kann etwas mit mir machen!" während ein Platzhalterattribut nur sagt "Yo, browser, render mir diesen Weg und dann vergiss mich".Und da die Indexierung einige Zeit in Anspruch nimmt, sollten Browser nur die erste Art von Attributen indexieren. – contradictioned
FYI, bezieht sich der Ausdruck "Universalselektor" speziell auf den '*' Selektor. 'a [title =" home "]' ist kein universeller Selektor; '[title =" home "]' ohne das 'a' andererseits könnte man sagen, dass man einen * impliziten * universellen Selektor benutzt, weil es äquivalent zu' * [title = "home"] 'ist. – BoltClock
Auch, "wie der Browser eine erste liest, dann ist gezwungen, durch alle Tags auf der Seite zu durchlaufen." So verhalten sich Mainstream-Browser nicht. siehe http://stackoverflow.com/questions/5797014/why-do-browsers-match-css-selectors-from-right-to-left – BoltClock