2010-04-01 15 views
8

de acuerdo con los estándares HTML ¿Los atributos ID de cualquier etiqueta HTML en una página web tienen que ser únicos en el documento?HTML: Pantalla: ¿Esto no permite múltiples Atributos ID con el mismo nombre (cuando está "oculto")?

¿Esta regla también se aplica a las etiquetas HTML que se han "deshabilitado/oculto" mediante el uso de: display: none?

Ejemplo:

<html> 
<body> 
<div id="one"></div> 
<div id="one" style="display:none;"></div> 
</body> 
</hmtl> 

¿Es este código HTML o no válida. Entonces, la pregunta es ¿Mostrar "ninguno" = Elementos ocultos también "cuenta/importa" con respecto a que la regla solo tiene Atributos ID únicos en una sola página web?

Gracias Ene

Respuesta

13

No es un marcado válido. La validación no tiene en cuenta los estilos CSS aplicados a los elementos DOM.

Hay

todavía tiene que ser sólo un elemento por ID, independientemente de si es visible o no, si está detrás de los otros en la pila Z, si se coloca fuera de la ventana, etc.

2

ID deben ser único ... ¡hacer lo contrario es flirtear con el desastre!

+1

mal redactado! Siento que esto podría malinterpretarse fácilmente ... ¿está respondiendo la primera forma en que planteó la pregunta ("¿Esta regla también se aplica a las etiquetas HTML que se han" desactivado/oculto "al usar: display: none?") O segundo ("¿Es este HTML válido o no?")? –

+0

Supongo que no fue una pregunta afirmativa de sí/no ... – Zoidberg

+0

Un comentario para solicitar la corrección habría sido suficiente mr. rudo downvoter. – Zoidberg

1

No importa si están ocultos o no, aún están en el documento. Incluso si se crean dinámicamente, no deberían tener la misma ID. "no es un marcado válido" - Developer Art

0

Diseñar un elemento (incluso aplicando pantalla: ninguno) no elimina el elemento del árbol de documentos.

1

Por supuesto, como han mencionado otros, no es un marcado válido. También debes pensar en la selección de DOM aquí. document.getElementById() selecciona un elemento con una ID particular, independientemente de su visibilidad/visualización dentro del documento.

0

Así que la pregunta es hacer "display: none" = Elementos ocultos también "Conteo/materia" en lo que se refiere a la regla

Sí. CSS no afecta si un nodo se considera parte del documento.

Solo puede tener varios Elementos con la misma ID cuando no están ambos contenidos dentro de la jerarquía del mismo Documento (o Fragmento de documento), ej. cuando acaba de usar JavaScript para createElement, un nuevo nodo pero no appendChild lo editó en el documento todavía.

Cuestiones relacionadas