Je discutais avec Eric Meyer l'autre jour et je me suis souvenu d'une histoire d'Eric Meyer de mes années de formation. J'ai écrit un article de blog sur la spécificité de CSS, et Eric a pris le temps de souligner la nature trompeuse (je me souviens se précipiter pour la mettre à jour). Qu'est-ce qui était si trompeur? La façon dont je dépeignais la spécificité comme un système de nombres de base-10.
Dites que vous sélectionnez un élément avec ul.nav. J'ai insinué dans le post que la spécificité de ce sélecteur était 0011 (onze, essentiellement), ce qui est un nombre dans un système de base-10. Je disais donc Tags = 0, Classes = 10, IDS = 100, et un attribut de style = 1000. Si la spécificité a été calculée dans un système de nombres de base-10 comme celui-là, un sélecteur comme ul.nav.nav.nav.nav.nav.nav.nav.nav.nav.nav.nav (11 noms de classe) aurait une spécificité de 0111, qui serait la même chose que Ul # Nav.top. Ce n'est pas vrai. La réalité est que ce serait (0, 0, 11, 1) contre (0, 1, 0, 1) avec ce dernier qui gagne facilement.
Cette syntaxe séparée par des virgules comme je viens d'utiliser résout deux problèmes:
J'aime le look (x, x, x, x). Je pouvais voir le limiter à (x, x, x) car un attribut de style n'est pas exactement un sélecteur et n'est généralement pas parlé dans le même type de conversations. Les parens me rendent plus clair pour moi, mais je pouvais également voir une syntaxe xxx (séparée) qui n'aurait pas besoin d'eux, ou une syntaxe (x / x / x) qui bénéficierait probablement des parens.
Les sélecteurs Level 3 utilise brièvement des tirets. Le niveau 2 a utilisé les tirets et les virgules à différents endroits.
Quoi qu'il en soit, apparemment, j'obtiens le bug de mentionner cela chaque demi-décennie environ.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!