Lass uns (X, X, X, X) für Spezifität verwenden

Avatar of Chris Coyier
Chris Coyier am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

Ich habe mich neulich mit Eric Meyer unterhalten und mich an eine Geschichte von Eric Meyer aus meiner prägenden Zeit erinnert. Ich habe einen Blogbeitrag über CSS-Spezifität geschrieben, und Eric hat sich die Zeit genommen, auf die irreführende Natur davon hinzuweisen (ich erinnere mich, dass ich ihn eilig aktualisiert habe). Was war so irreführend? Die Art und Weise, wie ich Spezifität als ein Zahlensystem zur Basis 10 darstellte.

Nehmen wir an, Sie wählen ein Element mit ul.nav. Ich habe in dem Beitrag angedeutet, dass die Spezifität dieses Selektors 0011 (im Wesentlichen elf) war, was eine Zahl im Basis-10-System ist. Also habe ich gesagt, Tags = 0, Klassen = 10, IDs = 100 und ein Stilattribut = 1000. Wenn die Spezifität in einem Basis-10-Zahlensystem wie diesem berechnet würde, hätte ein Selektor wie ul.nav.nav.nav.nav.nav.nav.nav.nav.nav.nav.nav (11 Klassennamen) eine Spezifität von 0111, was dasselbe wäre wie ul#nav.top. Das stimmt nicht. Die Realität ist, dass es (0, 0, 11, 1) vs. (0, 1, 0, 1) wäre, wobei letzteres leicht gewinnt.

Diese kommagetrennte Syntax, wie ich sie gerade verwendet habe, löst zwei Probleme

  1. Sie suggeriert kein Basis-10-Zahlensystem (oder irgendein Zahlensystem)
  2. Sie hat ein deutliches und lesbares Aussehen

Ich mag das (X, X, X, X)-Aussehen. Ich könnte mir vorstellen, es auf (X, X, X) zu beschränken, da ein Stilattribut nicht gerade ein *Selektor* ist und normalerweise nicht in denselben Gesprächen behandelt wird. Die Klammern machen es für mich klarer, aber ich könnte mir auch eine X-X-X (durch Bindestriche getrennte) Syntax vorstellen, die diese nicht benötigen würde, oder eine (X / X / X) Syntax, die wahrscheinlich von den Klammern profitieren würde.

Selectors Level 3 verwendet kurzzeitig Bindestriche. Level 2 verwendete sowohl Bindestriche als auch Kommas an verschiedenen Stellen.

Jedenfalls bekomme ich offenbar alle halbe Jahrzehnt den Drang, das zu erwähnen.