Die Ränder in Listen

(Auszug aus "CSS − Anspruchsvolle Websites mit Cascading Stylesheets" von Rachel Andrew & Dan Shafer)

Normalerweise werden Listen in grafischen Browsern mit einem 50 Pixel breiten Rand auf der linken Seite angezeigt. Damit steht Platz für Aufzählungszeichen zur Verfügung (beispielsweise Punkte in einer unsortierten Liste oder Ziffern in einer nummerierten Liste). Unglücklicherweise gibt die CSS-Spezifikation keine Auskunft darüber, wie der Browser diesen Rand anzeigen soll: ob als linker Außenrand oder als linker Innenrand. Die Beschreibung der Eigenschaft marker-offset legt jedoch nahe, dass die Einrückung mit der margin-Eigenschaft gesetzt wurde.

Egal, was in der Spezifikation beabsichtigt wurde, fügen Firefox und Safari links von Listen vorgabemäßig einen linken Innenrand zu, während andere Browser (einschließlich Internet Explorer und Opera) einen linken Außenrand zufügen. Das können Sie einfach nachprüfen, indem Sie ein ul- oder ol-Element mit einer Hintergrundfarbe unterlegen. In den meisten Browsern wird der Hintergrund die Aufzählungszeichen nicht unterlegen, außer im Firefox und Safari.

Aus diesem Grund müssen Sie immer beide Eigenschaften definieren, wenn Sie die Vorgabewerte der Ränder für Listen ändern möchten. Wenn Sie beispielsweise nur einen Außenrand setzen, zeigt der Firefox die normale Einrückung an, während die anderen Browser diese Einstellung überschreiben. Wenn Sie nur einen Innenrand angeben, zeigt der Internet Explorer die normal Einrückung von 50 Pixeln an. Nur wenn Sie sowohl einen Außenrand als auch einen Innenrand definieren (üblicherweise wird padding: 0 gesetzt und nur die margin-Eigenschaft bekommt einen Wert), wird der linke Abstand einer Liste in allen Browsern gleich angezeigt.

Vertikale Außenränder werden mit der Eigenschaft margin-top und margin-bottom gesetzt. Die folgende HTML-Seite verdeutlicht vertikale Außenränder:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>margin in Kombination mit padding</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <style type="text/css">
      body {
        background-color: #808080;
        color: black;
      }
      h1 {
        background-color: #c0c0c0;
        color: black;
        margin-bottom: 3cm;
      }
      h2 {
        background-color: #c0c0c0;
        color: black;
        margin-left: 5%;
        margin-top: 3cm;
        margin-bottom: 3cm;
        padding-left: 1em;
      }
      p {
        background: #c0c0c0;
        color: black;
        margin-left: 20%;
        padding-left: 10%;
        margin-top: 3cm;
        margin-bottom: 3cm;
      }
    </style>
  </head>
  <body>
    <h1>Kein oberer Außenrand, aber ein unterer Außenrand von 3cm</h1>
    <h2>Ich besitze oben und unten einen Außenrand von jeweils 3cm und einen linken Innenrand von 1 em.</h2>
    <p>Ein Absatz mit einem Außenrand oben und unten von jeweils 3cm</p>
  </body>
</html>

Wie diese Seite dargestellt wird, zeigt die folgende Abbildung.

Vertikale Randeinstellungen summieren sich nicht auf

Abbildung: Vertikale Randeinstellungen summieren sich nicht auf.

Im Gegensatz zu horizontalen Rändern summieren sich vertikale Ränder nicht auf. Stehen zwei Elemente direkt übereinander wie h1 und h2 in obiger Abbildung, richtet sich der Abstand zwischen ihnen nach dem größeren Wert der margin-bottom-Eigenschaft des oberen Elements oder der margin-top-Eigenschaft des unteren Elements. In unserem Beispiel sind beide mit 3cm definiert, sodass der Abstand zwischen den Elementen 3cm beträgt (und nicht 6cm, wie Sie vielleicht angenommen hatten). Dem wäre nur dann so gewesen, wenn für das h1-Element margin-bottom: 6cm gesetzt worden wäre. In unserem Fall ist das body-Element der umgebende Block und das ist aus praktischen Gründen der sichtbare Bereich des Browserfensters.

Für die Definition eines Außenrands können auch negative Werte eingesetzt werden. Das kann nützlich sein, wenn man zum Beispiel für den body-Bereich einer HTML-Seite einen Wert für margin-left festgelegt hat und ein Element auf der Seite diesen Rand nach links überschreiten soll. Der folgende Quelltext führt zur Darstellung in der anschließenden Abbildung.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Negative Werte für den Aussenrand</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <style type="text/css">
      body {
        background-color: #808080;
        color: black;
        margin-left: 5cm;
      }
      h1 {
        background-color: #c0c0c0;
        color: black;
        margin-left: -3cm;
      }
      h2 {
        background-color: #c0c0c0;
        color: black;
      }
    </style>
  </head>
  <body>
    <h1>Der linke Außenrand des Body-Bereichs beträgt zwar 5cm, aber ich besitze den Wert -3cm.</h1>
    <h2>Da ich keine eigene margin-left-Einstellung besitze, nehme ich die 5cm des Body-Bereichs an.</h2>
  </body>
</html>

Negative Werte für den Außenrand

Abbildung: Negative Werte für den Außenrand.

Ebenso wie mit padding für den Innenrand gibt es mit margin auch eine zusammenfassende Eigenschaft für die Außenränder. Für die Angabe mehrerer Werte für margin gelten die Regeln aus der Tabelle Die Anzahl der Werte für die Kurzform von padding.

  

<< zurück vor >>

 

 

 

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

Copyright © 2006 der deutschen Übersetzung dpunkt.verlag GmbH
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "CSS − Anspruchsvolle Websites mit Cascading Stylesheets" 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.

dpunkt.verlag GmbH, Ringstraße 19, 69115 Heidelberg