CSS Performance zwischen Klasse und Attribut-Selektoren
Frage ich mich, ob es gibt ein performance-Problem mit Attribut-Selektoren anstelle der class-Selektoren.
div.test {}
div[test] {}
P. S. : ich bin nur daran interessiert, die CSS-performance, nicht JS.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es kein performance-Problem. Beide handeln gleich. Aber es ist ein Unterschied in der Spezifität der css-Klasse gegenüber Elementen.
Spezifität - Spezifität bestimmt, welche CSS-Regel angewendet wird von den Browsern.
Wenn zwei Selektoren anwenden, um das gleiche element, das eine höhere Spezifität gewinnt.
Aber Besonderheit Hierarchie.
Ein inline-Stil Leben in Ihrem XHTML-Dokument. Es ist direkt angeschlossen an das element gestylt zu sein. E. g.
ID ist ein Bezeichner für das Seiten-Elemente, z.B. #div.
Zu dieser Gruppe zählen .Klassen, [Attribute], und pseudo-Klassen wie :hover, :focus etc..
Darunter zum Beispiel :before und :after.
Quelle: http://coding.smashingmagazine.com/2007/07/27/css-specificity-things-you-should-know/
Daher
div.test {}
spezifischer ist.div.test
nicht genauer sein alsdiv[test]
.Laut dieser Artikel, class-Selektoren sind effizienter als Attribut-Selektoren.
Jemand hat tatsächlich erstellt ein real life selector-test, präsentiert selector passende Leistung.
Die Tabelle zeigt, dass die Attribut-Selektoren sind etwa 3x langsamer im Vergleich zu standard-Klassen.
Sich auf Attribut-Selektoren erfordert auch mehr Zeichen auf den Gegner ein element. Es ist besser zu definieren kurz und prägnant Klassennamen halten Sie Ihr stylesheet klein.
Beispiel:
http://scope.bitbucket.org/tests/selector-matching-performance/
Nach diesem Projekt gibt es keinen wirklichen performance-Problem.
Haben Sie benchmarks sowie.
https://github.com/amcss/am-benchmarks