Ho letto un sacco di articoli sulle prestazioni CSS, come;Perché i selettori come [title = "home"] sono più lenti rispetto all'utilizzo della classe?
ricevo perché selettori come questo sono cattivi
#social a {
}
Come il browser leggerà un prima, poi è costretto a loop attraverso tutti gli <a> tag nella pagina.
Ma perché è un selettore come ad esempio un [title = "casa"] più lento rispetto all'utilizzo di un classe?
Suppongo che il browser crei una sorta di indice per essere in grado di capire quali elementi hanno una determinata classe (corretto?).
Ma i browser non dovrebbero aver indicizzato quali elementi hanno un determinato attributo? (come title)?
La mia domanda è; perché l'elemento CSS/cerca più lentamente quando si utilizzano selettori come a [title = "home"] rispetto all'utilizzo di una classe ? Cosa o come fa il browser per fare in modo che il risultato sia molto più lento?
"Ma i browser non dovrebbero aver indicizzato quali elementi hanno un determinato attributo?" - Pensi, questo ha un senso? Una classe dice qualcosa come "Ehi, io sono di questo tipo, chiunque può fare qualcosa con me!" mentre un attributo segnaposto dice semplicemente "Yo, browser, rendimi in questo modo e poi dimentica di me".E poiché l'indicizzazione richiede un po 'di tempo, penso che i browser decidano di indicizzare solo il primo tipo di attributi. – contradictioned
FYI, il termine "selettore universale" si riferisce specificamente al selettore '*'. 'a [title =" home "]' non è un selettore universale; '[title =" home "]' senza 'a', d'altra parte, si potrebbe dire che usa un selettore universale * implicito * perché è equivalente a' * [title = "home"] '. – BoltClock
Inoltre, "Mentre il browser leggerà un primo, quindi è costretto a scorrere tutti i tag nella pagina." Questo non è il modo in cui i browser mainstream si comportano; vedi http://stackoverflow.com/questions/5797014/why-do-browsers-match-css-selectors-from-right-to-left – BoltClock