Hendrik: ID "....irgendwas...." bereits definiert. Was soll das?

Hey!

Auf meiner Homepage gibt es mehrere Boxen am linken und rechten Rand (Navigation, Besuchszähler, Umfrage...usw.). Nun habe ich diese Seite mit validome.org validieren lassen. Allerdings gibt er mir unzählige Fehlermeldungen aus (habe Transitional), dass die id bereits definiert ist...

Was soll ich da machen? Sieht eigentlich alles richtig aus, nur nerven mich diese Fehlermeldungen schon irgendwie! Muss ich vielleicht class statt id nehmen, da man id nur einmal innerhalb eines Dokuments benutzen darf?

Wie habt ihr das Problem gelöst? Könnt ihr mir dabei helfen?

Hendrik

--
-------------------
Zur Info: Ich habe leider nur PHP 4.4.2 und MySQL 4.1.20 zur Verfügung!
-------------------
ie:% fl:| br:> va:) ls:[ fo:) rl:( n4:° ss:| de:> js:| ch:? sh:( mo:) zu:)
SELFCode Decoder
  1. Hallo Hendrik,

    Was soll ich da machen? Sieht eigentlich alles richtig aus, nur nerven mich diese Fehlermeldungen schon irgendwie! Muss ich vielleicht class statt id nehmen, da man id nur einmal innerhalb eines Dokuments benutzen darf?

    Exakt.
    Du solltest wissen, dass eine ID nicht (nur) für CSS gedacht ist, eine ID heißt von der Bedeutung exakt:
    Dieses Element ist exakt nur EIN Mal im Dokument vorhanden und kann über eine EINDEUTIGE ID angesprochen werden.

    Du kannst IDs weiterhin verwenden, allerdings muss jedes Element eine andere ID haben. Um mehrere Elemente gleichzeitig anzusprechen, ist class geeignet.

    Grüße

    Marc Reichelt || http://www.marcreichelt.de/

    --
    Linux is like a wigwam - no windows, no gates and an Apache inside!
    Selfcode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)
    1. Hey!

      Exakt.
      Du solltest wissen, dass eine ID nicht (nur) für CSS gedacht ist, eine ID heißt von der Bedeutung exakt:
      Dieses Element ist exakt nur EIN Mal im Dokument vorhanden und kann über eine EINDEUTIGE ID angesprochen werden.

      Du kannst IDs weiterhin verwenden, allerdings muss jedes Element eine andere ID haben. Um mehrere Elemente gleichzeitig anzusprechen, ist class geeignet.

      Danke, ich wusste nie den Unterschied zwischen id und class! Jetzt weiß ich ihn :-)

      Hendrik

      --
      -------------------
      Zur Info: Ich habe leider nur PHP 4.4.2 und MySQL 4.1.20 zur Verfügung!
      -------------------
      ie:% fl:| br:> va:) ls:[ fo:) rl:( n4:° ss:| de:> js:| ch:? sh:( mo:) zu:)
      SELFCode Decoder
  2. Hallo Hendrik.

    Muss ich vielleicht class statt id nehmen, da man id nur einmal innerhalb eines Dokuments benutzen darf?

    Ganz genau.

    Einen schönen Sonntag noch.

    Gruß, Mathias

    --
    sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
    „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
    [HTML Design Constraints: Logical Markup]
  3. Hallo Hendrik,

    id darfst du nur einmal verwenden pro Seite, class beliebig oft. Was ist daran so schwer zu verstehen? Wenn du eine id mehrfach verwendest, dann musst du sie eindeutig durch class ersetzen.

    gruss,
    OhneName

  4. Hallo,

    Auf meiner Homepage gibt es mehrere Boxen am linken und rechten Rand (Navigation, Besuchszähler, Umfrage...usw.). Nun habe ich diese Seite mit validome.org validieren lassen. Allerdings gibt er mir unzählige Fehlermeldungen aus (habe Transitional), dass die id bereits definiert ist...

    Was soll ich da machen?

    Dafür sorgen dass eine ID nur einmal in der Seite vergeen ist.

    Sieht eigentlich alles richtig aus, nur nerven mich diese Fehlermeldungen schon irgendwie!

    Behebe die Fehler und es gibt keine Fehlermeldungen mehr.

    Muss ich vielleicht class statt id nehmen, da man id nur einmal innerhalb eines Dokuments benutzen darf?

    Wenn du die Antwort auf deine Probleme selber weißt, warum fragst du dann?

    Grüße
    Thomas

    1. Hey!

      Wenn du die Antwort auf deine Probleme selber weißt, warum fragst du dann?

      Ich war mir nicht ganz sicher und wollte noch mit dem "Dateiübergreifenden Suchen und Ersetzen" (eine _sehr_ praktische Funktion von Phase 5) warten, bis ich mir sicher bin!

      Danke!

      Hendrik

      --
      -------------------
      Zur Info: Ich habe leider nur PHP 4.4.2 und MySQL 4.1.20 zur Verfügung!
      -------------------
      ie:% fl:| br:> va:) ls:[ fo:) rl:( n4:° ss:| de:> js:| ch:? sh:( mo:) zu:)
      SELFCode Decoder
      1. Ich war mir nicht ganz sicher und wollte noch mit dem "Dateiübergreifenden Suchen und Ersetzen" (eine _sehr_ praktische Funktion von Phase 5) warten, bis ich mir sicher bin!

        Du hättest auch ein Backup der Dateien machen können, und es dann einfach mal ausprobieren (eine _sehr_ praktische Funktion deines Betriebssystems *g)

        Gruß,
        Arthur D.

        --
        >> So long, and thanks for all the fish. <<
        1. Hallo,

          Ich war mir nicht ganz sicher und wollte noch mit dem "Dateiübergreifenden Suchen und Ersetzen" (eine _sehr_ praktische Funktion von Phase 5) warten, bis ich mir sicher bin!

          Du hättest auch ein Backup der Dateien machen können, und es dann einfach mal ausprobieren (eine _sehr_ praktische Funktion deines Betriebssystems *g)

          Ja, aber wozu (in dem Fall)?

          Er kann genau so gut das Suchen und Erseten statt id="bla" -- > class="bla" auf class="bla" --> id="bla" anwenden. Oder die Sache in einer einzigen Seite/Datei ausprobieren.

          Grüße
          Thomas

          1. Hallo Thomas,

            Ja, aber wozu (in dem Fall)?

            Er kann genau so gut das Suchen und Erseten statt id="bla" -- > class="bla" auf class="bla" --> id="bla" anwenden. Oder die Sache in einer einzigen Seite/Datei ausprobieren.

            natürlich kann er das. Das mit dem Backup war auch nur ein Vorschlag...
            und wie ich finde, auch der bessere:
            1. bevor ich irgendeiner Anwendung erlaube, gleich mehrere Dateien zu ändern, mach ich lieber erstmal ein Backup. Und wenn ich dann eh schon ein Backup habe, kann ich das auch nutzen, um die überarbeiteten Datein zu überbraten... (ist dann einfacher, als noch mal alle Dateien rauszupicken, in denen was ersetzt werden soll)

            2. was ist, wenn er an der ein oder anderen Stelle bereits diese Klasse verwendet (dieses class also NIE ein id war)?

            Gruß,
            Arthur D.

            --
            >> So long, and thanks for all the fish. <<
  5. Hi,

    Was soll ich da machen? Sieht eigentlich alles richtig aus, nur nerven mich diese Fehlermeldungen schon irgendwie! Muss ich vielleicht class statt id nehmen, da man id nur einmal innerhalb eines Dokuments benutzen darf?

    Also wenn du eine ID mehrfach vergibst, obwohl du weißt, dass sie eindeutig sein musst, darfst du dich über diese Fehlermeldung eigentlich nicht wundern... Ob du statt dessen class verwenden musst, kommt ganz drauf an, was du machen willst:

    • sollen alle Elemente, die jetzt die selbe id haben, die selben style-Eigenschaften haben, kannst du class verwenden
    • willst du alle diese Elemente über einen einzigen Namen ansprechen können (wozu auch immer), dann nimm name

    Wie habt ihr das Problem gelöst? Könnt ihr mir dabei helfen?

    Welchers Problem?

    Gruß,
    Arthur D.

    --
    >> So long, and thanks for all the fish. <<
    1. Hallo Arthur,

      • willst du alle diese Elemente über einen einzigen Namen ansprechen können (wozu auch immer), dann nimm name

      Du weißt schon, dass das Attribut "name" im Unterschied zu "class" kein Universalattribut ist, nur bei ganz wenigen ausgesuchten Elementen erlaubt ist und z.B. auch was IMG-Elemente angeht, nur noch der Rückwärts-Kompatibilität wegen geduldet ist.

      http://www.w3.org/TR/html401/struct/objects.html#adef-name-IMG

      Die einzigen Elemente, die ich mir im Moment vorstellen kann, bei denen dieses Attribut auch für moderne Browser noch einen Sinn ergibt, sind INPUT-Elemente vom Type="radio".

      Gruß Gernot

      1. Hallo Gernot,

        Die einzigen Elemente, die ich mir im Moment vorstellen kann, bei denen dieses Attribut auch für moderne Browser noch einen Sinn ergibt, sind INPUT-Elemente vom Type="radio".

        OK. Gut, dass du mich, und vor allem Hendrik darauf aufmerksam machst... ich habe mal wieder schneller getippt, als gedacht... allerdings habe ich nicht behauptet, darin einen Sinn zu sehen :)

        Gruß,
        Arthur D.

        --
        >> So long, and thanks for all the fish. <<
        1. Hallo Arthur,

          OK. Gut, dass du mich, und vor allem Hendrik darauf aufmerksam machst... ich habe mal wieder schneller getippt, als gedacht... allerdings habe ich nicht behauptet, darin einen Sinn zu sehen :)

          Naja, wenn ich nochmal darüber nachdenke, muss ich gestehen, dass ich unlängst in einem Skript, bei dem es darum ging, verschiedene Versionen eines FORM-Elements dynamisch ein- und auszublenden, ganz froh war, mit dem Attribut "name" und der Methode document.getElementsByName() arbeiten zu können.

          Schade, dass getElementsByClassName() nicht als Methode des document-Objekts implementiert ist, was ich für viel wichtiger hielte.

          Mit Prototyping kann man das aber nachholen.

          http://getelementsby.com/

          Gruß Gernot

          1. Hi,

            Schade, dass getElementsByClassName() nicht als Methode des document-Objekts implementiert ist, was ich für viel wichtiger hielte.

            Allerdings... aber dann wäre das auch zu einfach *g

            Mit Prototyping kann man das aber nachholen.

            http://getelementsby.com/

            Interessanter Link, Danke.

            Gruß,
            Arthur D.

            --
            >> So long, and thanks for all the fish. <<
      2. Hallo Gernot.

        Die einzigen Elemente, die ich mir im Moment vorstellen kann, bei denen dieses Attribut auch für moderne Browser noch einen Sinn ergibt, sind INPUT-Elemente vom Type="radio".

        Und jede Art von Formularelement allgemein. Wie soll sonst name=value an ein verarbeitendes Script versandt werden?

        Einen schönen Sonntag noch.

        Gruß, Mathias

        --
        sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
        „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
        [HTML Design Constraints: Logical Markup]