Ich habe mich neulich mit Eric Meyer unterhalten und erinnerte mich an eine Eric Meyer -Geschichte aus meinen prägenden Jahren. Ich schrieb einen Blog -Beitrag über die CSS -Spezifität, und Eric nahm sich die Zeit, um auf die irreführende Natur davon hinzusetzen (ich erinnere mich, wie ich es huschte, ihn zu aktualisieren). Was war so irreführend? Die Art und Weise, wie ich Spezifität als Basis-10-Zahlensystem darstellte.
Sagen Sie, Sie wählen ein Element mit ul.nav. Ich habe in der Post unterstellt, dass die Spezifität dieses Selektors 0011 (im Wesentlichen elf) betrug, was eine Zahl in einem Basis-10-System ist. Also sagte ich Tags = 0, Klassen = 10, IDS = 100 und ein Style Attribut = 1000. Wenn in einem solchen Basis-10-Zahlensystem eine Spezifität berechnet wurde, ist ein Selektor wie Ul.nav.nav.nav.nav.nav.nav.nav.nav.nav.nav.nav.nav (11 Klassennamen). Das ist nicht wahr. Die Realität ist, dass es (0, 0, 11, 1) gegen (0, 1, 0, 1) sein würde, wobei letztere leicht gewinnen würde.
Diese von Kommas getrennte Syntax, wie ich es gerade verwendet habe, löst zwei Probleme:
Ich mag den (x, x, x, x) Look. Ich konnte sehen, dass es auf (x, x, x) einschränkte, da ein Stilattribut nicht gerade ein Selektor ist und normalerweise nicht in denselben Gesprächen gesprochen wird. Die Parens machen es mir klarer, aber ich konnte auch eine XXX-Syntax (Dash-getrennte) Syntax sehen, die sie nicht benötigt, oder eine (x / x / x) -Syntax, die wahrscheinlich von den Parens profitieren würde.
Die Selektoren Level 3 verwendet kurz Striche. Level 2 verwendete sowohl Striche als auch Kommas an verschiedenen Stellen.
Wie auch immer, anscheinend bekomme ich den Fehler, um dies jedes halbe Jahrzehnte oder so zu erwähnen.
Das obige ist der detaillierte Inhalt vonVerwenden wir (x, x, x, x), um über Spezifität zu sprechen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!