Gestion des erreurs de sélecteur CSS non valide : justification
La spécification CSS Selectors Level 3 dicte que les règles entières contenant des sélecteurs non valides doivent être ignorées. Cette décision découle des défis liés à l'analyse des erreurs dans les sélecteurs, à la garantie d'une gestion cohérente des erreurs et au maintien de la compatibilité ascendante.
Les défis liés aux erreurs d'analyse
Les erreurs d'analyse dans les sélecteurs CSS peuvent implique :
En supprimant les règles avec des sélecteurs non valides, des implémentations évitez la complexité de déterminer la validité de sélecteurs partiels ou de groupes de sélecteurs complexes.
Cohérence et compatibilité
La spécification garantit une gestion cohérente des erreurs dans toutes les implémentations. Les sélecteurs invalides sont traités comme un échec complet de l'analyse, quelle que soit la reconnaissance des parties individuelles. La compatibilité ascendante est également prise en compte, car les spécifications futures pourraient introduire une nouvelle syntaxe de sélecteur qui pourrait introduire d'autres défis d'analyse.
Exemple : Gestion de ":last-child"
Dans le Dans l'exemple de règle impliquant ":last-child", la spécification considère ce sélecteur comme invalide car non reconnu, même si les navigateurs peuvent généralement identifier les pseudo-classes. Maintenir la cohérence et éviter les perturbations potentielles de la mise en page sont prioritaires.
Raison d'être de l'abandon de la règle
En fin de compte, l'abandon des règles non valides offre la gestion des erreurs la plus simple et la plus prévisible :
Points de vue alternatifs et exceptions
Bien que l'élimination des règles invalides soit généralement l'approche recommandée, certaines discussions dans les listes de diffusion ont suggéré des révisions de la spécification. Cependant, le comportement actuel reste inchangé en raison de problèmes potentiels de compatibilité Web, car les sites s'appuient sur le comportement existant pour les hacks CSS.
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!