CSS Positionierung
    
 HomeCSS • Elemente überlagern BEISPIEL   Quellcode  Download 

 Elemente positionieren 01  Anzeigeort innerhalb der Seite bestimmen

Seitenelemente punktgenau mit CSS-Angaben positionieren. Dazu werden CSS-Anweisungen mit den Notierungen für 'top' und 'left' für das jeweilige Element gemacht.
Seitenelemente überlagern / mit CSS positionieren

Eine Anwendung wäre z.B. die Darstellung einer kleinen Lupe über einem Vorschaubildchen als Hinweis darauf, das man das Bild zur Vergrößerung anklicken kann.

Sie ersparen sich damit die Arbeit, die Lupengrafik in jedes Vorschaubild mit einem Grafikprogramm aufwändig einzubetten.

Hier in der Erklärung wird innerhalb eines Anzeigebereichs (blauer Kasten) ein Bild an einer bestimmten Position angezeigt. Ein Text (keine transparente Grafik) überlagert das Bild. Eine solche Technik wird z.B. dann eingesetzt, wenn man wechselnde / unterschiedliche Texte über ein Foto legen möchte.

Letztes Seitenelement vor dem DIV-Bereich 'AnzeigeBox' ist dieser Text.

Wintersport


Ich habe zunächst für die Anzeige einen übergeordneten <div>-Bereich mit der ID 'AnzeigeBox' festgelegt und zur Demo mit einem blauen Rand versehen. Dieses Element wird relativ zum vorhergehenden Seiteninhalt mit einem Versatz von X = 0 Pixel und Y = 0 Pixel positioniert also ohne Verschiebung oder Einrückung gleich dort, wo es notiert wurde.
#AnzeigeBox {
position: relative;
top: 0px;
left: 0px;
height: 140px;
width: 540px;
}
Demo: Unterschied ansehen, absolute / relative Positionierung


Dieses Element 'AnzeigeBox' ist das Elternelement für die beiden untergeordneten Kindelemente 'text' und 'bild' die ich nun innerhalb der DIV-Notierung für die 'AnzeigeBox' eintragen werde.
<div id="AnzeigeBox">
hier
</div>
Der absolute X-/Y-Positionsbezug für die beiden Kindelemente (text und bild) innerhalb der 'AnzeigeBox' ist die linke obere Ecke der 'AnzeigeBox'. Diesen Punkt habe ich in der Demo oben durch einen winzigen roten Block gekennzeichnet. Die Angaben zur Positionierung der beiden Kindelemente beziehen sich auf diesen Punkt und werden mit Angaben für 'top' (von oben) und 'left' (von links) in der Maßeinheit Pixel angegeben.

Querverweis: CSS Info - Elternelement Kindelemente



   Positionierung der beiden Kindelemente mit CSS

Der <div>-Bereich 'AnzeigeBox' ist also Elternelement für die beiden Kindelemente (text + bild), die innerhalb von 'AnzeigeBox' notiert wurden. Deren X- / Y-Position wird daher absolut (in Relation zur linken oberen Ecke des Elements 'AnzeigeBox') angegeben.

Die Verschiebungen / Abstände ergeben sich gemäß der CSS-Anweisungen in Relation zur linken oberen Ecke der 'AnzeigeBox'.

Positionsbestimmung (text) mit den Koordinatenangaben  top:50px und left:170px
Positionsbestimmung (bild) mit den Koordinatenangaben  top:10px und left:270px

CSS-Code (Auszug):
#text {
position: absolute;
z-index: 2;
top:50px;
left:170px;
}

#bild {
position: absolute;
z-index: 1;
top:10px;
left:270px;
}

Wie Sie oben im blauen Kasten sehen, können sich solche Elemente auch überlagern. Die beiden Elemente wurden mittels CSS-Angaben horizontal und vertikal punktgenau positioniert und die Bereiche überlappen sich dabei. Die Reihenfolge der Anzeige (aus Sicht des Betrachters hintereinander) wird durch Z-Index-Angaben festgelegt.

Die Rangordnung für die Anzeige, welches Element vor oder hinter dem anderen angezeigt wird, bestimmt der 'z-index'. Die Elemente mit der höchsten Indexzahl stehen aus Sicht des Betrachters ganz vorne. Alle anderen in der Folge der Zahlen dahinter.

Ohne Z-Index-Angabe bestimmt die Reihenfolge der Notierung innerhalb des Body-Bereichs die Rangfolge bei der Überlagerung! Was zuletzt notiert wurde 'liegt obenauf'.



Aufwand
  • CSS-Notierungen in den Head-Bereich kopieren
  • HTML-Code für die DIV-Bereiche in den Body-Bereich notieren
Das Modul mit sämtlichen Dateien können sie als ZIP-Datei herunterladen.

Bitte entnehmen Sie den gesamten Quellcode für dieses Beispiel dem Quellcode-Listing unten. Oben im Kopfbereich können Sie eine Demo- bzw. eine Beispieldatei abrufen. Infos und Erklärungen zum Thema CSS finden Sie im CSS Untermenü 01 oder gezielt zur Kaskadierung auf der Seite Info Kaskadierung (weitere Links im Fußbereich).






Alles Notwendige ist getan!

Das war's schon! Lassen Sie sich von den langen Erklärungen hier nicht abschrecken und führen die oben aufgelisteten Schritte durch. Am Einfachsten ist es, die ZIP-Datei herunter zu laden und zu entpacken. Grafik und eine Demo-Datei haben Sie dann bereits auf Ihrer Festplatte und Sie können ein wenig experimentieren.

Falls Sie dann das Modul 'Elemente positionieren 02' anpassen möchten, weitere Erklärungen benötigen oder mehr über die Funktionsweise erfahren möchten, lesen Sie den betreffenden Abschnitt unten.







  CSS im Head-Bereich

In der CSS-Notierung steht für die Zuordnung der Eigenschaften der beiden Kindelemente der Identifikator #text für die Textbox und der Identifikator #bild für die Bildbox.

<style type="text/css">
<!--

#AnzeigeBox {
position: relative;
top: 0px;
left: 0px;
height: 140px;
width: 540px;
border:1px solid #00AFFF
}

#text {
position: absolute;
z-index: 2;
top: 50px;
left: 170px;
}

#bild {
position: absolute;
z-index: 1;
top: 10px;
left: 270px;
}

-->
</style>

Für die Beiden Boxen #text und #bild könnte man weitere Eigenschaften wie Höhe und Breite oder für die Textbox zusätzliche Angaben zur Textformatierung festlegen.


  Notierung der Elemente im Body-Bereich

Die darzustellenden Kindelemente (Text und Bild) sind innerhalb des mit <div>-Angaben definierten Anzeigebereichs (AnzeigeBox) notiert. Allen <div>-Bereichen wurde ein Identifikator zugeordnet, mit dem der Bezug zu den CSS-Notierungen hergestellt wird. Für die Anzeibebox mit "id="AnzeigeBox", für den Text mit id="text" und für das Bild mit id="bild".

<div id="AnzeigeBox">

<div id="text">
<span style="color:#7F7F7F;font-size:24px;">Wintersport</span>
</div>

<div id="bild">
<img src="foto.jpg" width="150" height="112" border="0" alt="">
</div>

</div>




   Einsatzbereiche

So erhält man mit CSS schöne Darstellungen und man kann manchmal auf eine Grafik verzichten. Das erhöht unter Umständen die Ladegeschwindigkeit der Datei. Die Darstellung rechts kann man mit einer Grafik, aber ebenso mit CSS erzielen.


Einen weiteren Einsatzbereich findet man im dymamischen HTML (DHTML). Dabei werden z.B. Seitenelemente bewegt.

Die X- / Y-Position dieser Elemente ist durch den Abstand von oben und links festgelegt!

Diese X- / Y-Angaben (in Pixel) kann man durch JavaScript neu berechnen lassen und danach eine Aktualisierung der Anzeige auslösen. Nach der Aktualisierung würde das Element dann an einer anderen Position angezeigt werden.

 




CSS Positionierung 02 - Texte positionieren absolut + relativ

CSS Positionierung relativ - Schlagschatten 02

CSS Positionierung absolut - Schlagschatten 01

CSS Info - Elternelement Kindelemente