HTML: Anzeige: Keine erlaubt das mehrere ID-Attribute mit gleichem Namen (wenn "versteckt")?

8

gemäß den HTML-Standards ID-Attribute eines beliebigen HTML-Tags in einer Webseite müssen im Dokument eindeutig sein!?

Gilt diese Regel auch für HTML-Tags, die mit "disable / hidden" deaktiviert wurden: display: none?

Beispiel:

%Vor%

Ist das gültiges HTML oder nicht? Also die Frage ist do "display: none" = verdeckte Elemente auch "count / matter" in Bezug auf die Regel nur einzigartige ID-Attribute in einer einzigen Webseite?

Danke Jan

    
Jan 01.04.2010, 14:42
quelle

6 Antworten

13

Es ist kein gültiges Markup. Bei der Validierung werden CSS-Stile, die auf DOM-Elemente angewendet werden, nicht berücksichtigt.

Es muss immer noch nur ein Element pro ID geben, unabhängig davon, ob es sichtbar ist oder nicht, ob es sich hinter den anderen im Z-Stapel befindet, ob es sich außerhalb des Viewports befindet usw.

    
user151323 01.04.2010, 14:44
quelle
2

IDs MÜSSEN einzigartig sein ... sonst ist das Flirten mit der Katastrophe!

    
Zoidberg 01.04.2010 14:44
quelle
1

Es spielt keine Rolle, ob sie versteckt sind oder nicht, sie sind immer noch im Dokument. Auch wenn sie dynamisch erstellt werden, sollten sie nicht die gleiche ID haben. "Es ist kein gültiges Markup" - Developer Art

    
ant 01.04.2010 14:45
quelle
1

Natürlich, wie andere bereits erwähnt haben, ist es kein gültiges Markup. Sie müssen hier auch über die DOM-Auswahl nachdenken. document.getElementById() wählt ein Element mit einer bestimmten ID unabhängig von seiner Sichtbarkeit / Anzeige im Dokument aus.

    
Andy E 01.04.2010 15:03
quelle
0

Beim Formatieren eines Elements (selbst wenn die Anzeige nicht aktiviert ist) entfernen Sie das Element nicht aus der Dokumentstruktur.

    
newtover 01.04.2010 14:45
quelle
0
  

Also die Frage ist do "display: none" = verdeckte Elemente auch "count / matter" in Bezug auf die Regel

Ja. CSS beeinflusst nicht, ob ein Knoten als Teil des Dokuments betrachtet wird.

Sie können nur mehrere Elemente mit derselben ID haben, wenn sie nicht beide in der Hierarchie desselben Dokuments (oder DocumentFragment) enthalten sind, z. Wenn Sie gerade JavaScript zu createElement verwendet haben, wurde ein neuer Knoten, aber nicht appendChild noch in das Dokument eingefügt.

    
bobince 01.04.2010 15:55
quelle

Tags und Links