2010-04-01 13 views
8

in base agli standard HTML Gli attributi ID di qualsiasi tag HTML in una pagina Web devono essere univoci nel documento !?HTML: Display: nessuno consente più attributi ID con lo stesso nome (quando "nascosto")?

Questa regola si applica anche ai tag HTML che sono stati "disabilitati/nascosti" utilizzando: display: nessuno?

Esempio:

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

È questo HTML valido o meno. Quindi la domanda è fare "display: none" = Elementi nascosti anche "count/matter" in relazione alla regola che ha solo ID-Attributi univoci in una singola pagina web?

Grazie gen

risposta

13

Non è un codice valido. La convalida non tiene conto degli stili CSS applicati agli elementi DOM.

Ci

ancora deve essere solo un elemento per ID, indipendentemente dal fatto che sia visibile o no, se è dietro gli altri nella z-stack, se esso è posizionato all'esterno della finestra ecc

2

ID devono essere unico ... fare altrimenti sta flirtando con il disastro!

+1

Malcontento! Credo che questo possa essere facilmente interpretato in modo errato ... stai rispondendo al primo modo in cui ha dichiarato la domanda ("Questa regola si applica anche ai Tag HTML che sono stati" disabilitati/nascosti "usando: display: none?") O secondo ("È questo HTML valido o no?")? –

+0

Indovina che non era una domanda rispondente sì/no ... – Zoidberg

+0

Un commento per richiedere la correzione sarebbe stato sufficiente signor. downgoter scontroso. – Zoidberg

1

Non importa se sono nascosti o meno sono ancora nel documento. Anche se sono creati dinamicamente, non dovrebbero avere lo stesso ID. "non è un markup valido" - Developer Art

0

Styling di un elemento (anche applicando display: nessuno) non si rimuove l'elemento dall'albero del documento.

1

Naturalmente, come altri hanno menzionato, non è un markup valido. Devi anche pensare alla selezione DOM qui. document.getElementById() seleziona un elemento con un ID particolare, indipendentemente dalla sua visibilità/visualizzazione all'interno del documento.

0

Quindi la domanda è fare "display: none" = elementi nascosti anche "contano/materia" per quanto riguarda la regola

Sì. Il CSS non influenza se un nodo è considerato parte del documento.

È possibile avere più elementi con lo stesso ID solo se non sono entrambi contenuti nella gerarchia dello stesso documento (o DocumentFragment), ad es. quando hai appena usato JavaScript per createElement un nuovo nodo ma non lo ha ancora appendChild nel documento.

Problemi correlati