2011-01-16 5 views
4

Ich benutze ein clear div an mehreren Stellen in einer einzigen HTML-Datei, a la:W3C-Validator beschwerte sich über doppelte div

#clear 
{ 
    clear: both; 
} 

Nutzung:

<div id="clear"> 
</div> 

Aber W3C HTML5 Validator scheint zu beschweren dass jede weitere Nutzung nach der anfänglichen Verwendung ist eine „doppelte ID“:

le validation errors

Warum ist das nicht gültig? Wie soll man clear divs mehrmals auf einer Seite verwenden, wenn es nicht technisch gültig ist?

Hinweis: Dies ist meist nur eine informative Frage, meine HTML-Darstellung in allen modernen Browsern, und da dies der einzige Fehler ist, den der HTML5-Validator finden kann, ist mir egal, aber ich möchte nur zu wissen, warum dies als ein Problem angesehen wird.

Antwort

10

In HTML müssen id Attribute innerhalb des gesamten Dokuments eindeutig sein. Wenn Sie mehrere klare <div> Elemente möchten, verwenden Sie einen class statt:

.clear 
{ 
    clear: both; 
} 

<div class="clear"> 
</div> 
+1

@David, interessant, war mir nicht bewusst. Links aktualisiert, danke für die Gaunerliste :) –

+0

Danke - das macht Sinn. –

+0

Warum rendert meine Seite anders, wenn ich class = "clear" anstelle von id = "clear" verwende? –

1

Ein id identifiziert ein Element eindeutig und kann nicht in einem einzelnen Dokument wiederverwendet werden.

Wenn Sie angeben möchten, dass mehrere Elemente etwas gemeinsam haben, verwenden Sie class. Sie müssen Ihr CSS ändern, um eine class selector zu verwenden.


Das heißt, zusätzliche Elemente eingefügt, die nichts tun, außer gesetzt klar ist hässlich und man sollte ich bei an alternative technique aussehen wahrscheinlich overflow: hidden in den meisten Fällen würde vorschlagen.

1

Sie sollten ein Klasse Attribut verwenden.

IDs Attributwerte sollen unique within a page sein.

<div class="clear"> 
</div> 

.clear 
{ 
    clear: both; 
} 
2

Da "Duplicate ID clear".

Sie können nicht mehr als ein Element mit einer bestimmten ID auf der Website haben. Verwenden Sie stattdessen die Klasse.

.clear { 
    /*code here*/ 
} 

<div class="clear"></div> 

Klassen können beliebig oft wiederholt werden, IDs können jedoch nur einmal verwendet werden.