32 votes

Le CSS donne-t-il une erreur ?

Lors d'un récent entretien, on m'a posé la question " Le CSS donne-t-il une erreur ? " par l'enquêteur.

Y a-t-il un interprète derrière CSS qui bloque l'exécution du programme ? Ou peut-on dire que CSS ne donne pas d'erreur ? Je ne sais toujours pas quelle est la réponse à cette question car l'interviewer n'a rien dit non plus.

37voto

gabe3886 Points 404

Les CSS en tant que telles ne donneront pas lieu à une erreur, mais les CSS dont la syntaxe est erronée ne s'afficheront pas correctement. Le navigateur peut ne pas être en mesure de comprendre ce que l'on veut dire à un moment donné, et donc ne pas être en mesure de formater la page correctement.

Il y a également une différence entre le fait que les feuilles de style en cascade soient syntaxiquement correctes, c'est-à-dire que tout soit correctement entouré et que les lignes soient terminées, et le fait qu'elles soient conformes aux normes du W3C.

EDIT : (exemple pour la correction syntaxique et le respect des normes) L'exemple suivant est un exemple de CSS syntaxiquement correct, qui n'échouera pas à la validation sur le site Web de la Commission européenne. Validateur CSS du W3C :

p.my-class {
  color : red;
  -moz-border-radius : 3px;
}

Bien qu'il s'agisse d'un CSS techniquement valable, selon la Commission européenne, il n'est pas possible de l'utiliser. extensions spécifiques au fournisseur de la syntaxe CSS 2.1, ils doivent être évités. C'est le tiret initial ou le trait de soulignement qui leur permet d'être valides.

17voto

DeshanR Points 346

Je pense que la question est trop large et pas assez précise. Voici comment j'aurais répondu à la question.

Le CSS donne-t-il une erreur ?

Cela dépend de l'endroit où vous vous trouvez. Dans un IDE ? bien sûr, il vous montrera les erreurs de validation. Dans un navigateur ? La plupart des navigateurs ont tendance à ignorer les erreurs de validation CSS et à continuer avec le reste des règles. Encore une fois, comme @Kishan Choudhary l'a mentionné dans une autre réponse, "CSS" fait juste référence au langage de style et les langages ne peuvent pas vous indiquer les erreurs par eux-mêmes.

Alt. Question : Comment valider/déboguer/trouver des erreurs dans un CSS ?

Peut-on dire que CSS ne donne pas d'erreur ?

Là encore, cela dépend de l'endroit où vous vous trouvez. Dans un environnement de développement ? Oui, presque tous les IDE Web vous aideront à trouver vos erreurs CSS.

Dans le navigateur du client ? Pas vraiment, vous pouvez ouvrir la console du navigateur ou l'outil du développeur s'il est disponible et il peut y avoir des erreurs dans les journaux, par exemple des URL invalides ou inaccessibles d'images que vous avez utilisées dans le CSS. Encore une fois, s'agit-il d'une erreur de syntaxe ou de validation CSS ? non.

Est-ce qu'il y a un interpréteur derrière CSS qui bloque l'exécution de le programme ?

Oui, tous les navigateurs ont un interpréteur/parseur CSS intégré qui suit les normes du W3C. Est-ce qu'il aime bloquer l'exécution ? Non, le comportement normal de la plupart des navigateurs est d'ignorer (sans bloquer l'interprétation et l'application des autres règles de style valides) les erreurs de validation CSS et de continuer avec le reste des règles.

Mise à jour : Directives du W3 concernant le traitement des erreurs d'analyse CSS

Spécification des feuilles de style en cascade niveau 2 révision 1 (CSS 2.1)

4.2 Règles de traitement des erreurs d'analyse syntaxique

Dans certains cas, les agents utilisateurs doivent ignorer une partie d'une feuille de style illégale. Cette spécification définit le terme "ignorer" comme signifiant que l'agent utilisateur analyse la partie illégale (afin d'en trouver le début et la fin), mais mais agit autrement comme si elle n'avait pas existé. CSS 2.1 réserve pour futures mises à jour de CSS toutes les combinaisons propriété:valeur et les @-mots-clés qui ne contiennent pas d'identifiant commençant par un tiret ou un trait de soulignement. Les implémentations doivent ignorer ces combinaisons (autres que celles introduites par les futures mises à jour de CSS). introduites par les futures mises à jour de CSS).

Pour garantir que de nouvelles propriétés et de nouvelles valeurs pour les propriétés existantes puissent être ajoutées à l'avenir.

Module de syntaxe CSS niveau 3

2.2. Traitement des erreurs

Lorsque des erreurs se produisent dans le CSS, l'analyseur syntaxique tente de se rétablir avec élégance , en ne jetant que la quantité minimale de contenu avant de revenir à l'analyse normale. En effet, les erreurs ne sont pas toujours des fautes. nouvelle syntaxe ressemble à une erreur pour un ancien analyseur, et il est utile de pouvoir être capable d'ajouter une nouvelle syntaxe au langage sans se soucier des sans craindre que les feuilles de style qui l'intègrent soient complètement cassées dans les anciennes UA.

16voto

Guffa Points 308133

En général, les erreurs dans le CSS ne provoquent pas de messages d'erreur dans le navigateur. Tout code incorrect est simplement ignoré (ou dans certains cas accepté en supposant une partie manquante, par exemple une unité de longueur).

L'analyseur CSS tente de se rétablir après chaque code incorrect, de sorte qu'il n'affecte généralement que le style ou la règle où se trouve l'erreur, l'analyseur n'arrêtant pas d'analyser le reste du code CSS.

Certains navigateurs ajoutent des avertissements à la console d'erreurs en cas d'erreurs dans le CSS. Les développeurs peuvent donc ouvrir la console pour voir s'il y a des erreurs.

14voto

rajuGT Points 1607

Le CSS donne-t-il une erreur ?

Oui, toute règle qui ne peut être comprise par l'analyseur CSS entraînera une erreur. En général, toute donnée qui ne peut être traitée par un système/programme entraîne une erreur. Mais la question est de savoir comment le système traite finalement cette erreur et cela peut être

  1. Ignorez l'erreur et continuez le traitement.
  2. Arrêtez le processus.

El L'analyseur CSS ne s'arrête pas en cas d'erreur. Il met juste un journal des erreurs à la console s'il trouve une propriété css invalide qui ne peut pas être analysée/mentionnée dans Spécifications et ignore(1) toutes les données de la règle css jusqu'à ce qu'il trouve la suivante. ; .

Comme le dit le document de w3c.org

Une UA doit sauter une déclaration avec un nom de propriété invalide ou une valeur non valide.

Ici, UA (User Agent) signifie navigateur dans notre cas. Les clés/valeurs css invalides doivent donc être ignorées et le fournisseur du navigateur peut choisir d'afficher l'erreur dans devtools/firebug pour aider les développeurs à la corriger. Le fournisseur du navigateur peut également décider d'afficher ou non les journaux d'erreurs.

9voto

torazaburo Points 6335

Certains navigateurs signalent les erreurs CSS dans la console. On pense notamment à Firefox.

<style> foo { bar: baz; } </style>

entraîne l'erreur :

Propriété inconnue 'bar'. Déclaration abandonnée. css-error.html:2:11

Cependant, cela ne va pas "bloquer l'exécution du programme".

À ma connaissance, aucune fonction similaire n'existe dans Chrome.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X