Elemente Positionieren mit CSS [PDF | 202KB]
Elemente Positionieren mit CSS [PDF | 202KB]
Elemente Positionieren mit CSS [PDF | 202KB]
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