Florence Maurice

Webthemen

Schnelleinführung in CSS3-Shapes

Geschrieben am:

nicht rechteckig umflossenes Bild

Mit CSS3-Shapes kann man Elemente nicht eckig umfließen lassen. Und das geht so:

Zuerst einmal braucht man ein Element, das umflossen werden soll. Üblicherweise nimmt man dafür ein nichtrechtickes Element, beispielsweise ein freigestelltes Bild oder ein abgerundetes Foto. Dieses Element muss gefloatet werden.

Im Beispiel verwende ich ein img-Element, das ich mithilfe von border-radius abrunde:

.beispiel { 
float: left;
border-radius: 50%;
}

Jetzt kommt das Entscheidende: definieren, dass das Element passend umflossen wird. Dafür ist die  Eigenschaft shape-outside zuständig. Hinter shape-outside kann man eine von mehreren Grundformen angeben (es sind übrigens dieselben, die man auch bei clip-path bestimmen kann). Im Beispiel wähle ich ellipse():

.beispiel { 
float: left;
border-radius: 50%;
-webkit-shape-outside: ellipse();
shape-outside: ellipse();
}

Et voilà, das war es auch schon. CSS3-Shapes funktionieren in Chrome, im Safari ab Version 7.1. und in Firefox ab Version 62. Zusätzlich kann man noch shape-margin verwenden, um etwas Abstand zwischen dem Element und den umfließenden Inhalten zu erreichen.

Beispiel live testen

Damit das Umfließen klappt, sind folgende Bedingungen erforderlich:

Natürlich gibt es viele Möglichkeiten zum Finetunen und genaueren Steuern von CSS3-Shapes, darüber werde ich in nächster Zeit weitere Artikel verfassen.

In Browsern, die CSS3-Shapes nicht unterstützen, fließt der Text wie gewohnt eckig - was in manchen Fällen aber vielleicht auch eine akzeptable Fallbacklösung darstellt. Die Spezifikation für CSS3-Shapes ist derzeit eine Candidate Recommendation.