Grenzen von float sprengen

Freiheit für Ihre Layouts!

float hat seine Grenzen bei der Erstellung von Layouts. Der Workshop verrät, wie Sie diese Einschränkungen mithilfe von CSS -Tricks oder Javascript ganz einfach umgehen.

Freiheit für Ihre Layouts!

© Internet Magazin

Freiheit für Ihre Layouts!

Das Mittel der Wahl für die Layoutgestaltung ist float. Ursprünglich war float hierfür aber nicht vorgesehen - und das merkt man an allen Ecken und Enden. Ein paar der Einschränkungen lassen sich elegant umgehen - und darum geht es in diesem Artikel. Sie erfahren, wie Sie über erzeugte Inhalte ein mittig angeordnetes Bild umfließen lassen, Elemente unterschiedlicher Höhe nebeneinander platzieren oder freiere Anordnungen mit Javascript realisieren.

Rechts, links - und zentriert?

Die Eigenschaft float kann die Werte left, right oder none annehmen.

Für ein in der Mitte platziertes Bild, das rechts und links umflossen wird, muss man ein bisschen tricksen.

© Internet Magazin

Für ein in der Mitte platziertes Bild, das rechts und links umflossen wird, muss man ein bisschen tricksen.

float: right bewirkt zweierlei: Zum einen wird das Element selbst dadurch rechts angeordnet, zum anderen wirkt es sich auf die Inhalte der nachfolgenden Elemente aus und sorgt dafür, dass sie um das Element herum fließen. float: left ordnet entsprechend ein Element links an. float: none dient dazu, eine vorherige Angabe wie float: right zu annulieren.Da fehlt aber eindeutig float: center. Was, wenn man also beispielsweise möchte, dass ein Bild in der Mitte angeordnet ist und rechts und links vom Text umflossen wird? Gute Frage. Dieses Layout ist in CSS 2.1 nämlich nicht vorgesehen. Man kann sich aber mit einem eleganten Trick behelfen, der von Chris Coyier stammt.Die HTML-Struktur für ein Beispiel mit einem zentrierten Bild, das rechts und links vom Text umflossen ist, sieht folgendermaßen aus:

<div id="wrapper"><img src="bild.jpg" id="bild" alt=
"Bild" /><div id="links">Text ...</div><div id="rechts">Text ...</div></div>

Es gibt ein umfassendes Element #wrapper, in dem sich zuerst das Bild befindet. Danach folgen die zwei div-Elemente für den Text, der rechts und links dargestellt werden soll.Der umfassende Container erhält Ausmaße und wird relativ positioniert. Letzteres ist wichtig, denn so kann der Container den Bezugspunkt für die folgende Positionierung bilden.

#wrapper {
width: 70%;
margin: auto;
position: relative;
}

Dann muss das Bild in der Mitte oben positioniert werden. Das erreichen Sie, indem Sie das Bild absolut positionieren und angeben, dass es um 50 Prozent von links verschoben sein soll.Damit befindet sich die linke Ecke des Bildes in der Mitte des Containers. Dort soll aber nicht die Ecke, sondern die Mitte des Bildes sein, daher muss das Bild um die Hälfte seiner Breite nach rechts verschoben werden. Für eine Verschiebung nach rechts geben Sie margin-left einen negativen Wert. Im Beispiel ist das Bild 300 Pixel breit, in diesem Fall ist margin-left: -150px die richtige Angabe:

#bild {
position: absolute;
top: 0;
left: 50%;
margin-left:
-150px;
}

Dann werden das rechte und das linke div-Element mit einer Breite versehen - und das eine rechts, das andere links gefloatet.

#links, #rechts {
width: 48%;
}
#links {
float: left;
}
#rechts {
float: right;
}

Das Entscheidende fehlt noch: Wir müssen den Platz für das Bild aussparen, damit der Text das Bild umfließt. Dafür kommen über CSS erzeugte Inhalte zum Einsatz. Wir erzeugen vor jedem der links und rechts platzierten Textbereiche einen leeren Inhalt als Platzhalter für das Bild. Er ist halb so breit wie das Bild und hat die Höhe des Bildes.

#links:before, #rechts:before {
content: "";
width: 150px;
height: 300px;
}

Diese erzeugten Inhalte werden dann noch rechts beziehungsweise links gefloatet.

#links:before {
float: right;
}
#rechts:before {
float: left;
}

Und fertig ist die Simulation von float: center! Das funktioniert natürlich nur, solange erzeugte Inhalte unterstützt werden. Einziges Sorgenkind diesbezüglich ist der Internet Explorer 7.

Mehr zum Thema

HTML5: Quick Reference Guide
Ratgeber: "HTML5"

Die wichtigsten Tags auf einen Blick: In unserem praktischen Arbeitsblatt finden Sie einen wertvollen Begleiter für die Umstellung Ihrer Webprojekte…
internet, webdesign, google, content, ranking, seo, suchmaschine
Ratgeber: Urheberrecht

Einzigartige Inhalte bieten Lesern Mehrwert und sind ein wichtiges Qualitätsmerkmal. Ärgerlich, wenn sich jemand durch Kopieren an fremden…
Die besten HTML5-Tipps
Neue Tipps & Tricks für blitz.io

Wer die Leistung einer Applikation ermitteln möchte, braucht keine Skripte zu schreiben, sondern kann einen der zahlreichen Online-Dienste…
image.jpg
Ratgeber: Webentwicklung

Die clientseitige Javascript-Entwicklung bietet fast keine Entwicklungsumgebungen und auch keine vernünftigen Werkzeuge zur Fehlersuche. Eine der…
internet, webdesign, meteor, webapplikationen
Ratgeber

Mit Meteor sollen Entwickler in kurzer Zeit Umgebungen für Webapplikationen erstellen können, ohne sich um lästige Details kümmern zu müssen. Wir…