Maison > interface Web > tutoriel CSS > le corps du texte

Pourquoi les règles CSS sont-elles abandonnées en raison de sélecteurs invalides ?

DDD
Libérer: 2024-11-18 03:05:02
original
167 Les gens l'ont consulté

Why Are CSS Rules Dropped Due to Invalid Selectors?

Un sélecteur CSS invalide entraîne l'abandon de la règle : justification

Contexte

Dans les sélecteurs CSS niveau 3, les erreurs d'analyse entraînent la suppression des règles contenant sélecteurs invalides. Ce comportement est mis en œuvre de manière cohérente par les navigateurs depuis des années, garantissant une gestion prévisible des erreurs.

Justification

La justification de l'abandon de règles entières est multiple :

  1. Ambiguïtés dans l'analyse du sélecteur : Les virgules et autres signes de ponctuation peuvent créer des ambiguïtés dans l'analyse. Les analyseurs naïfs peuvent avoir du mal à déterminer la portée d'un groupe de sélection ou d'un bloc de déclaration sans encourir d'erreurs.
  2. Cohérence dans la gestion des erreurs : Le traitement uniforme de toutes les erreurs d'analyse simplifie la mise en œuvre et évite le risque de comportement incohérent. sur tous les navigateurs.
  3. Compatibilité ascendante : La reconnaissance du potentiel futur d'une nouvelle syntaxe de sélecteur empêche l'introduction de règles de gestion des erreurs plus complexes et ambiguës.

Exemple

Pour illustrer le problème, voici un exemple de règle :

#menu li.last, #menu li:last-child {
  ...
}
Copier après la connexion

Dans les navigateurs comme IE8 qui ne prennent pas en charge :last-child, la règle entière est ignorée en raison d'un sélecteur invalide malgré sa validité du premier sélecteur.

Approches alternatives

La suppression des sélecteurs non reconnus sans ignorer la règle a été envisagée. Cependant, cela introduisait des risques potentiels :

  1. Comportement inattendu des sélecteurs : Les sélecteurs analysés pouvaient être appliqués de manière incorrecte, entraînant une mise en page ou un style inattendu.
  2. Mise en œuvre Complexité : Déterminer où séparer les sélecteurs invalides des sélecteurs valides peut être difficile et sujet à des erreurs.

Exceptions

Certains moteurs de mise en page peuvent présenter un comportement différent. WebKit ignore les sélecteurs préfixés, tandis que d'autres ignorent la règle entière. Ces écarts soulignent le potentiel d’incohérences entre navigateurs si les règles de gestion des erreurs sont révisées.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal