Maison >interface Web >tutoriel CSS >Pourquoi les identifiants en double en HTML fonctionnent-ils parfois et quelle est la meilleure pratique ?

Pourquoi les identifiants en double en HTML fonctionnent-ils parfois et quelle est la meilleure pratique ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-21 20:50:28670parcourir
<p>Why Do Duplicate IDs in HTML Sometimes Work, and What's the Best Practice?

<p>Plusieurs éléments avec un identifiant identique répondent au sélecteur CSS

<p>Il est généralement considéré comme une mauvaise pratique d'attribuer à plusieurs éléments le même identifiant dans une seule page Web. . Selon la documentation du W3C, les attributs d'ID doivent avoir des valeurs uniques pour identifier de manière unique leurs éléments respectifs.

<p>Cependant, certaines situations, telles que l'utilisation de plugins jQuery, peuvent entraîner par inadvertance des ID en double. Étonnamment, les navigateurs ont tendance à gérer cette situation en « échouant silencieusement ». Ils tentent d'interpréter l'intention derrière le code HTML non valide et d'ajuster leur comportement en conséquence.

<p>Par exemple, considérons le code suivant :

#red {
  color: red;
}
<p>
<p>Malgré les identifiants en double, les deux paragraphes seront apparaissent en rouge dans tous les principaux navigateurs. Cependant, ce comportement n'est pas garanti et peut entraîner des effets secondaires inattendus.

<p>Par exemple, accéder à l'élément par son ID à l'aide de document.getElementById('red') ne renverra que le premier élément. Pour sélectionner les deux éléments, vous devrez utiliser un sélecteur d'attribut tel que document.querySelectorAll('p[id="red"]'). Cependant, cette approche n'est pas prise en charge dans IE7 et versions antérieures.

<p>Pour éviter des problèmes potentiels, il est fortement recommandé d'utiliser des noms de classe au lieu d'ID pour cibler plusieurs éléments avec CSS. Les noms de classes sont expressément conçus à cet effet et garantissent la cohérence sur tous les navigateurs.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn