68 votes

Est-ce une mauvaise pratique de commenter des lignes simples de CSS avec //

J'ai récemment commencé à utiliser // de "commentaire" unique en lignes de code CSS.
Je comprends que je ne suis pas réellement en commentant la ligne, je suis en train de le casser (je devrais utiliser /* ... */ ), mais il a le même effet. La ligne est alors résilié par l' ; et code suivant fonctionne très bien.
J'ai pu le supprimer, mais préfèrent souvent ne pas en cas, je veux le remettre à plus tard ou de voir ce que j'avais été en utilisant si je reviens à elle.

Exemple:

li{
    float:left;
    //list-style-type:none;
    text-indent:0px;
}

Puis-je en tirer avec cela, ou est-il susceptible de me causer des problèmes?

85voto

osirisgothra Points 368

Je vois qu'il y avait des/beaucoup de gens se plaindre à ce sujet et depuis c'est une vieille question, il y a probablement beaucoup de gens le lire je me demandais si c'est toujours le cas, ou si il est en fait un standard dans la première place. Permettez-moi de nettoyer l'air. Voici les principales raisons pour le strict CSS politique de commentaire:

#1 Il n'est pas standard

Normalisé au moins depuis css 2.1, les commentaires sont UNIQUEMENT être enfermé dans /* et */. Alors que certains navigateurs tolérer //, ils ne sont pas censés le faire, et sont seulement un pouce de quelqu'un en disant: "oh oui, c'est non-standard" ou "hey! C'est non-standard, le fixer!"; et puis devinez quoi, votre code css qui fonctionne, maintenant n'est pas pour des milliers de personnes (et peut-être déjà pas de travail pour des centaines d'autres). J'ajouterai que, <!-- et --> sont autorisés, mais seulement (et je veux dire SEULEMENT) quand ils apparaissent à l'intérieur d'un document HTML, pas de dans un .css fichier source. Si votre navigateur est tellement vieux qu'il ne peut pas sauter par-dessus, <style> tags, c'est probablement le temps pour un nouveau navigateur il y a 10 ans. Même le lynx et autres textes, les navigateurs ne savent pas lire, donc, en commentant n'est utile que dans de très isolé situation où le matériel et le logiciel sont enclavés dans leur travail actuel de l'état.

#2 Il n'est pas (très) croix-plate-forme conviviale

Le commentaire d'une ligne, qui commence n'importe où sur une ligne avec //, est terminé par "saut de ligne" qui est/ne sont pas une croix-plate-forme normalisée personnage(s). Pire, certains peuvent avoir un caractère de saut de ligne, ou les 2... et quand ces plates-formes se mélangent, un retour à la ligne pourrait être perdu, et il y va de votre terminator...et certains ou la totalité de votre code est maintenant en commentaire qui n'était pas censé l'être, vous n'avez pas à être un génie pour savoir quelles en sont les conséquences que pourrait être, surtout si vous pouvez contrôler les fonctions de votre site, uniquement par le biais de CSS qui.

#3 La Norme EST Amical et Uniforme à Tous

L' /* et */ délimiteurs sont TOUJOURS les mêmes caractères sur CHAQUE ordinateur, indépendamment de l'architecture, système d'exploitation, etc.

#4 retours à la ligne sont des Espaces

La dernière raison (oui il y en a un de plus), caractère de saut de ligne(s) sont prises en compte (en CSS et beaucoup d'autres langues) à utiliser un espace, et */ n'est pas une espace est-il? Et si vous pensez à ce sujet à ce stade, il devrait être assez clair, vous ne devriez PAS utiliser un espace pour mettre fin à un commentaire en particulier depuis les espaces est et ne peut être ignoré par beaucoup de HTML/CSS des analyseurs, ou reformaté sans vous même le savoir.

#5 CSS != C/C++

Maintenant, si vous êtes sur le point de voler hors de votre siège et de crier à moi au sujet de "hey mais C++...." rappelez-vous, ces compilateurs et des Ide ont des tonnes de saut de ligne de la vérification et de détection intégrés de sorte qu'ils peuvent prendre. La plupart des compilateurs ne pas reformater votre code, sauf si demandé, et de nombreuses IDEs seront généralement vous demander quel genre de retours à la ligne de votre document à l'aide si elle ne peut pas deviner tout seul. Si nous l'avons fait avec CSS des pages pour l'utilisateur final, chaque fois qu'il a été chargé, imaginez le cauchemar, il serait en essayant de se déplacer. En outre, le code C/C++ n'est pas analysée au moment de l'exécution, et est compilé, puis la plupart du temps, l'utilisateur n'est jamais que le document en question en premier lieu. Les fichiers source ne sont pas constamment vu par le monde entier sur des centaines de plates-formes et de nombreux systèmes d'exploitation, et un million de différents navigateurs soit. Les commentaires sont supprimés avant qu'ils ne jamais arriver à la fin de l'utilisateur. Source CSS vient droit au navigateur de l'utilisateur et doit être très résistant, ne sachant pas ce qui est de l'autre côté, donc, le problème, c'est qu'il doit être prêt à tout utilisateur final a ou n'a, pas quelque chose que le développeur ne ou a!

#6 C'est gênant

Non, il est très ennuyeux d'avoir à type extra - */, mais le blâmer pour cela, va principalement aux développeurs de CSS logiciel de montage qui n'offrent pas l'auto-complétion. Si vous utilisez un éditeur spécialisé qui peut le faire, de préférence, hors de la boîte, alors vous verrez qu'il est tout aussi facile que l'utilisation de //. Prenez l'habitude de taper /**/ puis retour arrière 2, il vous aidera à ne pas oublier et rend un peu plus facile. Mieux encore, vous pouvez définir une touche de raccourci pour juste se coucha pour vous. Windows et Linux tous les deux ont de puissants outils qui le permettent (KDE est très bon pour ça).


J'espère que cela permet à chacun de comprendre le "pourquoi" derrière le "comment", et rappelez-vous juste parce que quelque chose fonctionne pour vous, ne signifie pas qu'il est la norme, et pour résumer:

OUI C'EST une MAUVAISE PRATIQUE à utiliser, il suffit de dire NON à la double slash!!! Si vous avez besoin d'une aide visuelle pour vous rappeler de ce fait important, il suffit de graver cette image dans votre esprit (merci à ceux d'entre vous qui n'ont rien de mieux à faire, mais faire des photos comme ça):

no double slash


PS: Si vous voulez vraiment quelque chose à se plaindre de ceux qui font le/la rupture normes CSS (w3c, coude) quelqu'un de commencer une discussion sur la façon inutilement long et le mal "!important" mot-clé est! Mais ce n'est pas une partie de cette question si je ne vais pas aller en elle.

Références

  • w3c: CSS 2.1 projet de travail: caractères de commentaire.
  • w3c: la syntaxe CSS du module niveau 3: diagrammes de chemin de fer de l'analyseur à caractère interprétations.
  • donc: Différents articles avec pratiquement le même sujet que celui-ci.
  • w3schools: CSS 3 syntaxe standard (qui à son tour références w3c).
  • sitepoint: la syntaxe CSS annotation sur "ne pas utiliser la double barre oblique".
  • mozilla|mdn: détendue css3 traitement permet une double barre oblique dans les fichiers d'entrée.

49voto

Dennis Traub Points 24186

Et tout d'abord, Commenté code est un code odeur et doit être évitée. Je suppose que vous êtes à l'aide d'un VCS comme Git, qui s'occupe de l'historique de code pour vous.

Mais si vous voulez vraiment travailler de cette façon: Vous ne savez pas comment le futur et/ou exotiques, les navigateurs interprètent non-officiel des hacks comme //, afin de mieux coller avec la notation:

li {
    float:left;
    text-indent:0px;
    /* list-style-type:none; */
}

6voto

Naveen Points 3066

J'ai lu récemment cet article qui jette beaucoup de lumière sur une seule ligne de commentaires pratiques en CSS.

CSS vous permet d'utiliser // après un de la mode. Ce n'est pas tout à fait un commentaire sur une ligne, mais une construction suivante commentaire. C'est, à chaque fois que vous utilisez //, la prochaine CSS, la construction, soit de la déclaration ou de bloc sera "commenté".

Donc, dans votre extrait de code list-style-type:none est la prochaine CSS construire et il obtient en commentaire.

li {
    float:left;
    //list-style-type:none;
    text-indent:0px;
}

De même, dans l'extrait de code ci-dessous

//@keyframes foo {
  from, to { width: 500px; }
  50% { width: 400px; }
}
@keyframes bar {
  from, to { height: 500px; }
  50% { height: 400px; }
}

l' // commentaires le premier @keyframes déclaration.

Si vous essayez d'utiliser // seulement pour écrire des commentaires dans votre feuille de style, vous devez être prudent - texte brut n'est pas un CSS construire, donc il va chercher passé et commentez la construction suivante dans votre page. Ainsi, dans l'extrait de code ci-dessous

// Do some stuff.
.foo { animation: bar 1s infinite; }

Cela permettra de commenter l' .foo bloc.

Vous pouvez obtenir plus d'informations via l'article lié mentionné au début.

4voto

Rob Points 538

Selon le brouillon de travail http://www.w3.org/TR/css3-syntax/#comments, il n’ya rien de mieux qu’un commentaire d’une seule ligne.

2voto

duffymo Points 188155

Je recommanderais de ne pas commenter les CSS de cette manière quand ce n'est pas nécessaire. Supprimez les éléments inutiles et envoyez-les dans votre référentiel SVN ou GIT. Laissez-le faire son travail et gardez une trace de l'histoire pour vous. Les commentaires accumulés comme celui-ci deviennent cruels, rendant votre code plus difficile à lire et à comprendre.

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