Je comprends qu'un identifiant doit être unique dans une page HTML / XHTML.
Ma question est, pour un élément donné, puis-je lui attribuer plusieurs identifiants?
<div id="nested_element_123 task_123"></div>
Je me rends compte que j'ai une solution facile à utiliser simplement une classe. Je suis simplement curieux d'utiliser les identifiants de cette manière.
html
xhtml
standards-compliance
webmat
la source
la source
Réponses:
Non. D'après la spécification XHTML 1.0
la source
Contrairement à ce que tout le monde a dit, la bonne réponse est OUI
La spécification des sélecteurs est très claire à ce sujet:
Éditer
Juste pour clarifier: oui, un élément XHTML peut avoir plusieurs identifiants, par exemple
mais l'attribution de plusieurs identifiants au même
id
attribut à l'aide d'une liste séparée par des espaces n'est pas possible.la source
This specification doesn't preclude an element having multiple IDs, if other mechanisms (e.g. DOM Core methods) can set an element's ID in a way that doesn't conflict with the id attribute.
(ce qui correspond aux spécifications CSS)id
attribut. Pour clarifier, l'xml:id
attribut (et en fait, tout attribut en dehors de l'espace de noms par défaut) n'est pas valide en XHTML. Cependant, comme vous le citez à partir de la spécification HTML5, cela n'entraîne en aucun cas unexml:id="bar"
défaillance silencieuse; il ajoutera toujours l'bar
ID à cet élément, lui permettant de correspondre#bar
.Ma compréhension a toujours été:
Les identifiants sont à usage unique et ne sont appliqués qu'à un seul élément ...
Les cours peuvent être utilisés plusieurs fois ...
la source
Non. Bien que la définition de w3c pour HTML 4 ne semble pas couvrir explicitement votre question, la définition de l'attribut name et id ne dit aucun espace dans l'identifiant:
la source
Non. Chaque élément DOM, s'il a un identifiant, a un identifiant unique et unique. Vous pouvez l'approcher en utilisant quelque chose comme:
puis utilisez la navigation pour obtenir ce que vous voulez vraiment.
Si vous cherchez simplement à appliquer des styles, les noms de classe sont meilleurs.
la source
Vous ne pouvez avoir qu'un seul ID par élément, mais vous pouvez en effet avoir plus d'une classe. Mais ne pas avoir plusieurs attributs de classe, mettez plusieurs valeurs de classe dans un seul attribut.
est parfaitement légal.
la source
Non, vous ne pouvez pas avoir plusieurs identifiants pour une seule balise, mais j'ai vu une balise avec un
name
attribut et unid
attribut qui sont traités de la même manière par certaines applications.la source
Non, vous devez utiliser des DIV imbriqués si vous souhaitez emprunter ce chemin. En outre, même si vous le pouviez, imaginez la confusion que cela provoquerait lorsque vous exécutez document.getElementByID (). Quel ID va-t-il récupérer s'il y en a plusieurs?
Sur un sujet légèrement lié, vous pouvez ajouter plusieurs classes à un DIV. Voir la discussion d'Eric Myers sur,
http://meyerweb.com/eric/articles/webrev/199802a.html
la source
getElementById();
ne fait rien sans une chaîne spécifiant quoi obtenir?!getElementById('foo');
obtiendra l'élément avec foo comme ID! Plusieurs identifiants n'auraient pas d'importance ici. Il chercherait toujours "foo".la source
http://www.w3.org/TR/REC-html40/struct/global.html#h-7.5.2
et
Donc, "id" doit être unique et ne peut pas contenir d'espace.
la source
J'aimerais dire techniquement oui, car ce qui est rendu dépend toujours techniquement du navigateur. La plupart des navigateurs essaient de respecter les spécifications du mieux qu'ils peuvent et pour autant que je sache, il n'y a rien dans les spécifications CSS contre cela. Je vais seulement me porter garant du code HTML, CSS, Javascript réel qui est envoyé au navigateur avant que tout autre interprète n'intervienne.
Cependant, je dis également non, car chaque navigateur sur lequel je teste généralement ne vous permet pas. Si vous avez besoin de voir par vous-même, enregistrez ce qui suit en tant que fichier .html et ouvrez-le dans les principaux navigateurs. Dans tous les navigateurs que j'ai testés, la fonction javascript ne correspondra pas à un élément. Cependant, supprimez soit "hunkojunk" de la balise id et tout fonctionne bien. Exemple de code
la source
Non.
Cela dit, rien ne vous empêche de le faire. Mais vous obtiendrez un comportement incohérent avec les différents navigateurs. Ne le fais pas. 1 ID par élément.
Si vous voulez plusieurs affectations à un élément, utilisez des classes (séparées par un espace).
la source
C'est intéressant, mais pour autant que je sache, la réponse est non. Je ne vois pas pourquoi vous avez besoin d'un ID imbriqué, car vous le croiserez généralement avec un autre élément qui a le même ID imbriqué. Si vous ne le faites pas, cela ne sert à rien, si vous le faites, il y a encore très peu de points.
la source
Je sais que cela fait un an mais j'étais moi-même curieux à ce sujet et je suis sûr que d'autres trouveront leur chemin ici. La réponse simple est non, comme d'autres l'ont dit avant moi. Un élément ne peut pas avoir plus d'un ID et un ID ne peut pas être utilisé plus d'une fois dans une page. Essayez-le et vous verrez à quel point cela ne fonctionne pas .
En réponse à la réponse de tvanfosson concernant l'utilisation du même identifiant dans deux éléments différents. Pour autant que je sache, un ID ne peut être utilisé qu'une seule fois dans une page, qu'il soit attaché à une autre balise.
Par définition, un élément nécessitant un ID doit être unique, mais si vous avez besoin de deux ID, il n'est pas vraiment unique et a plutôt besoin d'une classe.
la source
les cours sont spécialement conçus pour cela, voici le code à partir duquel vous pouvez comprendre
la source
Non.
https://www.w3.org/TR/2011/WD-html5-20110525/elements.html#the-id-attribute
id="a b"
<- trouvez le caractère spatial dans ce VaLuE .Cela dit, vous pouvez styliser plusieurs ID. Mais si vous suivez les spécifications, la réponse est non.
la source
Les identifiants doivent être uniques, vous ne devez donc utiliser un identifiant particulier qu'une seule fois sur une page. Les classes peuvent être utilisées à plusieurs reprises.
consultez https://www.w3schools.com/html/html_id.asp pour plus de détails.
la source
Je ne pense pas que vous puissiez avoir deux identifiants, mais cela devrait être possible. Utiliser le même identifiant deux fois est un cas différent ... comme deux personnes utilisant le même passeport. Cependant, une personne pourrait avoir plusieurs passeports ... Je suis venu à la recherche de cela car j'ai une situation où un seul employé peut avoir plusieurs fonctions. Disons que "sysadm" et "team coordinator" ayant l'id = "sysadm teamcoordinator" me permettraient de les référencer à partir d'autres pages afin que employee.html # sysadm et employees.html # teamcoordinator mènent au même endroit ... Un jour, quelqu'un d'autre pourrait prendre en charge la fonction de coordinateur d'équipe tandis que le sysadm reste le sysadm ... alors je n'ai qu'à changer les identifiants sur la page Employees.html ... mais comme je l'ai dit - cela ne fonctionne pas :(
la source