Class- und id-Attribute richtig einsetzen

(Auszug aus "CSS Kochbuch" von Christopher Schmitt)

Problem

Sie wollen wissen, wann am besten class-Attribute verwendet werden und wann besser id-Attribute. (Anmerkung: Die Attribute werden eingesetzt, um bestimmte Teile des Dokuments zu markieren; mit Hilfe der entsprechenden CSS-Selektoren können dann gezielt die markierten Abschnitte angesprochen werden.)

Lösung

Verwenden Sie class-Attribute, wenn die gleiche Stildefinition mehrere Male in einem Dokument benutzt werden soll. id-Attribute kommen zum Einsatz, wenn ein Stil nur auf ein einziges Element in einem Dokument angewandt werden soll.

Im folgenden Stylesheet benutzen wir die ID-Selektoren #banner, #sub_banner, #nav1, #nav2, #footer und #content; .title und .content sind Klassen-Selektoren:

body {
  margin: 0;
  font-family: Verdana, Arial, Helvetica, sans-serif;
  font-size: .75em;
  padding: 0;
}
#banner {
  margin-top: 0;
  margin-bottom: 0;
  background-color: #900;
  border-bottom: solid 1px #000;
  padding: 5px 5px 5px 10px;
  line-height: 75%;
  color: #fff;
}
#sub_banner {
  background-color: #ccc;
  border-bottom: solid 1px #999;
  font-size: .8em;
  font-style: italic;
  padding: 3px 0 3px 10px;
}
#content {
  position: absolute;
  margin-left: 18%;
  width: 40%;
  top: 100px;
  padding: 5px;
}
#nav1 {
  position: absolute;
  width: 30%;
  left: 60%;
  top: 100px;
  padding: 5px;
}
#nav2 {
  position: absolute;
  padding: 5px 5px 5px 10px;
  top: 100px;
  width: 15%;
}
#footer {
  text-align: center;
  padding-top: 7em;
}
.warning {
  font-weight: bold;
  color: red;
}
.title {
  font-size: 120%;
}
.content {
  font-family: Verdana, Arial, sans-serif;
  margin-left: 20px;
  margin-right: 20px;
}
.footer {
  font-size: 75%;
}

Hier sehen Sie die Verwendung der id- und class-Attribute im HTML-Code:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
  <head>
    <title>CSS Kochbuch</title>
    <link href="rezept-1-3.css" rel="stylesheet" type="text/css" />
  </head>
  <body>
    <div id="header">
      <h1>CSS-Sammlung</h1>
      <h2>Einige CSS-basierte Websites</h2>
    </div>
    <div id="content">
      <h3>Titel für Seiteninhalt</h3>
      <p class="title">Titel für Inhaltseintrag</p>
      <p class="content">Hier kommt der Inhalt hin.</p>
    </div>
    <div id="navigation">
      <h3>Listen</h3>
      <a href="http://csscookbook.com/">Site anmelden</a><br />
      <a href="http://csscookbook.com/">CSS-Ressourcen</a><br />
      <a href="http://csscookbook.com/">RSS</a><br />
      <h3>CSS Kochbuch-Themen</h3>  
      <a href="http://csscookbook.com/">Home</a><br />
      <a href="http://csscookbook.com/">Über uns</a><br />
      <a href="http://csscookbook.com/">Blog</a><br />
      <a href="http://csscookbook.com/">Dienstleistungen</a><br />
    </div>
    <div id="blipverts">
     <h3>Platz für Werbung</h3>
    </div>
    <div id="siteinfo">
      <p class="footer">Copyright 2006</p>
    </div>
  </body>
</html>

Diskussion

Die ID-Selektoren (id="Wert") beziehen sich auf Attribute, die innerhalb des Dokumentenbaumes nur genau einmal vorkommen. Klassen-Selektoren (class="Wert") verweisen dagegen auf Attribute, die in der Webseite mehrfach verwendet werden können. Noch einmal zur Erinnerung: ID-Selektoren werden durch ein Doppelkreuz (#) gekennzeichnet, während Klassen-Selektoren mit einem Punkt (.) beginnen.

Daher werden ID-Selektoren auch hauptsächlich eingesetzt, um nur einmal im Dokument vorkommende Abschnitte anzusprechen. Im vorigen Beispiel kann man erkennen, wie die Seite in die folgenden Abschnitte unterteilt wurde:

  • header (Kopfteil)
  • content (Inhalt)
  • navigation (Navigationselemente)
  • blipverts (Werbebanner etc.)
  • siteinfo (Informationen zur Website)

Durch die Zuweisung eigener id-Attribute können Designer diese Bereiche der Seite mit eigenen Stildefinitionen versehen, ohne dass diese Auswirkungen auf andere Teile der Seite haben. Dies geschieht durch die gemeinsame Verwendung von Nachkommen- und ID-Selektoren.

Im folgenden Beispiel erhalten die beiden h3-Elemente unterschiedliche CSS-Regeln:

#content h3 {
  font-size: 2em;
  font-weight: bold;
}
#navigation h3 {
  font-size: 0.8em;
  font-wieght: normal;
  text-decoration: underline;
}

Siehe auch

Die CSS 2.1-Spezifikation zum Thema ID-Selektoren sowie die CSS 2.1-Spezifikation zum Thema Klassen-Selektoren.

  

<< zurück vor >>

 

 

 

Tipp der data2type-Redaktion:
Zum Thema CSS bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an:

Copyright der deutschen Ausgabe © 2007 by O’Reilly Verlag GmbH & Co. KG
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "CSS Kochbuch" denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

O’Reilly Verlag GmbH & Co. KG, Balthasarstr. 81, 50670 Köln