Janine: Verständnisproblem

Hi,
in selfhtml steht

Individualformate definieren

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.

Ist die Definition mit einer ID nicht wie wenn ich eine Klasse definiere und nur einmal anspreche?

Mir ist nicht klar, wann ich das eine und wann das andere verwende.

Hat jemand ein kurzes, verstänliches Beispiel für die beiden Varianten?

  1. Hallo!

    Beispiel Formular:

    <form action="soundso.cgi" method="post">
    <label for="nameIn">Name:</label><input type="text" name="name" id="nameIn" class="input">
    <label for="textIn">Text:</label><textarea id="textIn" class="input"></textarea>
    (...)
    </form>

    Hier wird mit id einem Element ein fester, eindeutiger Name vergeben, auf den dann z.B. im label-Tag Bezug genommen wird. Hier wäre es sinnlos bzw. falsch, wenn es mehrere Elemente mit der id "textIn" geben würde.

    Die Klasse kann hingegen jedem Element zugewiesen werden, so das man dann in der css-Definition einfach über die Definitionen für '.input' diesen Elementen ein einheitliches Äußeres verpassen kann.

    Grüße, Skrilax

    1. Beispiel Formular:

      <form action="soundso.cgi" method="post">
      <label for="nameIn">Name:</label><input type="text" name="name" id="nameIn" class="input">
      <label for="textIn">Text:</label><textarea id="textIn" class="input"></textarea>
      (...)
      </form>

      Obigen Zusammenhang habe ich begriffen.
      Darauf gekommen bin ich allerdings beim Lesen der CSS-Kapitel in Selfhtml.
      Im nachfolgenden Beispiel habe ich daraus ein Beispiel zusammengestöpselt.
      Und da ist mir nicht klar, wann ich die eine, wann die andere Variante verwende.

        
      <html>  
      <head>  
      <title>Titel der Datei</title>  
      <style type="text/css">  
      div#Titel {  
         font-size:2em;  
         color:green;  
      }  
        
      div.hinterlegt {  
         font-size:2em;  
         color:green;  
      }  
        
      </style>  
      </head>  
      <body>  
      <div id="Titel">formatiert mit id</div>  
      <div class="hinterlegt">formatiert mit class</div>  
        
      </body>  
      </html>  
      
      

      Das Ergebnis ist in beiden Fällen gleich.

      1. Moin

        <html>
        <head>
        <title>Titel der Datei</title>
        <style type="text/css">
        div#Titel {
           font-size:2em;
           color:green;
        }

        div.hinterlegt {
           font-size:2em;
           color:green;
        }

        </style>
        </head>
        <body>

        <div id="Titel">mit id ist einmalig, sollte aber hier eher ein h1 sein</div>
         <div class="hinterlegt">mit class</div>
         <div class="hinterlegt">auch mit class</div>
         <div class="hinterlegt">auch mit class</div>
         <div class="hinterlegt">auch mit class, wobei "hinterlegt" ein schlechter Klassenname ist, denn wenn du das CSS mal änderst könnte "hinterlegt" plötzlich gar nicht mehr hinterlegt sein, sondern vielleicht blau umrandet</div>

        </body>
        </html>

          
          
        Gruß  
        rfb
        
        -- 
        Man kann einen Menschen nichts lehren, man kann ihm nur helfen, es selbst zu entdecken.  
        (Galileo Galilei)
        
        1. Ja, ich bin hartnäckig!

          <div id="Titel">mit id ist einmalig, sollte aber hier eher ein h1 sein</div>

          stör dich nicht an den Begriffen, könnte auch id="meintext" heißen

          <div class="hinterlegt">mit class</div>
          <div class="hinterlegt">auch mit class</div>
          <div class="hinterlegt">auch mit class</div>

          Auch das ist mir klar, aber ich habe ja auch geschrieben
          'wenn ich eine Klasse definiere und nur    einmal    anspreche'

          1. Ich fürchte, ich verstehe nicht was dein Problem ist. Generell gilt:

            id - Wenn es sinnvoll ist, _einem_ Element einen eindeutigen Namen zuzuordnen, z.B. bei der label-Geschichte, oder wenn man die Seitenaufteilung über divs realisiert, die dann die verschiedensten Verrenkungen zueinander machen sollen. (mehrere Spalten usw.)

            class - In allen anderen Fällen.

            Letztendlich ist das Ganze wohl auch eine Geschmacksfrage.

            Grüße, Skrilax

          2. Hallo,

            Auch das ist mir klar, aber ich habe ja auch geschrieben
            'wenn ich eine Klasse definiere und nur    einmal    anspreche'

            IDs sind eben majestätisch einzigartig und können daher nur einmal pro Dokument vorkommen.
            Klassen dagegen sind eben das notwendige Übel, das auch mehrmals in einem Dokument vorkommen kann.

            Wenn du eine ID und eine Klasse mit identischen Formatierungen nur jeweils einmal verwendest besteht zwischen ihnen kein Unterschied, aber di Formatierungen der Klasse kannst du auch an andere Elemente geben, während die Formatierungen der ID für ein Element exklusiv sind.

            Gruß;

            1. Hallo,
              ich danke allen Helfern - jetzt bin ich zufrieden.