Christian Eyrich: mehrere id-Attribute in einem HTML-Element

'n Abend,

ich habe ein HTML-Element mit zwei id-Attributen:
<P id="eins" id="zwei">

#eins ist da um es per <a href="#eins"> anzusprechen, #zwei soll dazu dienen, es per CSS zu formatieren.

Nun reagiert jedoch nur das jeweils erste Attribut auf meine Bemühungen, nach umkehren der Reihenfolge dann halt #zwei. id="eins, zwei" geht auch nicht - geht wirklich nur ein Attribut pro Element?

Grüße,
Christian

  1. Hi,

    'n Abend,

    ich habe ein HTML-Element mit zwei id-Attributen:

    Ganz egal welches HTML-Element oder welches HTML-Attribut:
    jedes Attribut darf pro Element nur einmal vorkommen.

    <P id="eins" id="zwei">

    #eins ist da um es per <a href="#eins"> anzusprechen, #zwei soll dazu dienen, es per CSS zu formatieren.

    Du kannst "eins" für beide Zwecke benutzen, sowohl als Ziel eines Links als auch als Selektionskriterium für CSS.

    cu,
    Andreas

  2. Tach auch!

    Nun reagiert jedoch nur das jeweils erste Attribut auf meine Bemühungen, nach umkehren der Reihenfolge dann halt #zwei. id="eins, zwei" geht auch nicht - geht wirklich nur ein Attribut pro Element?

    Wozu auch? eine ID soll eine eindeutige Kennzeichnung eines Elements sein. E-I-N-D-E-U-T-I-G!
    Warum machst Du auch sowas??? Zur Not gibt's doch noch das name-Attribut...

    Gruss
    Lemmy
    http://www.olison.com

    --
    Nachts ist es kälter als draussen und durch den Wald kürzer als zu Fuss...
    1. Hi kleiner grüner,

      Wozu auch? eine ID soll eine eindeutige Kennzeichnung eines Elements sein. E-I-N-D-E-U-T-I-G!

      Autsch, ja, ich glaube, das habe ich verdient.

      Warum machst Du auch sowas???

      Die Eindeutigkeit einer id innerhalb eines Dokuments war mir bewusst, die id als eindeutige Kennzeichnung eines Elements nicht.
      Danke und ich werd's auch nie wieder tun und jetzt class für zwei verwenden.

      Bye,
      Christian

  3. Hallo Christian,

    ich habe ein HTML-Element mit zwei id-Attributen:
    <P id="eins" id="zwei">
    #eins ist da um es per <a href="#eins"> anzusprechen,

    ^ hast du dich hier nur verschreiben oder soll hier wirklich ein "a" hin?

    #zwei soll dazu dienen, es per CSS zu formatieren.

    entweder formatierst du <p> mit einer classe oder einfacher über die erste id.

    Nun reagiert jedoch nur das jeweils erste Attribut auf meine Bemühungen, nach umkehren der Reihenfolge dann halt #zwei. id="eins, zwei" geht auch nicht - geht wirklich nur ein Attribut pro Element?

    ja, der Validator spuckt als Fehler: 'Error: duplicate specification of attribute "ID"' aus

    gruß
    Tobias

    1. Hi Tobias,

      <P id="eins" id="zwei">
      #eins ist da um es per <a href="#eins"> anzusprechen,
                                 ^ hast du dich hier nur verschreiben oder soll hier wirklich ein "a" hin?

      Äh, doch, das soll so heißen. Warum?

      #zwei soll dazu dienen, es per CSS zu formatieren.
      entweder formatierst du <p> mit einer classe oder einfacher über die erste id.

      Die id kommt aber in jedem meiner Dokumente einmal vor, die Formattierung soll jedoch nur in einem greifen.

      ja, der Validator spuckt als Fehler: 'Error: duplicate specification of attribute "ID"' aus

      Jo, dann muß zwei wohl eine Klasse werden.

      Ciao und Danke,
      Christian

      1. hi

        Hi Tobias,

        <P id="eins" id="zwei">
        #eins ist da um es per <a href="#eins"> anzusprechen,
                                   ^ hast du dich hier nur verschreiben oder soll hier wirklich ein "a" hin?

        Äh, doch, das soll so heißen. Warum?

        mhh, bin wohl nicht mehr so ganz fit :) habe irgendwie gedacht da steht <a id="#eins">...
        mit <a href="#eins"> kannst du nicht ein <P id="eins"> ansprechen.
        Du willst vermutlich einen Anker auf den anfang von p setzen oder? Dann schau dir die Seite mal an: http://selfhtml.teamone.de/html/verweise/projektintern.htm#anker

        gruß
        Tobias [der jetzt ins bett geht:)]

        1. Hi,

          Äh, doch, das soll so heißen. Warum?
          mhh, bin wohl nicht mehr so ganz fit :) habe irgendwie gedacht da steht <a id="#eins">...
          mit <a href="#eins"> kannst du nicht ein <P id="eins"> ansprechen.

          Wie kommst Du darauf?

          Unter http://www.w3.org/TR/html401/struct/global.html#adef-id
          steht:
          The id attribute has several roles in HTML:

          * As a style sheet selector.
          --->* As a target anchor for hypertext links.
              * As a means to reference a particular element from a script.
              * As the name of a declared OBJECT element.
              * For general purpose processing by user agents (e.g. for identifying fields when extracting data from HTML pages into a database, translating HTML documents into other formats, etc.).

          Der Pfeil ist von mir eingefügt worden.

          cu,
          Andreas

  4. Hi,

    eine ID ist einmalig und jedes Element kann nur eine ID bekommen, genauso wie im gesamten Dokument diese ID nur einmal vergeben werden kann.

    Das sieht mir aus als wenn du einen Anker erstellen willst. Und dazu solltest du dann nochmals nachlesen, wie man das mit den Ankern macht.

    Per CSS kannst du auch eine Klasse ansprechen <p class="zwei"> oder direkt eine formatierung für alle Tags <p>. Oder, oder, oder.....

    Aufjedenfall ist das der falsche Weg.

    Gruß DerPilz

    1. Hallo auch,

      eine ID ist einmalig und jedes Element kann nur eine ID bekommen, genauso wie im gesamten Dokument diese ID nur einmal vergeben werden kann.

      Ersteres und letzteres war mir klar. Daß jedes Element nur eine ID haben kann, das habe ich jetzt befürchtet, aber ich wollte halt eine Bestätigung.

      Das sieht mir aus als wenn du einen Anker erstellen willst. Und dazu solltest du dann nochmals nachlesen, wie man das mit den Ankern macht.

      Wieso? Als Anker taugt was ich gemacht habe ja problemlos, aber halt nur die erste id.

      Per CSS kannst du auch eine Klasse ansprechen <p class="zwei"> oder direkt eine formatierung für alle Tags <p>. Oder, oder, oder.....

      Ja, ersteres werde ich jetzt dann machen.

      Vielen Dank,
      Christian

      1. Hi Christian,

        Wieso? Als Anker taugt was ich gemacht habe ja problemlos, aber halt nur die erste id.

        In Netscape 4 funktioniert ein id-Anker nicht, falls du das noch nicht weißt *und* es dir nicht egal ist. Zweiteres kann man heutzutage nicht mehr voraussetzen ;) Jedenfalls ist es ein Problem, wenn man XHTML 1.1 verwendet, denn da gibt es das name-Attribut nicht mehr.

        LG Roland