Anton: id versus class

Hab folgendes im Netz gefunden:

"Mit dem id-Attribut können Elemente eindeutig bezeichnet werden; diese Eindeutigkeit bedingt, dass der Webautor den Bezeichner nur einmal pro Dokument verwenden darf."

In dem Zitat steht das der Autor den Bezeichner nur einmal pro Dokument verwenden DARF (respektive KANN; so hab ich es zumindest verstanden). Zum Testen hab ich das id-Attribut im Beispiel unten einfach mal zweimal verwendet. Seltsamerweise klappt das trotzdem. Das verwirrt mich jetzt total. Ich denke es ist nicht möglich den Bezeichner mehr als einmal zu verwenden. Anscheinend aber doch, denn sonst würden im Beispiel unten nicht beide Text blaue gefärbt. Im Beispiel funkgiert id im Prinzip wie ein class-Attribute.

  
 <head>  
  <style type="text/css">  
   #text {  
    color: blue;  
   }  
  </style>  
 </head>  
 <body>  
  <div id="content">  
   <p id="text">Text 1</p>  
   <h1 id="text">Text 2</h1>  
  </div>  
 </body>  

  1. <head>
      <style type="text/css">
       #text {
        color: blue;
       }
      </style>
    </head>
    <body>
      <div id="content">
       <p id="text">Text 1</p>
       <h1 id="text">Text 2</h1>
      </div>
    </body>

      
    Okay, es funktioniert vielleicht mit CSS, aber spätestens wenn du Javascript benutzt und z.B. mit getElementById("text") auf das Element zugreifen willst, wirst du Probleme bekommen. Wenn du deinen Code mal in den [W3C Validator](http://validator.w3.org/#validate_by_input) einfügst, wirst du sehen, dass er dir auch sagt, dass du id's nur einmal verwenden soll.  
      
    Also, merk dir einfach: wenn das Element nur einmal auf der ganzen Seite vorkommt, benutze dafür eine ID. Ansonsten Klassen, um unnötige Fehler zu vermeiden.
    
  2. Tachchen!

    Class funktioniert auch und ist valide. ;-)

    Deine Version ist lediglich falsch ... also w3c-illegal.
    Einen falschen Ausweis vorlegen klappt auch oft, aber niemand kann
    dir sagen, wie lange.

    Gruß

    Die schwarze Piste

    --
    ie:{ fl:( br:^ va:) ls:# fo:) rl:( n4:& ss:{ de:] js:| ch:? mo:) zu:$
    unbezahlbare Fotografie
  3. @@Anton:

    Zum Testen hab ich das id-Attribut im Beispiel unten einfach mal zweimal verwendet. Seltsamerweise klappt das trotzdem.

    Es ist gut, dass Browsern fehlertolerant sind.

    Es ist schlecht, sich auf die Fehlertoleranz von Browsern zu verlassen.

    Und „ob ihr recht habt oder nicht, sagt euch gleich das Licht“.

    Das verwirrt mich jetzt total. Ich denke es ist nicht möglich den Bezeichner mehr als einmal zu verwenden.

    Es ist nicht erlaubt. Genausowenig wie zwei verschiedene Autos dasselbe Kennzeichen haben können.

    Live long and prosper,
    Gunnar

    --
    Das einzige Mittel, den Irrtum zu vermeiden, ist die Unwissenheit. (Jean-Jacques Rousseau)
  4. Hallo Anton!

    In dem Zitat steht das der Autor den Bezeichner nur einmal pro Dokument verwenden DARF (respektive KANN; so hab ich es zumindest verstanden).

    Wie kann man den Satz "Du darfst es nicht" falsch verstehen??
    Du darfst keine Leute umbringen.
    Du darfst nicht mit Drogen handeln.
    Du darfst im Zoo keine Tiere füttern.

    Mir impliziert das ein Verbot, keine Auswahl ob ich es nicht trotzdem mal versuchen könnte. Wenn das bei dir anders ist, ist in der Erziehung was falsch gelaufen ;)

    Zum Testen hab ich das id-Attribut im Beispiel unten einfach mal zweimal verwendet. Seltsamerweise klappt das trotzdem.

    Es klappt nicht. "Alles oder nichts" fürt eine ID ad absurdum. Analog könnte der Browser genauso gut nichts einfärben. Der Effekt wäre derselbe.

    Grüße, Matze

    1. Hallo,

      Wie kann man den Satz "Du darfst es nicht" falsch verstehen??
      Mir impliziert das ein Verbot, keine Auswahl ob ich es nicht trotzdem mal versuchen könnte.

      ich sehe das anders: Wenn es heißt, "du darfst nicht", ich möchte aber trotzdem, dann bedeutet das für mich: Was wäre, wenn ich mich über dieses Verbot hinwegsetze? Hat jemand dadurch Schaden oder Nachteile? Habe ich selbst dadurch Nachteile? Drohen mir Folgen, die ich nicht akzeptieren möchte? Wenn die Antwort auf diese drei Frage dreimal "Nein" lautet, dann ist meine Schlussfolgerung: Mach's trotz des Verbots.

      Wenn das bei dir anders ist, ist in der Erziehung was falsch gelaufen ;)

      Nein, warum? Meine Eltern haben mich darauf sensibilisiert, das Für und Wider abzuwägen. Look, that's why there's rules: That you think before you break'em.

      So long,
       Martin

      --
      why the heck do you jerk think, that wir ein doppelposting nicht bemerken, wenn you zwischendurch the sprache wechselst?
        (wahsaga)
      1. Wenn die Antwort auf diese drei Frage dreimal "Nein" lautet, dann ist meine Schlussfolgerung: Mach's trotz des Verbots.

        Und welches Verbot sollte es sein, dass dich 3 mal mit "nein" antworten lässt?

        Nein, warum? Meine Eltern haben mich darauf sensibilisiert, das Für und Wider abzuwägen. Look, that's why there's rules: That you think before you break'em.

        In der Regel haben Standards einen gewissen Nutzen und man hat sich dabei einige Gedanken gemacht. Ein Standard unterwirft sich dabei bestimmten Regeln. Die zu brechen bringt sicher keinen um, es bleibt aber ein Fehler. Einer waschechten Schlampe ist das natürlich egal. (nicht auf dich bezogen, eher als Metapher)

        Grüße, Matze

        1. Hallo,

          Wenn die Antwort auf diese drei Frage dreimal "Nein" lautet, dann ist meine Schlussfolgerung: Mach's trotz des Verbots.
          Und welches Verbot sollte es sein, dass dich 3 mal mit "nein" antworten lässt?

          zum Beispiel: "Du darfst die Straße hier nicht überqueren".
          Oder: "Ausgang nur durch die Kassenzone".
          Oder auch: "For indoor use only".

          Nein, warum? Meine Eltern haben mich darauf sensibilisiert, das Für und Wider abzuwägen. Look, that's why there's rules: That you think before you break'em.
          In der Regel haben Standards einen gewissen Nutzen

          In der Regel ja. Heutzutage entstehen aber immer mehr Vorschriften, Regeln, Normen oder Gepflogenheiten, die bei genauer Betrachtung eigentlich nur am Stammtisch bei 2.4 Promille aufwärts entstanden sein können.

          Ein Standard unterwirft sich dabei bestimmten Regeln. Die zu brechen bringt sicher keinen um, es bleibt aber ein Fehler.

          Ja, sicher - aber das ist mir völlig schnurz, solange dabei niemand einen wirtschaftlichen, physischen oder sozialen Nachteil hat. Regeln nur um der Regeln willen finde ich hirnrissig, und da setze ich mich dann auch gern darüber hinweg.

          So long,
           Martin

          --
          Die beste Informationsquelle sind Leute, die jemand anderem versprochen haben, nichts weiterzuerzählen.
            (alte Journalistenweisheit)
          1. Hallo Martin!

            Ich sag ja nicht, dass du dein Hirn abschalten und alles in einer bestimmten Art tun sollst, nur weil es irgendwo steht.

            Wahrscheinlich kannst du es so sehen, dass die Wahrscheinlichkeit dass jemand oder etwas Schaden, in welcher Form auch immer, nimmt steigt, je öfter du bewusst gegen eine Regel verstößt.

            Das ist sogar ganz realitätsnah. Sicher hält man sich z.B. nicht immer an jedes Gesetz (z.B. Straße hast du gefälligst an Punkt X zu überqueren) und der einzige Grund warum es manchmal trotzdem macht, ist die "Angst" vor der Strafe, nicht den direkten (möglichen) Folgen seines Handelns.

            Wenn man ganz weit geht. Könnte man die Regel selbst verantwortlich machen für den Verstoß. Wenn eine Regel gegen den gesunden Menschenverstand verstößt, weil ich z.B. auf dem kürzesten Weg von A nach B will und nicht erst in 200m über die Straße, dann ist das einfach Blödsinn. In Frankreich bleibt auch keiner an einer roten Ampel stehn wenn weit und breit kein anderer zu sehn ist. Typisch deutscher Regulierungswahn.

            Sich an sinnvolle Regeln zu halten, kann allerdings auch sehr hilfreich sein.
            Es gibt dann normalerweise auch keine Begründung diese anzuzweifeln.

            Grüße, Matze

    2. In dem Zitat steht das der Autor den Bezeichner nur einmal pro Dokument verwenden DARF (respektive KANN; so hab ich es zumindest verstanden).

      Wie kann man den Satz "Du darfst es nicht" falsch verstehen??
      Du darfst keine Leute umbringen.
      Du darfst nicht mit Drogen handeln.
      Du darfst im Zoo keine Tiere füttern.

      Zu MUST, MUST NOT, MAY und MAY NOT gibt es eine RFC
      Was man nicht darf oder nicht muss, darüber streiten Sich Engländer und Deutsche.

      Insofern ist es gesund zu sagen, was man darf oder muss.
      Über das Gegenteil dessen soll man schweigen.

      mfg Beat

      --
      Woran ich arbeite:
      X-Torah
      ><o(((°>           ><o(((°>
         <°)))o><                     ><o(((°>o
      1. Insofern ist es gesund zu sagen, was man darf oder muss.
        Über das Gegenteil dessen soll man schweigen.

        Dann so ;)

        Du darfst keine Leute nicht umbringen.
        Du darfst nicht nicht mit Drogen handeln.
        Du darfst im Zoo keine nicht Tiere füttern.

        SCNR^^

  5. Hi,

    In dem Zitat steht das der Autor den Bezeichner nur einmal pro Dokument verwenden DARF (respektive KANN; so hab ich es zumindest verstanden). Zum Testen hab ich das id-Attribut im Beispiel unten einfach mal zweimal verwendet. Seltsamerweise klappt das trotzdem.

    Ob etwas "klappt", hat noch *nie* etwas darueber ausgesagt, ob es *korrekt* ist.

    Das verwirrt mich jetzt total. Ich denke es ist nicht möglich den Bezeichner mehr als einmal zu verwenden.

    Es ist nicht *erlaubt* - Punkt, Basta, Ende-aus.

    Anscheinend aber doch, denn sonst würden im Beispiel unten nicht beide Text blaue gefärbt.

    Du ziehst unguletige Schluesse, siehe oben.

    MfG ChrisB

    --
    „This is the author's opinion, not necessarily that of Starbucks.“
    1. Hallo

      Du ziehst unguletige Schluesse, siehe oben.

      Sowas kommt von sowas und in diesem Fall von deiner Umlautabstinenz. *scnr*

      Tschö, Auge

      --
      Die deutschen Interessen werden am Liechtenstein verteidigt.
      Veranstaltungsdatenbank Vdb 0.2
  6. Dein Browser zeigt es deshalb so an, wie du willst, weil er eine gewisse Fehlertoleranz hat. Wenn ein_e Grenzpolizist_in zwei Menschen mit *demselben* Ausweis passieren lässt, heißt das ja noch lange nicht, dass die beiden denselben Ausweis haben *dürfen*.

    Oder: Während deine Identität (ID) nur du selbst haben kannst (analog zu <p> oder <h1>), kannst du eine ganzen Gruppe von Menschen angehören, bspw. einer Klasse (class).

  7. <head>
      <style type="text/css">
       #text {
        color: blue;
       }
      </style>
    </head>
    <body>
      <div id="content">
       <p id="text">Text 1</p>
       <h1 id="text">Text 2</h1>
      </div>
    </body>

    In deinem einfachen CSS Beispiel kann es ja noch "klappen", aber sobald du JS benutzt, und den HTML Elementen neue Werte zuweist kann es zu Problemen führen, wenn sich die Elemente unterscheiden (z.B. input und select).