<div id="example-value">
ou <div id="example_value">
?
Ce site et Twitter utilisent le premier style. Facebook et Vimeo - le second.
Lequel utilisez-vous et pourquoi?
html
coding-style
naming-conventions
Emanuil Rusev
la source
la source
Réponses:
Utilisez des traits d'union pour assurer l'isolation entre votre HTML et JavaScript.
Pourquoi? voir ci-dessous.
Les traits d'union peuvent être utilisés dans CSS et HTML, mais pas pour les objets JavaScript.
De nombreux navigateurs enregistrent les identifiants HTML en tant qu'objets globaux sur l'objet fenêtre / document, dans les grands projets, cela peut devenir une vraie douleur.
Pour cette raison, j'utilise des noms avec des traits d'union de cette façon les identifiants HTML n'entreront jamais en conflit avec mon JavaScript.
Considérer ce qui suit:
message.js
html
Si le navigateur enregistre les identifiants HTML en tant qu'objets globaux, ce qui précède échouera car le message n'est pas «indéfini» et il essaiera de créer une instance de l'objet HTML. En vous assurant qu'un identifiant HTML a un trait d'union dans le nom, vous évitez les conflits comme celui ci-dessous:
message.js
html
Bien sûr, vous pouvez utiliser messageText ou message_text mais cela ne résout pas le problème et vous pourriez rencontrer le même problème plus tard où vous accéderiez accidentellement à un objet HTML au lieu d'un objet JavaScript
Une remarque, vous pouvez toujours accéder aux objets HTML via l'objet window (par exemple) en utilisant window ['message-text'];
la source
window['message-text'];
Je recommanderais le guide de style HTML / CSS de Google
Il déclare spécifiquement :
Séparez les mots dans les noms d'ID et de classe par un trait d'union . Ne pas concaténer les mots et les abréviations dans les sélecteurs par des caractères (y compris aucun du tout) autres que des tirets, afin d'améliorer la compréhension et la numérisation.
la source
BEM
notation?C'est vraiment une question de préférence, mais ce qui vous influencera dans une direction particulière pourrait être l'éditeur avec lequel vous codez. Par exemple, la fonction de saisie semi -automatique de TextMate s'arrête à un trait d'union, mais voit les mots séparés par un trait de soulignement comme un seul mot. Ainsi, les noms de classe et les identifiants
the_post
fonctionnent mieux quethe-post
lors de l'utilisation de sa fonction de saisie semi-automatique (Esc
).la source
Je crois que cela dépend entièrement du programmeur. Vous pouvez également utiliser camelCase si vous le souhaitez (mais je pense que cela aurait l'air gênant.)
Personnellement, je préfère le trait d'union, car il est plus rapide de taper sur mon clavier. Je dirais donc que vous devriez choisir ce avec quoi vous êtes le plus à l'aise, puisque vos deux exemples sont largement utilisés.
la source
Les deux exemples sont parfaitement valables, vous pouvez même jeter dans le mix ":" ou "". comme séparateurs selon la spécification w3c . J'utilise personnellement "_" s'il s'agit d'un nom à deux mots simplement à cause de sa similitude avec l'espace.
la source
ZZ:ZZ
devrait être échappé commeZZ\00003AZZ
(CSS2 et supérieur).J'utilise le premier (un-deux) car il est plus lisible. Pour les images, je préfère le trait de soulignement (btn_more.png). Camel Case (oneTwo) est une autre option.
la source
En fait, certains frameworks externes (javascript, php) ont des difficultés (bogues?) À utiliser l'hypen dans les noms d'identifiant. J'utilise un trait de soulignement (tout comme 960grid) et tout fonctionne très bien.
la source
Je suggérerais de souligner principalement pour la raison d'un effet secondaire javascript que je rencontre.
Si vous deviez taper le code ci-dessous dans votre barre d'adresse, vous obtiendrez une erreur: «exemple-valeur» n'est pas défini. Si le div était nommé avec des traits de soulignement, cela fonctionnerait.
la source
document.getElementById("example-value")
, ce qui fonctionnera très bien.