Przeczytałem wiele artykułów o wydajności CSS, takich jak;Dlaczego selektory takie jak [title = "home"] są wolniejsze niż używanie klasy?
otrzymuję dlaczego selektorów takie jak ten są złe
#social a {
}
W przeglądarce zostanie odczytany pierwszy, a następnie zmuszony do przechodzić przez wszystkie <a> znaczniki na stronie.
Ale dlaczego to selektor takich jak w [title = "home"] wolniej niż przy użyciu klasę?
Zakładam, że przeglądarka tworzy jakiś indeks, aby móc określić, które elementy mają określoną klasę (poprawna?).
Ale czy przeglądarki nie powinny również indeksować, które elementy mają określony atrybut? (taki jak title)?
Moje pytanie to; dlaczego CSS/element wygląda znacznie wolniej, gdy używa się selektorów, takich jak a [title = "home"] w porównaniu do korzystania z klasy ? Co lub jak działa przeglądarka, aby wynik był o wiele wolniejszy?
"Ale czy przeglądarki nie powinny również indeksować, które elementy mają określony atrybut?" - czy myślisz, że to ma sens? Klasa mówi coś w stylu "Hej, jestem tego typu, każdy może coś ze mną zrobić!" podczas gdy atrybut zastępczy mówi "Yo, przeglądarki, renderuj mnie w ten sposób, a potem zapomnij o mnie".A ponieważ indeksowanie zajmuje trochę czasu, myślę, że przeglądarki decydują się na indeksowanie tylko pierwszego rodzaju atrybutów. – contradictioned
FYI, termin "uniwersalny selektor" odnosi się konkretnie do selektora '*'. 'a [title =" home "]' nie jest uniwersalnym selektorem; '[title =" home "]' bez 'a', z drugiej strony, można powiedzieć, że używa * niejawnego * uniwersalnego selektora, ponieważ jest to równoważne' * [title = "home"] '. – BoltClock
Ponadto "Ponieważ przeglądarka przeczyta pierwszą, a następnie jest zmuszona do przechodzenia przez wszystkie znaczniki na stronie." Nie jest to zachowanie głównych przeglądarek; zobacz http://stackoverflow.com/questions/5797014/why-do-browsers-match-css-selectors-from-right-to-left – BoltClock