Maison >interface Web >tutoriel CSS >Pourquoi les règles CSS avec des sélecteurs invalides sont-elles supprimées au lieu de simplement supprimer la partie invalide ?

Pourquoi les règles CSS avec des sélecteurs invalides sont-elles supprimées au lieu de simplement supprimer la partie invalide ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-10 18:59:03385parcourir

Why are CSS rules with invalid selectors discarded instead of just removing the invalid part?

Pourquoi les sélecteurs CSS invalides entraînent l'abandon des règles

Problème :
La spécification CSS Selectors Level 3 exige que les règles contenant des sélecteurs invalides soient écarté. Pourquoi est-ce nécessaire au lieu de simplement supprimer le sélecteur non reconnu et conserver l'ensemble de règles ?

Justification :

Selon la spécification CSS2.1 :

Même si le reste du sélecteur peut sembler raisonnable dans CSS 2.1, l'intégralité de l'instruction doit être ignorée s'il y a une erreur n'importe où dans le sélecteur, car on ne sait pas si la virgule peut acquérir d'autres significations dans les futures mises à jour de CSS.

La spécification CSS Selectors Level 4 introduit des pseudo-classes fonctionnelles qui acceptent les groupes de sélecteurs comme arguments, tels que :not(). Cela pourrait conduire à des ambiguïtés dans l'analyse, rendant difficile pour les implémentations de gérer avec précision les sélecteurs non valides sans perturbations potentielles de la mise en page.

De plus :

  • Des erreurs d'analyse peuvent se produire à différents moments, ce qui rend je ne sais pas où terminer le sélecteur, la liste de sélecteurs ou le bloc de déclaration non valide.
  • La spécification ne fait aucune distinction entre non reconnu et mal formé sélecteurs, simplifiant la gestion des erreurs.
  • Certains moteurs de mise en page se comportent différemment, comme WebKit ignorant les sélecteurs non reconnus avec des préfixes et appliquant les siens.
  • Modifier ce comportement pourrait interrompre les sites existants qui en dépendent pour le sélecteur hacks et filtrage.

Par conséquent, ignorer les règles avec des sélecteurs invalides maintient la cohérence dans la gestion des erreurs, garantit la compatibilité ascendante et évite les problèmes de mise en page potentiels.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn