HTML & CSS für Einsteiger

HTML & CSS für Einsteiger (Teil 38): Alles im Fluss mit float

Zum Video-Training

Das Floaten ist eines der entscheidenden CSS-Konzepte. Ohne das Verständnis dieses Prinzips lassen sich Webseiten nicht auf Basis von CSS erstellen. Floaten kann man hier übrigens sehr schön mit Fließen übersetzen, was die Sache auf den Punkt bringt. Letztendlich bedeutet Floaten nämlich nichts anderes, als dass ein Element sich links oder rechts neben einem anderen Element anordnet. (Im Normalfall würde das Element unterhalb eines anderen Elements stehen).

Ein erstes Beispiel soll diesen Aspekt verdeutlichen.

<p><img src="bild.jpg" />
In diesem Set befinden sich 12 Eigene Formen, die ihr in euren Flyern, Backgrounds usw. einsetzen könnt. Die Formen untergliedern sich in 18, 21 
und 24 Streifen sowie verschiedene Strahlenbreiten. Diese Presets sind eine gute Grundlage für schöne Effekte in euren Layouts und Bildern.</p>

Hier wurde ein Absatz definiert. Innerhalb dieses Absatzes befinden sich ein Bild und normaler Text.

HTML &amp; CSS für Einsteiger (Teil 38): Alles im Fluss mit float

Ein Blick auf das Ergebnis zeigt, dass das Bild im Textfluss steht.

Jetzt kommt die float-Eigenschaft ins Spiel.

img { float: left;}



Auch hierzu wieder ein Blick auf das Ergebnis.

HTML &amp; CSS für Einsteiger (Teil 38): Alles im Fluss mit float



Hier wurde das Bild also gefloatet. Der Text fließt dadurch um das Bild herum.

Der Eigenschaft float kann man die Werte left und right zuweisen, um das Element nach links (float: left) oder rechts (float: right) "schweben" zu lassen.

Ihr könnt auch gleich mal float: right auf das Bild anwenden.

HTML &amp; CSS für Einsteiger (Teil 38): Alles im Fluss mit float



In diesem Fall passieren drei Dinge:

• Die Grafik wird aus dem normalen Fluss herausgenommen.

• Sie wandert im p-Element ganz nach oben.

• Sie wird so weit wie möglich rechts angezeigt.

Ein Blick auf die bisherigen Ergebnisse macht deutlich, dass das noch nicht wirklich hübsch aussieht. Tatsächlich fehlen die Abstände zwischen Bild und umfließendem Text. Passt die Syntax dazu folgendermaßen an:

img { 
    float: left; 
    margin-right: 20px; 
 }



Dem Bild wurde ein rechter Rand von 20 Pixel zugewiesen. Das ergibt folgenden Anblick:

HTML &amp; CSS für Einsteiger (Teil 38): Alles im Fluss mit float



Experimentiert hier einfach ein bisschen mit den Randabständen.

Das Floaten beenden

Noch einmal zurück zum Bildbeispiel. Ich erweitere die Syntax um einen zusätzlichen Textabsatz.

<p><img src="bild.jpg" />In diesem Set befinden sich 12 Eigene Formen, die ihr in euren Flyern, Backgrounds etc. einsetzen könnt. Die Formen untergliedern sich in 18, 21 und 24 Streifen sowie verschiedene Strahlenbreiten. Diese Presets sind eine gute Grundlage für schöne Effekte in euren Layouts und Bildern.</p>
<p>In diesem Set befinden sich 12 Eigene Formen, die ihr in euren Flyern, Backgrounds etc. einsetzen könnt. Die Formen untergliedern sich in 18, 21 und 24 Streifen sowie verschiedene Strahlenbreiten. Diese Presets sind eine gute Grundlage für schöne Effekte in euren Layouts und Bildern.</p>



Das Ergebnis sieht so aus:

HTML &amp; CSS für Einsteiger (Teil 38): Alles im Fluss mit float

Tatsächlich umfließt nicht nur der erste Absatz die Grafik. Gleiches gilt auch für den zweiten Textabsatz. Das liegt schlicht und ergreifend daran, dass die Grafik über den ersten Absatz nach unten hinausragt. Zum besseren Verständnis weise ich dem Absatz, in dem die Grafik enthalten ist, einfach mal eine Hintergrundfarbe zu.

HTML &amp; CSS für Einsteiger (Teil 38): Alles im Fluss mit float



Wenn ihr euch das Ergebnis anseht, wird deutlich, dass die Grafik tatsächlich über den Absatz nach unten hinausgeht. Das ist in dieser Form natürlich nicht immer gewünscht. An diesem Punkt wird die clear-Eigenschaft interessant. Denn darüber lässt sich das Floaten beenden. clear zwingt ein folgendes Element, tatsächlich unterhalb eines gefloateten Elements zu beginnen, und nicht etwa neben diesem. Die clear-Eigenschaft kennt die folgenden Werte:

left – beendet float: left

right – beendet float: right

both – beendet sowohl float: right als auch float: left

Im folgenden Beispiel weise ich dem zweiten Absatz clear: left zu, um das Floaten zu beenden.

<!DOCTYPE html>
 <html lang="de">
 <head>
 <title>PSD-Tutorials.de</title>
 <meta charset="UTF-8" />
 <style>
 img {
    float: left;
     margin-right: 20px;
 }
 </style>
 </head>
 <body>
 <p style="background-color:#CCFF66;"><img src="bild.jpg" />In diesem Set befinden sich 12 Eigene Formen, die ihr in euren Flyern, Backgrounds etc. einsetzen könnt. Die Formen untergliedern sich in 18, 21 und 24 Streifen sowie verschiedene Strahlenbreiten. Diese Presets sind eine gute Grundlage für schöne Effekte in euren Layouts und Bildern.</p>
 <p style="clear:left;">In diesem Set befinden sich 12 Eigene Formen, die ihr in euren Flyern, Backgrounds etc. einsetzen könnt. Die Formen untergliedern sich in 18, 21 und 24 Streifen sowie verschiedene Strahlenbreiten. Diese Presets sind eine gute Grundlage für schöne Effekte in euren Layouts und Bildern.</p>
 </body>
 </html>



Durch die gezeigte Syntax wird der zweite Absatz nun tatsächlich unterhalb des Bildes angezeigt.

In den meisten Fällen kann man übrigens anstelle von clear: left oder clear: right gleich clear: both nehmen. Daher empfiehlt es sich, in seinem Stylesheet einfach eine entsprechende Klasse anzulegen, die man dann bei Bedarf aufruft.

.clearing {
    clear: both;
 }



Diese Klasse könnt ihr immer dann verwenden, wenn das Floaten eines Elements beendet werden soll.

<p class="clearing">Inhalte ...</p>

Wozu das Floaten gut ist

Natürlich wird das Floaten nicht nur für den Textfluss im Zusammenhang mit Bildern benötigt. Tatsächlich bildet es das Grundkonzept CSS-basierter Webseiten. Denn dank dem Floaten lassen sich beispielsweise mehrspaltige Layouts ganz einfach umsetzen. Seht euch dazu folgendes Beispiel an:

<!DOCTYPE html>
 <html lang="de">
 <head>
 <title>PSD-Tutorials.de</title>
 <meta charset="UTF-8" />
 <style>
 #navi {
     float:left;
     width:12em;
     background-color:#99FFFF;
 }
 #inhalt {
     margin-left: 14em;
     background-color: #FF3333;

 }
 </style>
 </head>
 <body>
 <div id="navi">
   <ul>
     <li>Startseite</li>
     <li>Kontakt</li>
     <li>Impressum</li>
   </ul>
 </div>
 <div id="inhalt">
   Hier steht der Inhalt der Webseite.
 </div>
 </body>
 </html>

Hier wird ein zweispaltiges Layout aufgebaut. Das Besondere dabei: Die Spalten stehen nebeneinander.

HTML &amp; CSS für Einsteiger (Teil 38): Alles im Fluss mit float



Und eben dieses Nebeneinanderstehen wird über das Floating-Konzept realisiert. Ausführliche Informationen zum Aufbau von Webseiten auf Basis des Floatens folgen im weiteren Verlauf dieser Reihe.