05.01.2013 Aufrufe

Elemente Positionieren mit CSS [PDF | 202KB]

Elemente Positionieren mit CSS [PDF | 202KB]

Elemente Positionieren mit CSS [PDF | 202KB]

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<strong>CSS</strong> – <strong>Positionieren</strong> von <strong>Elemente</strong>n [Josef Hofer, KS Linz] Seite 1/3<br />

<strong>Elemente</strong> <strong>mit</strong> <strong>CSS</strong> positionieren<br />

(Stand: <strong>CSS</strong> 2.1/3.0)<br />

<strong>CSS</strong> wird zum Formatieren von (X)HTML-<strong>Elemente</strong>n eingesetzt und auch zum <strong>Positionieren</strong><br />

dieser. Frames und Tabellen sind traditionelle Werkzeuge dafür, jedoch verlieren sie aus<br />

verschiedensten Gründen an Bedeutung. Zukünftig soll vor allem <strong>mit</strong> <strong>CSS</strong> -Individualformaten<br />

bzw. <strong>CSS</strong>-Container positioniert werden.<br />

Das Boxmodell und Größenangaben von <strong>Elemente</strong>n<br />

Aus der Sicht von <strong>CSS</strong> ist fast jedes XHTML-Element als<br />

rechteckiger Kasten zu betrachten.<br />

Die Gesamtbreite eines Elements (-höhe) ergibt sich allerdings<br />

aus der Breite bzw. Höhe (width, height) des Inhalts, des<br />

Innenabstandes (padding), der Rahmendicke (border)und des<br />

Außenabstands (margin).<br />

border, margin, padding gelten alleinstehend rund um das<br />

angegebene Element, jedoch können die Abstände auch<br />

einzeln angegeben werden (-top, -bottom, -left, -right)<br />

<strong>Elemente</strong> positionieren<br />

<strong>Elemente</strong> können in ihrer Position am Bildschirm beeinflusst werden: Mit der <strong>CSS</strong>-Eigenschaft<br />

position und den Attributen static (Default), relative, absolute, fixed.<br />

Die Eigenschaften top, right, bottom und left geben die Abstände eines Elements relativ zu<br />

anderen <strong>Elemente</strong>n bzw. dem inneren Fensterrand an. In verschiedenen Browsern testen!<br />

position: static<br />

Wenn <strong>Elemente</strong> statisch deklariert sind,<br />

erscheinen sie in der Reihenfolge, in der<br />

sie angegeben wurden. Das Attribut<br />

static ist der Default-Wert<br />

(braucht also nicht angegeben werden).<br />

position: relative<br />

Die <strong>Elemente</strong> werden relativ zu ihrer<br />

ursprünglichen Position <strong>mit</strong> einer<br />

Abstandsangabe (top, bottom, right,<br />

left) verschoben. Logischerweise können<br />

#kasten1 {position: static;<br />

margin: 5px; padding: 5px;<br />

width: 200px; height: 100px;<br />

border: 2px solid #000000;}<br />

#kasten01 {position: static;<br />

margin: 5px; padding: 5px;<br />

border: 2px dashed #880000;}<br />

#kasten2 {position: static;<br />

margin: 5px; padding: 5px;<br />

width: 200px; height: 100px;<br />

background-color: #DDDDDD;}<br />

kasten1<br />

kasten01 <br />

<br />

kasten2 <br />

#kasten1 {position: static;<br />

margin: 5px; padding: 5px;<br />

width: 200px; height: 100px;<br />

border: 2px solid #000000;}


<strong>CSS</strong> – <strong>Positionieren</strong> von <strong>Elemente</strong>n [Josef Hofer, KS Linz] Seite 2/3<br />

nicht zugleich Werte für top, bottum oder<br />

right und left angegeben werden.<br />

Negative Wertangaben sind möglich.<br />

#kasten01 {position: static;<br />

margin: 5px; padding: 5px;<br />

border: 2px dashed #880000;}<br />

#kasten2 {position: relative;<br />

top: -60px; left: 50px;<br />

margin: 5px; padding: 5px;<br />

width: 200px; height: 100px;<br />

background-color: #DDDDDD;}<br />

kasten1<br />

kasten01 <br />

<br />

kasten2 <br />

Ein <strong>mit</strong> relative positioniertes Element hat Einfluss auf nachfolgende <strong>Elemente</strong>, deren<br />

Ursprungsposition dort liegt, so sie auch ohne Verschiebung des Vorgängers liegen würde.<br />

Inline-<strong>Elemente</strong> (a, img) können <strong>mit</strong> display:block zu Blockelementen gemacht werden (wichtig<br />

für DHTML).<br />

left: 50px – verschiebt die um 50 px nach rechts, right: 50px – 50 px nach links<br />

position: absolute<br />

Absolut positionierte <strong>Elemente</strong> haben ihren<br />

Bezugspunkt in der linken oberen Ecke<br />

ihres Elternelements, ist das der body,<br />

dann in am Beginn des Anzeigefensters.<br />

position: fixed<br />

Fixierte <strong>Elemente</strong> nehmen immer Bezug<br />

zur linken oberen Ecke des Anzeigefensters<br />

und bewegen sich nicht, wenn das<br />

Fenster gescrollt wird.<br />

#kasten1 {position: absolute;<br />

top: 250px; left: 150px;<br />

margin: 5px; padding: 5px;<br />

width: 200px; height: 100px;<br />

border: 2px solid #000000;}<br />

#kasten01 {position: absolute;<br />

top: 50px;<br />

margin: 5px; padding: 5px;<br />

border: 2px dashed #880000;}<br />

#kasten2 {position: static;<br />

margin: 5px; padding: 5px;<br />

width: 200px; height: 100px;<br />

background-color: #DDDDDD;}<br />

#kasten3 {position: static;<br />

margin: 5px; padding: 5px;<br />

width: 200px; height: 100px;<br />

border: 2px solid #000000;}<br />

kasten1<br />

kasten01 <br />

<br />

kasten2 <br />

kasten3 <br />

#logo {position: fixed;<br />

top: 10px; left: 330px;<br />

width: 60px;<br />

margin: 5px; padding: 5px;


<strong>CSS</strong> – <strong>Positionieren</strong> von <strong>Elemente</strong>n [Josef Hofer, KS Linz] Seite 3/3<br />

z-index:<br />

Beim <strong>Positionieren</strong> kann man die<br />

Darstellungsreihenfolgen von <strong>Elemente</strong>n<br />

die sich überlappen regeln – je höher der<br />

z-index (Ganzzahl), desto weiter im<br />

Vordergrund liegt die Ebene.<br />

Hier wird der kasten3 in den Vordergrund<br />

gebracht.<br />

float / clear:<br />

Mit float kann ich festlegen, wie<br />

nachfolgende <strong>Elemente</strong> im Verhältnis zum<br />

aktuellen positioniert werden sollen.<br />

float:left – Element ist links<br />

positioniert, nachfolgende rechts davon.<br />

Mit clear kann das float des<br />

vorhergehenden Elements aufgehoben<br />

werden (left/right/both)<br />

border: 2px solid #0000AA;<br />

background-color:#DEDEDE;<br />

font-size:30px; }<br />

#content {position: static;<br />

top:10px; width: 300px;<br />

margin: 5px; padding: 5px;<br />

border: 2px dashed #880000;}<br />

NFX<br />

Viel Text. ... <br />

#kasten2 {position: absolute;<br />

margin: 5px; padding: 5px;<br />

width: 200px; height: 100px;<br />

top:10px; left:10px;<br />

border: 2px solid #000000;<br />

z-index:1; }<br />

#kasten3 {position: absolute;<br />

margin: 5px; padding: 5px;<br />

width: 200px; height: 100px;<br />

top:50px; left:50px;<br />

border: 2px solid #000000;<br />

z-index:3; }<br />

#kasten4 {position: absolute;<br />

margin: 5px; padding: 5px;<br />

width: 200px; height: 100px;<br />

top:100px; left:100px;<br />

border: 2px solid #000000;<br />

background-color:#DEDEDE;<br />

z-index:2; }<br />

kasten2 <br />

kasten3 <br />

kasten4 <br />

#kasten1 {width: 100px; height: 100px;<br />

background-color: #DEDEDE;<br />

float: left; }<br />

#kasten2 {width: 100px; height: 100px;<br />

background-color: #999999;<br />

float: left; }<br />

#kasten3 {width: 100px; height: 100px;<br />

background-color: #555555;<br />

clear: left; }<br />

kasten1 <br />

kasten2 <br />

kasten3

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!