Warum existieren IDs?

7

Alles, was Sie mit IDs tun können, können Sie mit Klassen tun.

Warum gibt es dann ein ID-Attribut?

Ja, die ID ist eindeutig, aber eine Klasse kann auch einzigartig sein ...

    
Alex 21.06.2011, 03:15
quelle

6 Antworten

8

Erstens, von der HTML 4.01 Spezifikation Abschnitt 7.5 .2 :

  

id = Name

     
    

Dieses Attribut weist einem Element einen Namen zu. Dieser Name muss in einem Dokument eindeutig sein.

  
     

class = cdata-Liste

     
    

Dieses Attribut weist einem Element einen Klassennamen oder eine Gruppe von Klassennamen zu. Eine beliebige Anzahl von Elementen kann denselben Klassennamen oder dieselben Klassen zugewiesen werden. Mehrere Klassennamen müssen durch Leerzeichen getrennt sein.

  

Ich verstehe, dass der Sinn Ihrer Frage darin besteht, dass Sie durch absichtliche Auswahl eindeutiger Klassennamen die Funktionalität, die von ID-Attributen gegeben wird, simulieren können, wodurch das Attribut id möglicherweise überflüssig wird. Nun, ich kann mir zumindest eine Sache vorstellen, die man nur mit mit IDs machen kann; Verknüpfen eines <label> -Elements mit einem Formularelement mithilfe des Attributs for . zB:

%Vor%

Dies ist eine gute Vorgehensweise aus Gründen der Barrierefreiheit. Wenn Sie <label for="id"> mit Checkbox- oder Radio-Button-Elementen verwenden, erhalten Sie den zusätzlichen Bonus, dass die Labels anklickbar sind. zB:

%Vor%     
Asaph 21.06.2011, 03:19
quelle
11

Das DOM existiert nicht nur für Styling-Elemente - Elemente können auch manipuliert werden (typischerweise über Javascript), und die Auswahl von Elementen nach ID ist in der Regel viel effizienter als die Auswahl nach Klassen.

    
Christopher Armstrong 21.06.2011 03:17
quelle
4

class ist für eine Menge ähnlicher Elemente ID ist einzigartig für ein Element. Wenn Sie alle, sagen wir, Checkboxen ändern möchten, verwenden Sie die Klasse. Wenn Sie etwas mit einem bestimmten Kontrollkästchen tun möchten, verwenden Sie id.

    
MK. 21.06.2011 03:17
quelle
3

Dieser tizag Artikel könnte es besser erklären. In jedem Standard in HTML haben class und id unterschiedliche Funktionen. Zum Beispiel wird ein id (normalerweise) nur einmal verwendet, um ein eindeutiges Element zu bezeichnen. class wird (wieder normalerweise) verwendet, um eine Gruppe von Elementen zu definieren.

    
esqew 21.06.2011 03:18
quelle
3
  

Alles, was Sie mit IDs tun können, können Sie mit Klassen tun.

Eigentlich nicht. Wenn Sie einem Element eine ID geben, kann dies das Ziel eines Links sein (zB http://www.example.com/page#foo bringt Sie zum Element mit id="foo" auf page ; dies wird jetzt gegenüber dem alten <a name="foo"> -Mechanismus bevorzugt.)

  

Warum gibt es dann ein ID-Attribut?

Weil sie ganz anderen Zwecken dienen. Das obige Beispiel ist nur eine der unzähligen Anwendungen, auf die eine eindeutige ID für den Inhalt einer Seite gesetzt werden kann. Ein eindeutiger Bezeichner ist wichtig für Beziehungen zwischen Dingen.

  

Ja, die ID ist eindeutig, aber eine Klasse kann auch einzigartig sein ...

Kann sein sein. Wenn ich dem Browser mit dem Element "foo" id aufrufe, sobald er dieses Element gefunden hat, kann es aufhören zu suchen. Wenn ich sage, dass ich Elemente mit der Klasse "bar" möchte, muss es das gesamte DOM durchsuchen, um sie zu finden.

    
T.J. Crowder 21.06.2011 03:29
quelle
2

Von Ссылка :

  

Das ID-Attribut hat mehrere Rollen in HTML:

     
    

Als Stylesheet-Selektor.

         

Als Zielanker für Hypertext-Links.

         

Als Mittel zum Verweis auf ein bestimmtes Element aus einem Skript.

         

Als Name eines deklarierten OBJECT-Elements.

         

Für die allgemeine Verarbeitung durch Benutzeragenten (z. B. zum Identifizieren von Feldern beim Extrahieren von Daten aus HTML-Seiten in eine Datenbank, Übersetzen von HTML-Dokumenten in andere Formate usw.).

  
     

Das Klassenattribut hingegen weist einem Element einen oder mehrere Klassennamen zu; Man kann sagen, dass das Element zu diesen Klassen gehört. Ein Klassenname kann von mehreren Elemeinstanzen gemeinsam genutzt werden. Das Klassenattribut hat mehrere Rollen in HTML:

     
    

Als Stylesheet-Selektor (wenn ein Autor Stilinformationen einer Gruppe von Elementen zuweisen möchte).

         

Für die allgemeine Verarbeitung durch Benutzeragenten.

  

Ich kann keinen Hinweis darauf finden, wann das class -Attribut zur HTML-Spezifikation hinzugefügt wurde, aber ich kann aus eigener Erfahrung sagen, dass ich das id -Attribut viel weiter zurückbekommen habe (besonders für die Formularverarbeitung) ).

    
ETWW-Dave 21.06.2011 03:25
quelle

Tags und Links