CSS 2.1 ::Grundlegendes

Zusammenhang zwischen display, position und float

CSS 2.1 bietet drei Positionierungs-Schemata, mit denen sich das Layout und die Erzeugung der Boxes in einem Webdokument beeinflussen lassen: normaler Elementfluss, Floats und absolute Positionierungen. Sie sollen den Webautoren helfen, auf die alten Mark-Up-Tricks zu verzichten und damit die Zugänglichkeit ihrer Dokumente zu verbessern. Für die Auswahl dieser Schemata sind drei Eigenschaften verantwortlich:

Das Verhalten dieser Eigenschaften ist völlig problemlos für Elemente im normalen Elementfluss, d. h. solange wir für ein Element nur die Ausgangswerte der Eigenschaften verwenden und sie nicht explizit deklarieren. Auch wenn wir nur eine dieser drei Eigenschaften deklarieren, wirft ihr Zusammenspiel keinerlei Schwierigkeiten auf.

Für alles, was darüber hinausgeht, ist jedoch Vorsicht geboten, da sich leicht unerwartete Effekte ergeben können. Wie diese Eigenschaften miteinander kooperieren und welche Deklarationen dabei Vorrang haben, wurde im Abschnitt 9.7 der Spezifikation CSS 2.1 erstmals genau festgelegt. Der dort definierte Algorithmus wird hier im Einzelnen erklärt.

Die Abhängigkeiten im Einzelnen

Der folgende Algorithmus wird immer dann durchgeführt, wenn mehreren der Eigenschaften display, position und float andere Werte als ihre Ausgangswerte zugewiesen wurden, und zwar für ein und dasselbe Element. Dabei spielt es keine Rolle, ob die Deklarationen in derselben Regel stehen oder ob sie zu verschiedenen Selektoren gehören, die über die Kaskade auf dasselbe Subjekt zeigen.

Flussdiagramm über die Prioritäten zur Entscheidung zwischen 'display', 'position' und 'float'.

Die höchste Priorität hat die Frage, ob display:none deklariert wurde. Ist das der Fall, wird das betreffende Element nicht dargestellt. Alle anderen Eigenschaften haben dann keinen Einfluss mehr auf die Darstellung.

Die zweithöchste Priorität erhält anschließend die Unterscheidung nach der Positionierung. (Wenn der Wert für display nicht none ist, bekommt display die geringstmögliche Priorität. Ein eventuell spezifizierter Wert wird weiter unten im Algorithmus geändert.) Es wird dann folgendermaßen unterschieden:

Zunächst kann position einen der Werte absolute oder fixed annehmen, sei es durch eine direkte Deklaration oder durch Vererbung über den Wert inherit. In dem Fall gilt:

Die Box ist absolut positioniert. Ihre Position wird durch die Eigenschaften top, right, bottom, left und den umschließenden Block der Box festgelegt.

Der berechnete Wert für float wird hier automatisch auf none (den Ausgangswert) gesetzt, auch wenn er anders spezifiziert wurde.

Der berechnete Wert für display wird entsprechend der unten stehenden Tabelle gesetzt, auch wenn er im Stylesheet anders deklariert wurde.

Die beiden anderen möglichen Werte für position sind static (der Ausgangswert) und relative. Ist einer dieser Werte deklariert, kommt es auf den Wert der Eigenschaft float an:

Ist für float einer der Werte left, right oder inherit vorgegeben, hat das zwei Folgen:

In diesem Fall gilt die Box als floatiert.

Auch hier wird der berechnete Wert für display automatisch nach der unten stehenden Tabelle gesetzt.

Float kann außerdem den Wert none erhalten. Dann unterliegt das Element dem normalen Elementfluss. Der Wert für display hängt von dem Element ab, an das die Regel angebracht wird:

Handelt es sich um das das Stammelement HTML, dann wird auch hier wieder automatisch der berechnete Wert für display nach der unten stehenden Tabelle gesetzt.

Für alle anderen Elemente kommt der spezifizierte Wert zum Zug und wird als berechneter Wert verwendet.

Tabelle:

Spezifizierter Wert (oder Ausgangswert) Berechneter Wert
inline-table table
inline, run-in, inline-block block
table-column, table-column-group,
table-row, table-row-group,
table-header-group, table-footer-group, table-cell, table-caption
block
table, block, list-item, compact, marker, none, inherit Spezifizierter Wert

Diese Tabelle dient zur Ermittlung des berechneten Wertes für die Eigenschaft display. Sie gilt für alle Elemente, die nicht dem normalen Elementfluss unterliegen.
TOP


Home|Vollreferenz|Schnellreferenz|Grundlegendes|Tutorials & Artikel|Quiz|Allgemeines

© Copyright All Contents 2002-2023
Commercial Use prohibited.


Notizen: