


Pseudo-forages dans CSS (ou comment les navigateurs analysent les styles)
Bien que la spécification CSS ne soit pas mentionnée, vous pouvez simuler des commentaires de ligne de style C et / ou de style Unix dans les fichiers CSS (avec certaines limitations). D'autres ont déjà écrit à ce sujet (en particulier les annotations CSS sont couvertes dans l'article des fondations Web de SitePoint). Cet article en discutera plus en détail.
Points clés
- CSS ne prend officiellement que les commentaires multi-lignes de style C, mais les commentaires pseudo utilisent des erreurs d'analyse pour commenter par inadvertance le code.
- Les commentaires pseudo peuvent être créés en malformant la déclaration CSS, tels que l'omission de demi-colons ou l'utilisation de noms d'attribut non reconnus, entraînant l'ignorance du code ultérieur.
- Le placement en ligne et en ligne suivante des commentaires pseudo affectera si les règles CSS suivantes sont appliquées et que les commentaires pseudo en ligne peuvent invalider les déclarations ultérieures sur la même ligne.
- Les pseudo-annotations peuvent également être appliquées aux règles @, et le comportement observé variera selon que les règles @ contiennent un bloc corporel ou une fin avec un point-virgule.
- Bien que les commentaires pseudo puissent être utilisés pour le débogage, ils sont mal lisibles et ne doivent pas remplacer les commentaires CSS standard dans le code de production.
commentaires CSS
Selon la spécification, le Parser CSS prend formellement un style d'annotation, c'est-à-dire des commentaires multi-lignes du langage de style C, qui utilise la marque de départ /*
et la marque finale */
comme indiqué ci-dessous:
<code>/* 起始和结束标记之间(包括起始和结束标记)的字符将被解析器忽略, */</code>
Par conséquent, la déclaration de règles dans le commentaire sera ignorée:
<code>body { background: red; /* background: white; */ }</code>
La déclaration de bloc dans le commentaire sera ignorée:
<code>/* body { background: red; } */</code>
Dans ces exemples, nous avons tous intentionnellement Utiliser la syntaxe des commentaires pour demander à l'analyseur d'ignorer le contenu.
Cependant, nous pouvons également le faire de façon inattendue, comme utiliser une déclaration mal formée:
<code>body { background: red /* 缺少分号 */ background: blue; }</code>
Dans cet exemple, aucune des déclarations d'arrière-plan n'est appliquée en raison de l'absence de point-virgule. L'analyseur scanne le point-virgule suivant pour déterminer que l'ensemble de l'instruction à deux lignes est incorrect, de sorte que le contenu de toute l'analyse lexicale est ignoré. La même chose se produira si nous omettons complètement la valeur d'attribut:
<code>body { background: background: blue; /* 此声明未应用 */ }</code>
Ce indique que nous pouvons utiliser une instruction malformée comme ...
pseudo commentaire
Nous appelons ces "commentaires pseudo" à cause de strictement parlant, ce ne sont pas des commentaires qui se terminent à la fin du personnage de la ligne. Au lieu de cela, ils fonctionnent en malformant les entrées ultérieures (même sur les lignes suivantes). Cela est dû au processus de gestion des erreurs des ensembles de règles, des blocs de déclaration et des sélecteurs:
"S'il y a une erreur dans le sélecteur, toute la déclaration doit être ignorée, même si le reste du sélecteur semble raisonnable dans CSS 2.1."Dans l'exemple suivant (extrait de la spécification), le deuxième ensemble de règles est ignoré en raison du caractère non valide "&" dans le sélecteur:
De même, dans l'exemple suivant, les deuxième et troisième déclarations sont ignorées en raison de la présence de caractères redondants dans l'arrière-plan nom de la propriété:
<code>h1, h2 {color: green } h3, h4 & h5 {color: red } /* h6 {color: black }</code>
Un coup d'œil rapide sur le clavier anglais révèlera que les caractères spéciaux suivants serviront de commentaire de déclaration à une seule ligne:
<code>body { background: red; xbackground: white; /* 属性名称未被识别 */ y background: blue; /* 属性名称格式不正确 */ }</code>
<code>/* 起始和结束标记之间(包括起始和结束标记)的字符将被解析器忽略, */</code>
Cependant, n'utilisez aucun caractères, mais respectez les conventions C et Unix et utilisez # ou //:
<code>body { background: red; /* background: white; */ }</code>
semi-colon
Le point-virgule est la marque finale de la déclaration de règles. Par conséquent, ils ne peuvent pas "commenter" le texte qui suit. Dans les spécifications, l'analyseur traite un point-virgule pendant en tant que déclaration mal formée (une déclaration de nom, de côlon ou de valeur est manquante).
Comme mentionné précédemment, lorsque le format de commentaire multiligne ordinaire est erroné, c'est-à-dire lorsque les balises de début et de fin ne sont pas équilibrées autour de l'ensemble de règles ou de la déclaration, l'analyseur ignore les déclarations ou les ensembles de règles ultérieurs. Ce qui suit a en fait "commenté" lesdeux déclarations d'arrière-plan, car l'analyseur recherchera la prochaine étiquette de fin de déclaration (semi-colon) de la déclaration affectée:
<code>/* body { background: red; } */</code>
<code>body { background: red /* 缺少分号 */ background: blue; }</code>
<code>body { background: background: blue; /* 此声明未应用 */ }</code>
<code>h1, h2 {color: green } h3, h4 & h5 {color: red } /* h6 {color: black }</code>
en ligne avec la ligne suivante
C'est là que "Pseudo" entre dans le mot "Pseudo Commentaire". Cela peut être une bonne raison de ne pas l'appeler des "commentaires" du tout, car ils violent la convention de fin de ligne des commentaires de la ligne de style C ou Unix.Les commentaires pseudo placés sur une ligne supprimeront les déclarations sur la ligne suivante. Dans l'exemple suivant, l'arrière-plan sera bleu:
<code>body { background: red; xbackground: white; /* 属性名称未被识别 */ y background: blue; /* 属性名称格式不正确 */ }</code>
sont supprimés par . Dans l'exemple suivant, l'arrière-plan sera blanc au lieu du bleu:
<code>selector { ~ property-name: ignored; ` property-name: ignored; ! property-name: ignored; @ property-name: ignored; # property-name: ignored; $ property-name: ignored; % property-name: ignored; ^ property-name: ignored; & property-name: ignored; * property-name: ignored; _ property-name: ignored; - property-name: ignored; + property-name: ignored; = property-name: ignored; | property-name: ignored; \ property-name: ignored; : property-name: ignored; property-name: ignored; . property-name: ignored; > property-name: ignored; , property-name: ignored; ? property-name: ignored; / property-name: ignored; }</code>
<code>// background: ignored; # background: ignored;</code>
(Identique au contenu de suivi. En raison des limitations de l'espace, les créations pseudo-originales restantes de la partie restante sont omises ici.)
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds











Essayons de savoir un terme ici: "fournisseur de formulaire statique". Vous apportez votre HTML

Au début d'un nouveau projet, la compilation SASS se produit en un clin d'œil. Cela se sent bien, surtout quand il est associé à BrowSersync, qui recharge

Dans cette semaine, le Roundup des nouvelles de la plate-forme, Chrome présente un nouvel attribut pour le chargement, les spécifications d'accessibilité pour les développeurs Web et la BBC Moves

C'est moi qui regarde l'élément HTML pour la première fois. J'en ai été conscient depuis un certain temps, mais il ne l'a pas encore pris pour un tour. Il a un peu cool et

L'achat ou la construction est un débat classique de la technologie. Construire des choses vous-même peut être moins cher car il n'y a pas d'article de ligne sur votre facture de carte de crédit, mais

Pendant un certain temps, iTunes était le grand chien du podcasting, donc si vous avez lié "Abonnez-vous au podcast" pour aimer:

Le chef de document n'est peut-être pas la partie la plus glamour d'un site Web, mais ce qui y va est sans doute tout aussi important pour le succès de votre site Web que son

Il existe de nombreuses plates-formes d'analyse pour vous aider à suivre les données des visiteurs et d'utilisation sur vos sites. Peut-être plus particulièrement Google Analytics, qui est largement utilisé
