mipraso: Überprüfung mit HTML Validator ergibt Warnung

Hallo Forum,

ich versuche gerade meine Seiten auf HTML 4.01 Transitional zu prüfen und anzupassen. Jetzt gibt es eine Fehlermeldung die sich nicht beseiteigen lässt. Goolge und die Suche hier haben bis jetzt nicht zum Erfolg geführt. Möglich das mir hier jemand helfen kann.

Hier erst einmal die SnipSets:

In einer externen style.CSS gibt es diese Einträge:

--------

body,div { foobar }

td,tr,table { foobar }

h1 { foobar }
....
h5 { foobar }

#Steuerung { color:#000000; font-family:arial; font-size:10pt; font-weight:normal; }

....

-----------

Wichtig ist hier nur die letzte Zeile. Eingetragen habe ich das nach dem Bsp. von hier: http://selfhtml.teamone.de/css/eigenschaften/schrift.htm#font_family
Aus dem Bereich: "font (Schrift allgemein)"

Browsertechnisch klappt das mit der html Datei ohne Probleme:

<td nowrap align="left" style="background-image:url(../images/linie.jpg)"><p id="Steuerung">Text</p></td>

Dann kommt etwas später:

<td nowrap align="left" style="background-image:url(../images/linie.jpg)"><p id="Steuerung">Text1</p></td>

und weiter:

<td nowrap align="left" style="background-image:url(../images/linie.jpg)"><p id="Steuerung">Text2</p></td>

Ab dieser Zeile stört sich der Validator dann immer an:

... ./images/linie.jpg)"><p id="Steuerung">Text1</p></td>
                                 ^
Error: ID STEUERUNG already defined

Umfangreiche Recherchen bei W3C habe bis jetzt nur ergeben, dass die id unique sein muss. Habe ich soweit auch verstanden. Nur wie funktioniert es richtig? Klar, könnte ich auch mit "class" arbeiten, nur erschien mir das mit der Def. über # in der CSS der einfachste Weg zu sein.

Wer kennt den richtigen Weg?

Bin für jeden Tipp dankbar.

  1. Hallo Mipraso,

    #Steuerung { color:#000000; font-family:arial; font-size:10pt; font-weight:normal; }

    Wie Du später schreibst: Das ist eine ID.

    Ab dieser Zeile stört sich der Validator dann immer an:
    ... ./images/linie.jpg)"><p id="Steuerung">Text1</p></td>
    Error: ID STEUERUNG already defined

    Umfangreiche Recherchen bei W3C habe bis jetzt nur ergeben, dass die id unique sein muss.

    Ja, und genauso ist es. Eine ID darf innerhalb eines HTML-Dokuments nur 1 x vorkommen. Identitätsdiebstahl gibts vielleicht in der Wirklichkeit, in HTML jedenfalls wird dieses Vergehen vom Validator sofort entdeckt.

    Klar, könnte ich auch mit "class" arbeiten, nur erschien mir das mit der Def. über # in der CSS der einfachste Weg zu sein.

    Vielleicht einfach, jedenfalls nicht korrekt.

    Verwende Klassen immer dann, wenn Du innerhalb eines Dokuments mehreren Elemente die gleichen CSS-Eigenschaften verpaßen willst.

    Beste Grüße
    Viennamade

    1. Hallo Mipraso,

      #Steuerung { color:#000000; font-family:arial; font-size:10pt; font-weight:normal; }
      Wie Du später schreibst: Das ist eine ID.

      Ab dieser Zeile stört sich der Validator dann immer an:
      ... ./images/linie.jpg)"><p id="Steuerung">Text1</p></td>
      Error: ID STEUERUNG already defined

      Umfangreiche Recherchen bei W3C habe bis jetzt nur ergeben, dass die id unique sein muss.
      Ja, und genauso ist es. Eine ID darf innerhalb eines HTML-Dokuments nur 1 x vorkommen. Identitätsdiebstahl gibts vielleicht in der Wirklichkeit, in HTML jedenfalls wird dieses Vergehen vom Validator sofort entdeckt.

      Klar, könnte ich auch mit "class" arbeiten, nur erschien mir das mit der Def. über # in der CSS der einfachste Weg zu sein.
      Vielleicht einfach, jedenfalls nicht korrekt.

      Verwende Klassen immer dann, wenn Du innerhalb eines Dokuments mehreren Elemente die gleichen CSS-Eigenschaften verpaßen willst.

      Werde ich jetzt auch machen, wenn ich das Bsp. von selfhtml mal zitieren darf:

      <html><head><title>font</title>
      <style type="text/css">
      #Text01 { font:bold 12pt Times; }
      #Text02 { font:italic 1cm Helvetica; }
      #Text03 { font:small-caps 14pt Verdana; }
      </style>
      <body bgcolor="#FFFFFF" text="#000000">

      <p id="Text01">Beispieltext mit Schrift: bold 12pt Times</p>
      <p id="Text02">Beispieltext mit Schrift: italic 1cm Helvetica</p>
      <p id="Text03">Beispieltext mit Schrift: small-caps 14pt Verdana</p>

      </body></html>

      Dann vermisse ich dort den Hinweis, dass das zum Fehler führt:

      <html><head><title>font</title>
      <style type="text/css">
      #Text01 { font:bold 12pt Times; }
      #Text02 { font:italic 1cm Helvetica; }
      #Text03 { font:small-caps 14pt Verdana; }
      </style>
      <body bgcolor="#FFFFFF" text="#000000">

      <p id="Text01">Beispieltext mit Schrift: bold 12pt Times</p>
      <p id="Text02">Beispieltext mit Schrift: italic 1cm Helvetica</p>
      <p id="Text03">Beispieltext mit Schrift: small-caps 14pt Verdana</p>

      <p id="Text01">Beispieltext mit Schrift: bold 12pt Times</p>
      <p id="Text02">Beispieltext mit Schrift: italic 1cm Helvetica</p>
      <p id="Text03">Beispieltext mit Schrift: small-caps 14pt Verdana</p>

      </body></html>

      Hier wird der Validator ab dem zweiten Auftauchen von <p id="Text01">
      eine Warnung ausgeben.

      Michael

      1. Hi,

        Werde ich jetzt auch machen, wenn ich das Bsp. von selfhtml mal zitieren darf:

        [...]

        Dann vermisse ich dort den Hinweis, dass das zum Fehler führt:

        Du kannst doch nicht erwarten, daß jedes Beispiel alle nur denkbaren Fehler, die durch Erweiterung/Änderung verursacht werden können, angibt. Im Gegenteil wird vorausgesetzt, daß man sich vorher an geeigneter Stelle in der Dokumentation informiert, was die Elemente bedeuten und wie sie einzusetzen sind. Oder hast Du bei der Erklärung zu "ID" einen solchen Hinweis vermißt?

        Freundliche Grüße
        Ingo

        1. Hallo,

          da ich selfhtml und W3C als Dokumentation benutze, ging ich davon aus das dort ein Hinweis zu finden ist, das sich ein #XYZ und ein .UVW im CSS und ein <p id="XYZ"> und <p class="UVW> im html anders verhalten.

          Hätte bei der Beschreibung der ID gestanden, das diese nur einmal im html benutzen kann, hätte ich es ja nicht damit versucht. Es war natürlich einfacher "id" einzutippen als "class".

          Würde im selfhtml unter Bemerkung/Hinweis zur "id" stehen:

          Die ID darf in einem html Dokument nur einmalig notiert werde.

          Ich verlange natürlich nicht, das alle Fehler dort verzeichnet sind, dies erscheint mir auch nicht möglich.

          Egal, hier wurde mir geholfen, Fehler erkannt und beseitigt. Habe was gelernt.

          Michael

          Du kannst doch nicht erwarten, daß jedes Beispiel alle nur denkbaren Fehler, die durch Erweiterung/Änderung verursacht werden können, angibt. Im Gegenteil wird vorausgesetzt, daß man sich vorher an geeigneter Stelle in der Dokumentation informiert, was die Elemente bedeuten und wie sie einzusetzen sind. Oder hast Du bei der Erklärung zu "ID" einen solchen Hinweis vermißt?

          1. Hallo Michael,

            Würde im selfhtml unter Bemerkung/Hinweis zur "id" stehen:
            Die ID darf in einem html Dokument nur einmalig notiert werde.

            Zitat aus dem HTML Kapitel zu SELFHTML, Abschnitt Universalattribute
            über die ID:
              »in dateiweit eindeutiger Bezeichnername für ein Element - wenn Sie Elemente
              damit auszeichnen, sollten Sie keinen id-Namen innerhalb einer HTML-Datei
              mehr als einmal vergeben.«
              (http://selfhtml.teamone.de/html/attribute/allgemeine.htm#uebersicht)

            Zitat aus dem CSS Kapitel zu SELFHTML, dort wo das Benutzen von IDs in
            CSS vorgestellt wird:
              »So wie Sie Formate für Klassen definieren können, die in HTML mit dem
              Kapitel Universalattribut class= angesprochen werden, können Sie auch
              Formate definieren, die über das Universalattribut id= angesprochen werden.
              Da die Wertzuweisung an ein solches Attribut ein dokumentweit eindeutiger
              Name sein sollte, handelt es sich also einfach um eine zentrale
              Formatdefinition für das eine Element mit diesem id-Namen.«
              (http://selfhtml.teamone.de/css/formate/zentrale.htm#individualformate)

            Gut, man könnte das in beiden etwas mehr betonen, beispielsweise das
            »sollte« durch ein »muß« ersetzen, aber man kann sich doch nicht beschweren,
            daß an den Stellen an den die Benutzung des ID-Attributes in HTML und in
            CSS nicht erklärt sei?

            Egal, hier wurde mir geholfen, Fehler erkannt und beseitigt. Habe was
            gelernt.

            Was auch immer das wichtigste ist. :-)

            Tim

            1. Hallo Tim,

              da ich "nur" die Suchfunktion und mein menschliches Verständniss zur Suche hier bei selfhtml und W3C nutzte, habe ich das, was du gefunden hast leider nicht gefunden. Habe es aber gerade studiert und auch verstanden. 1.788 Augen und 894 Hirne sehen und finden mehr als zwei Augen und ein Hirn. ;-)

              Daher, danke für die Referenzen.

              Michael

  2. hi,

    In einer externen style.CSS gibt es diese Einträge:
    body,div { foobar }

    Naja, "foobar" wird ja wohl kaum drinstehen.

    Ab dieser Zeile stört sich der Validator dann immer an:
    ... ./images/linie.jpg)"><p id="Steuerung">Text1</p></td>
    Error: ID STEUERUNG already defined

    Womit er ja durchaus recht hat. Und die Meldung tritt bestimmt schon etwas weiter oben auf.

    Der Grund: eine "ID" darf halt nur einmal verwendet werden. Sonst wärs ja keine "Identifikation" mehr. Nenne das Ding meinshalb "Steuerung2" oder ähnlich, und schon ist alles gut.

    Grüße aus Berlin

    Christoph S.

    1. hi,

      In einer externen style.CSS gibt es diese Einträge:
      body,div { foobar }

      Naja, "foobar" wird ja wohl kaum drinstehen.

      Nein, steht natürlich nicht drin ;-)
      Ich wollte nur nicht meine ganze CSS hier posten, hielt ich für nicht wichtig.

      Ab dieser Zeile stört sich der Validator dann immer an:
      ... ./images/linie.jpg)"><p id="Steuerung">Text1</p></td>
      Error: ID STEUERUNG already defined

      Womit er ja durchaus recht hat. Und die Meldung tritt bestimmt schon etwas weiter oben auf.

      Nein, sie tritt erst beim ZWEITEN Auftauchen von <p id="Steuerung">
      im html auf.

      Der Grund: eine "ID" darf halt nur einmal verwendet werden. Sonst wärs ja keine "Identifikation" mehr. Nenne das Ding meinshalb "Steuerung2" oder ähnlich, und schon ist alles gut.

      Hm, das ist nicht die Lösung, da in dem Dokument das <p id="Steuerung"> ca. 150 mal auftaucht, würde ja bedeuten das ich die alle einzeln bennen müsste.

      Ich will in einer Tabelle ja nur bestimmte Zelleninhalte in einer anderen Farbe, Schriftart und Größe darstellen.

      Weil das hier:

      <font size="+1" color="#FF0000" face="COURIER NEW">Text</font>

      wird wiederum vom "html tidy" als "unsauber" bemängelt.

      Michael

      1. hallo,

        Der Grund: eine "ID" darf halt nur einmal verwendet werden. Sonst wärs ja keine "Identifikation" mehr. Nenne das Ding meinshalb "Steuerung2" oder ähnlich, und schon ist alles gut.
        Hm, das ist nicht die Lösung, da in dem Dokument das <p id="Steuerung"> ca. 150 mal auftaucht, würde ja bedeuten das ich die alle einzeln bennen müsste.

        Jawohl, genau das mußt du wohl tun, wenn du überhaupt "ID" verwenden möchtest. Der Validator wird immer dann meckern, wenn eine identische ID ein zweitesmal auftaucht.

        Ich will in einer Tabelle ja nur bestimmte Zelleninhalte in einer anderen Farbe, Schriftart und Größe darstellen.

        Das kannst du mit CSS erledigen, indem du Klassen definierst.

        <font size="+1" color="#FF0000" face="COURIER NEW">Text</font>
        wird wiederum vom "html tidy" als "unsauber" bemängelt.

        Da hat Tidy absolut recht. <font> gilt als "deprecated" in HTML 4. Schriftformatierug machst du mit CSS.

        Grüße aus Berlin

        Christoph S.

  3. Hallo,

    Umfangreiche Recherchen bei W3C habe bis jetzt nur ergeben, dass die id unique sein muss. Habe ich soweit auch verstanden. Nur wie funktioniert es richtig? Klar, könnte ich auch mit "class" arbeiten, nur erschien mir das mit der Def. über # in der CSS der einfachste Weg zu sein.

    dann ersetzte # doch einfach durch einen Punkt und schon sprichst du die Klasse "Steuerung" an ...

    Grüße aus Nürnberg
    Tobias

    --
    Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
    1. Hallo,

      dann ersetzte # doch einfach durch einen Punkt und schon sprichst du die Klasse "Steuerung" an ...

      Werde ich wohl auch machen, auch wenn "class" mehr zu tippen ist als "id". ;-)

      Michael

  4. Danke an Alle, die mir Rat und Tat geholfen haben.
    Es werden jetzt keine Fehler mehr gemeldet.

    Michael