Erste Schritte mit CSS-Formen

Inhalte um benutzerdefinierte Pfade zusammenfassen

Razvan Caliman
Razvan Caliman

Lange Zeit sind Webdesignschaffende gezwungen, bei der Erstellung von Designs die Grenzen des Rechtecks einzuhalten. Die meisten Inhalte im Web befinden sich immer noch in einfachen Feldern, weil die meisten kreativen Köpfe bei einem nicht rechteckigen Layout frustrierend sind. Das wird sich mit der Einführung von CSS-Formen ändern, die ab Chrome 37 verfügbar sind. CSS-Formen ermöglichen es Webdesignern, Inhalte um benutzerdefinierte Pfade wie Kreise, Ellipsen und Polygone zu brechen und so die Einschränkungen des Rechtecks zu überwinden.

Formen können manuell definiert oder aus Bildern abgeleitet werden.

Sehen wir uns ein sehr einfaches Beispiel an.

Vielleicht waren Sie so naiv wie ich, als Sie zum ersten Mal ein Bild mit transparenten Teilen schwebten, in dem Sie erwartet haben, dass der Inhalt die Lücken ein- und ausfüllt, nur um von der rechteckigen Wickelform enttäuscht zu sein, die um das Element herum vor sich blieb. CSS-Formen können dieses Problem lösen.

Formen aus einem Bild extrahieren
<img class="element" src="image.png" />
<p>Lorem ipsum…</p>

<style>
.element{
  shape-outside: url(image.png);
  shape-image-threshold: 0.5;
  float: left;
}
</style>

Die CSS-Deklaration shape-outside: url(image.png) weist den Browser an, eine Form aus dem Bild zu extrahieren.

Die Eigenschaft shape-image-threshold definiert die minimale Deckkraft von Pixeln, die zum Erstellen der Form verwendet wird. Der Wert muss zwischen 0.0 (vollständig transparent) und 1.0 (völlig undurchsichtig) liegen. shape-image-threshold: 0.5 bedeutet also, dass nur Pixel mit einer Deckkraft von 50% und mehr zur Erstellung der Form verwendet werden.

Das Attribut float ist hier entscheidend. Die Eigenschaft shape-outside definiert zwar die Form des Bereichs, um den Inhalt umgebrochen wird (ohne Gleitkommazahl), Sie sehen die Auswirkungen der Form nicht.

Elemente haben einen Pufferbereich auf der gegenüberliegenden Seite ihres float-Werts. Wenn beispielsweise ein Element mit einem Bild einer Kaffeetasse nach links geschoben wird, wird der Pufferbereich rechts neben der Tasse erstellt. Auch wenn Sie ein Bild mit Lücken auf beiden Seiten erstellen können, wird der Inhalt nur um die Form auf der gegenüberliegenden Seite gelegt, die durch die Eigenschaft Gleitkommazahl angegeben wird, links oder rechts, nie beide.

Künftig wird es dank der Einführung von CSS-Ausschlüssen möglich sein, shape-outside für Elemente zu verwenden, die nicht als „Float“ fungieren.

Formen manuell erstellen

Sie können Formen nicht nur aus Bildern extrahieren, sondern auch manuell codieren. Zum Erstellen von Formen können Sie aus folgenden funktionalen Werten wählen: circle(), ellipse(), inset() und polygon(). Jede Formfunktion akzeptiert einen Satz von Koordinaten und ist mit einem Referenzfeld gekoppelt, das das Koordinatensystem festlegt. Weitere Informationen zu Referenzfeldern

Die Funktion Kreis()

Abbildung des Werts für die Form „Circle()“

Die vollständige Notation für einen Kreisformwert ist circle(r at cx cy), wobei r der Radius des Kreises ist, während cx und cy Koordinaten des Kreismittelpunkts auf der X-Achse und der Y-Achse sind. Die Koordinaten für den Mittelpunkt des Kreises sind optional. Wenn Sie sie weglassen, wird der Mittelpunkt des Elements (der Schnittpunkt seiner Diagonalen) als Standardwert verwendet.

.element{
  shape-outside: circle(50%);
  width: 300px;
  height: 300px;
  float: left;
}

Im Beispiel oben wird der Inhalt von der Außenseite eines kreisförmigen Pfades umschlossen. Das einzelne Argument 50% gibt den Radius des Kreises an, der in diesem speziellen Fall der Hälfte der Breite oder Höhe des Elements entspricht. Wenn Sie die Abmessungen des Elements ändern, wirkt sich das auf den Radius der Kreisform aus. Dies ist ein einfaches Beispiel dafür, wie CSS-Formen responsiv sein können.

Bevor wir fortfahren, ein paar Worte: Denken Sie daran, dass CSS-Formen nur die Form des Floating-Bereichs um ein Element beeinflussen. Hat das Element einen Hintergrund, wird dieser nicht von der Form abgeschnitten. Um diesen Effekt zu erzielen, müssen Sie die Eigenschaften der CSS-Maskierung verwenden, also entweder clip-path oder mask-image. Die Eigenschaft clip-path ist sehr praktisch, da sie der gleichen Notation wie CSS-Formen folgt, sodass Sie Werte wiederverwenden können.

Illustration der Form „circle()“ und „clip-path“

In den Abbildungen in diesem Dokument wird die Form mithilfe von Beschnitten hervorgehoben, damit Sie die Effekte besser verstehen können.

Zurück zur Kreisform.

Wenn für den Kreisradius Prozentsätze verwendet werden, wird der Wert mit einer etwas komplexeren Formel berechnet: Quadratwurzel(Breite^2 + Höhe^2) / Quadrat(2). Dies ist hilfreich, da Sie sich so vorstellen können, wie die daraus entstehende Kreisform aussehen würde, wenn die Abmessungen des Elements nicht identisch sind.

Alle CSS-Einheitstypen können in Formfunktionskoordinaten verwendet werden: px, em, rem, vw, vh usw. Wählen Sie das Modell aus, das flexibel oder starr genug ist.

Sie können die Position des Kreises anpassen, indem Sie explizite Werte für die Koordinaten seines Mittelpunkts festlegen.

.element{
  shape-outside: circle(50% at 0 0);
}

Dadurch wird der Mittelpunkt des Kreises am Ursprung des Koordinatensystems positioniert. Was ist das Koordinatensystem? Hier werden Referenzfelder eingeführt.

Referenzfelder für CSS-Formen

Das Referenzfeld ist ein virtueller Rahmen um das Element, der das Koordinatensystem festlegt, mit dem die Form gezeichnet und positioniert wird. Der Ursprung des Koordinatensystems befindet sich in der oberen linken Ecke, wobei die X-Achse nach rechts und die Y-Achse nach unten zeigt.

Koordinatensystem für CSS-Formen

shape-outside ändert die Form des Pufferbereichs, um den Inhalt umgebrochen wird. Der Pufferbereich erstreckt sich bis zu den äußeren Rändern der Box, die durch die Eigenschaft margin definiert werden. Dies wird als margin-box bezeichnet und ist das Standardreferenzfeld für eine Form, wenn nicht explizit angegeben ist.

Die folgenden beiden CSS-Deklarationen führen zu identischen Ergebnissen:

.element{
  shape-outside: circle(50% at 0 0);
  /* identical to: */
  shape-outside: circle(50% at 0 0) margin-box;
}

Für das Element wurde noch keine Marge festgelegt. Es kann davon ausgegangen werden, dass sich der Ursprung des Koordinatensystems und der Mittelpunkt des Kreises in der oberen linken Ecke des Inhaltsbereichs des Elements befinden. Das ändert sich, wenn Sie eine Gewinnmarge festlegen:

.element{
  shape-outside: circle(50% at 0 0) margin-box;
  margin: 100px;
}

Der Ursprung des Koordinatensystems liegt nun außerhalb des Inhaltsbereichs des Elements (100 Pixel oben und 100 Pixel links), ebenso wie der Mittelpunkt des Kreises. Der berechnete Wert des Kreisradius wird auch größer, um die größere Oberfläche des Koordinatensystems zu berücksichtigen, das durch das Referenzfeld margin-box festgelegt wurde.

Randbox-Koordinatensystem mit und ohne Rand
Für das Referenzfeld stehen mehrere Optionen zur Auswahl: „margin-box“, „margin-box“, „adding-box“ und „content-box“. Ihre Namen deuten auf ihre Begrenzungen hin. Zuvor haben wir `margin-box` erläutert. Die `Border-box` wird durch die äußeren Ränder der Elementränder beschränkt. Die Padding-Box wird durch den Abstand des Elements beschränkt. Die Contentbox hingegen ist identisch mit der tatsächlichen Fläche, die vom Inhalt innerhalb eines Elements verwendet wird.
Abbildung aller Referenzfelder

Mit einer shape-outside-Deklaration kann jeweils nur ein Referenzfeld verwendet werden. Jedes Referenzfeld beeinflusst die Form auf andere und manchmal subtile Weise. Es gibt einen weiteren Artikel, der näher auf die Referenzfelder für CSS-Formen eingeht.

Mit der Funktion ellipse()

Abbildung des Formwerts „ellipse()“

Ellipsen sehen aus wie zerquetschte Kreise. Sie sind als ellipse(rx ry at cx cy) definiert, wobei rx und ry die Radien für die Ellipse auf der X- und der Y-Achse sind, während cx und cy die Koordinaten für den Mittelpunkt der Ellipse sind.

.element{
  shape-outside: ellipse(150px 300px at 50% 50%);
  width: 300px;
  height: 600px;
}

Die Prozentwerte werden aus den Dimensionen des Koordinatensystems berechnet. Hier musst du nichts witzig machen. Wenn Sie die Koordinaten des Ellipsenmittelpunkts weglassen, werden sie aus dem Mittelpunkt des Koordinatensystems abgeleitet.

Radien auf der X- und Y-Achse können auch mit Keywords definiert werden: farthest-side gibt einen Radius zurück, der der Entfernung zwischen dem Ellipsenmittelpunkt und der Seite des Referenzkastens, die am weitesten von ihr entfernt ist, entspricht, während closest-side das genaue Gegenteil bedeutet. Verwenden Sie die kürzeste Entfernung zwischen dem Mittelpunkt und einer Seite.

.element{
  shape-outside: ellipse(closest-side farthest-side at 50% 50%);
  /* identical to: */
  shape-outside: ellipse(150px 300px at 50% 50%);
  width: 300px;
  height: 600px;
}

Dies kann nützlich sein, wenn sich die Abmessungen des Elements (oder das Referenzfeld) auf unvorhersehbare Weise ändern, aber die Ellipsenform angepasst werden soll.

Dieselben Schlüsselwörter farthest-side und closest-side können auch für den Radius in der Formfunktion circle() verwendet werden.

Mit der Funktion polygon()

Darstellung des Formwerts „polygon()“

Wenn Kreise und Ellipsen zu stark eingeschränkt sind, eröffnet die Funktion für Polygonformen eine Vielzahl von Optionen. Das Format ist polygon(x1 y1, x2 y2, ...), wobei Sie Paare von x-y-Koordinaten für jeden Scheitelpunkt (Punkt) eines Polygons angeben. Ein Polygon muss mindestens drei Paare enthalten: ein Dreieck.

.element{
  shape-outside: polygon(0 0, 0 300px, 300px 600px);
  width: 300px;
  height: 600px;
}

Scheitelpunkte werden auf dem Koordinatensystem platziert. Für responsive Polygone können Sie für einige oder alle Koordinaten Prozentwerte verwenden.

.element{
  /* polygon responsive to font-size*/
  shape-outside: polygon(0 0, 0 100%, 100% 100%);
  width: 20em;
  height: 40em;
}

Der optionale fill-rule-Parameter wird aus SVG importiert. Er weist den Browser an, wie bei sich selbst überschneidenden Pfaden oder umschlossenen Formen die „Innenseite“ eines Polygons berücksichtigt werden soll. Jonitrythall erklärt sehr gut, wie die Füllregeleigenschaft in SVG funktioniert. Wenn nichts definiert ist, wird fill-rule standardmäßig auf nonzero gesetzt.

.element{
  shape-outside: polygon(0 0, 0 100%, 100% 100%);
  /* identical to: */
  shape-outside: polygon(nonzero, 0 0, 0 100%, 100% 100%);
}

Die Funktion inset()

Mit der Formfunktion inset() können Sie rechteckige Formen erstellen, um die Inhalte umbrechen können. Dies mag unlogisch klingen, wenn man die ursprüngliche Annahme angeht, dass CSS Shapes Webinhalte aus einfachen Feldern befreit. Das kann sehr gut sein. Ich habe noch keinen Anwendungsfall für inset() gefunden, der noch nicht mit Gleitkommazahlen und Rändern oder mit polygon() erreichbar ist. Allerdings bietet inset() einen besser lesbaren Ausdruck für rechteckige Formen als polygon().

Die vollständige Notation für eine eingefügte Formfunktion ist inset(top right bottom left border-radius). Die ersten vier Positionsargumente sind von den Rändern des Elements nach innen versetzt. Das letzte Argument ist der Rahmenradius der rechteckigen Form. Sie ist optional, Sie können sie also weglassen. Sie entspricht der Kurzschreibweise border-radius, die Sie bereits in CSS verwenden.

.element{
  shape-outside: inset(100px 100px 100px 100px);
  /* yields a rectangular shape which is 100px inset on all sides */
  float: left;
}

Formen aus Referenzfeldern erstellen

Wenn Sie für die shape-outside-Eigenschaft keine Formfunktion angeben, kann der Browser eine Form aus dem Referenzfeld des Elements ableiten. Das Standardreferenzfeld ist margin-box. Noch nichts Exotisch. So funktionieren Floats. Mit dieser Technik können Sie jedoch die Geometrie eines Elements wiederverwenden. Sehen wir uns die border-radius-Property an.

Wenn Sie damit die Ecken eines unverankerten Elements abrunden, erzielen Sie den Beschneidungseffekt, der Pufferbereich bleibt jedoch rechteckig. Fügen Sie shape-outside: border-box hinzu, um die von border-radius erstellte Kontur zu umschließen.

Form mithilfe des Border Box-Referenzfelds aus dem Rahmenradius eines Elements extrahieren
.element{
  border-radius: 50%;
  shape-outside: border-box;
  float: left;
}

Natürlich können Sie alle Referenzfelder auf diese Weise verwenden. Ein weiterer Verwendungszweck für abgeleitete Formen sind gezogene Anführungszeichen.

Offset-Zitat unter Verwendung des Inhaltsfeld-Referenzfelds erstellen

Der Offset – Pull-Zitat-Effekt kann erreicht werden, wenn nur Gleitkomma- und Randeigenschaften verwendet werden. Dazu müssen Sie jedoch das quote-Element im HTML-Baum an der Stelle positionieren, an der es gerendert werden soll.

So erzielen Sie mit zusätzlicher Flexibilität den gleichen Offset-Pull-Zitat-Effekt:

.pull-quote{
  shape-outside: content-box;
  margin-top: 200px;
  float: left;
}

Das content-box-Referenzfeld wird explizit für das Koordinatensystem der Form festgelegt. In diesem Fall definiert die Menge des Inhalts im Zitat die Form, um die äußerer Inhalt umgebrochen wird. Die Eigenschaft margin-top wird hier verwendet, um das Pull-Zitat unabhängig von seiner Position im HTML-Baum zu positionieren (Offset).

Formrand

Sie werden feststellen, dass ein Umschließen von Inhalten um eine Form dazu führen kann, dass sie zu nah am Element anreibt. Mit der Eigenschaft shape-margin können Sie zusätzliche Abstände um die Form festlegen.

.element{
  shape-outside: circle(40%);
  shape-margin: 1em;
  float: left;
}

Der Effekt ähnelt dem, den Sie von der Verwendung der regulären margin-Eigenschaft kennen, aber der shape-margin wirkt sich nur auf den Bereich um den shape-outside-Wert aus. Sie fügt nur dann einen Abstand um die Form hinzu, wenn im Koordinatensystem Platz dafür ist. Deshalb ist der Kreisradius im Beispiel oben auf 40 % und nicht auf 50 % festgelegt. Wenn der Radius auf 50 % festgelegt wäre, hätte der Kreis die gesamte Fläche im Koordinatensystem eingenommen und der Effekt von shape-margin hätte keinen Platz. Denken Sie daran, dass die Form letztendlich an den margin-box des Elements (das Element und den umgebenden margin) beschränkt ist. Wenn die Form größer ist und überläuft, wird sie an margin-box abgeschnitten, sodass am Ende eine rechteckige Form entsteht.

Beachten Sie, dass shape-margin nur einen einzelnen positiven Wert akzeptiert. Sie hat keine Longhand-Notation. Was ist eigentlich der obere Formrand für einen Kreis?

Formen animieren

Sie können CSS-Formen mit vielen anderen CSS-Funktionen wie Übergängen und Animationen kombinieren. Ich muss jedoch betonen, dass es für die Nutzer sehr ärgerlich ist, wenn sich das Textlayout beim Lesen ändert. Achten Sie also genau darauf, wenn Sie sich für Animationen mit Formen entscheiden.

Sie können die Radien und Mittelpunkte für circle()- und ellipse()-Formen animieren, solange sie in Werten definiert sind, die der Browser interpolieren kann. Es ist möglich, von circle(30%) nach circle(50%) zu wechseln. Eine Animation zwischen circle(closest-side) und circle(farthest-side) erstickt den Browser jedoch.

.element{
  shape-outside: circle(30%);
  transition: shape-outside 1s;
  float: left;
}

.element:hover{
  shape-outside: circle(50%);
}
GIF eines animierten Kreises

Durch die Animation von polygon()-Formen können weitere interessante Effekte erzielt werden. Hierbei muss jedoch beachtet werden, dass das Polygon dieselbe Anzahl von Scheitelpunkten zwischen den beiden Animationszuständen haben muss. Der Browser kann nicht interpolieren, wenn Sie Eckpunkte hinzufügen oder entfernen.

Ein Trick besteht darin, die maximal benötigte Anzahl von Eckpunkten hinzuzufügen und diese im Animationsstatus an der Stelle zu positionieren, an der weniger Ränder zur Form wahrgenommen werden sollen.

.element{
  /* four vertices (looks like rectangle) */
  shape-outside: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  transition: shape-outside 1s;
}

.element:hover{
  /* four vertices, but second and third overlap (looks like triangle) */
  shape-outside: polygon(0 0, 100% 50%, 100% 50%, 0 100%);
}
GIF eines animierten Dreiecks

Inhalt innerhalb einer Form zusammenfassen

Screenshot der Demo „Alice im Wunderland“ mit CSS-Formen zum Zusammenfassen von Inhalten

Der ursprüngliche Entwurf der CSS-Formenspezifikation enthielt eine shape-inside-Eigenschaft, mit der Inhalte in eine Form eingebunden werden konnten. Eine Zeit lang gab es sogar Implementierungen in Chrome und Webkit. Das Einbinden beliebig positionierter Inhalte in einen benutzerdefinierten Pfad erfordert jedoch viel mehr Aufwand und Recherche, um alle möglichen Szenarien abzudecken und Programmfehler zu vermeiden. Aus diesem Grund wurde die shape-inside-Eigenschaft auf CSS-Formen-Ebene 2 zurückgestellt und ihre Implementierungen wurden zurückgezogen.

Mit etwas Aufwand und kleinen Kompromissen können Sie jedoch trotzdem den Effekt erzielen, Inhalte in eine benutzerdefinierte Form zu verpacken. Der Hack besteht darin, zwei schwebende Elemente mit shape-outside zu verwenden, die sich an gegenüberliegenden Seiten eines Containers befinden. Der Kompromiss besteht darin, dass Sie ein oder zwei leere Elemente verwenden müssen, die keine semantische Bedeutung haben, aber als Streute dienen, um im Inneren den Anschein einer Form zu erzeugen.

<div>
  <div class='left-shape'></div>
  <div class='right-shape'></div>

  Lorem ipsum...
</div>

Die Position der Strut-Elemente .left-shape und .right-shape oben im Container ist wichtig, da sie nach links und rechts verschoben werden, um den Inhalt zu flanieren.

.left-shape{
  shape-outside: polygon(0 0, ...);
  float: left;
  width: 50%;
  height: 100%;
}

.right-shape{
  shape-outside: polygon(50% 0, ...);
  float: right;
  width: 50%;
  height: 100%;
}
Darstellung der Problemumgehung für Shape-Inside der Alice-Demo

Durch diese Gestaltung nehmen die beiden schwebenden Stützen den gesamten Raum innerhalb des Elements ein, aber die shape-outside-Eigenschaften schaffen Platz für den Rest des Inhalts.

Wenn CSS-Formen nicht vom Browser unterstützt werden, führt dies zu unschönen Effekten, da der gesamte Inhalt nach unten verschoben wird. Deshalb ist es wichtig, die Funktion schrittweise zu verbessern.

In den vorherigen Beispielen für Formanimationen werden Sie feststellen, dass Textverschiebungen lästig sein können. Nicht alle Anwendungsfälle rechtfertigen eine animierte Form. Sie können jedoch andere Eigenschaften animieren, die mit CSS-Formen interagieren, um dort Effekte hinzuzufügen, wo es sinnvoll ist.

In der Demo zu Alice im Wunderland mit CSS-Formen haben wir die Scrollposition verwendet, um den oberen Rand des Inhalts zu ändern. Der Text wird zwischen zwei unverankerten Elementen gequetscht. Wenn es nach unten bewegt wird, muss es gemäß der shape-outside der beiden unverankerten Elemente neu angeordnet werden. Dies vermittelt den Eindruck, dass der Text durch das Kaninchenloch geht, und ergänzt das Storytelling. Grenzwertig? Kann sein. Aber es sieht cool aus.

Da das Textlayout nativ vom Browser erfolgt, ist die Leistung besser als bei Verwendung einer JavaScript-Lösung. Durch das Ändern des oberen Rands beim Scrollen werden jedoch zahlreiche Neulayout- und Paint-Ereignisse ausgelöst, was die Leistung spürbar verringern kann. Mit Vorsicht zu verwenden! Die Verwendung von CSS-Formen ohne Animation führt jedoch nicht zu spürbaren Leistungseinbußen.

Progressive Enhancement

Gehen wir davon aus, dass der Browser keine CSS-Formen unterstützt, und bauen Sie darauf auf, wenn Sie die Funktion entdecken. Modernizr ist eine gute Lösung für die Funktionserkennung. Im Abschnitt Nicht-Core-Erkennung gibt es einen Test für CSS-Formen.

Einige Browser bieten eine Funktionserkennung in CSS über die Regel @supports, ohne dass externe Bibliotheken erforderlich sind. Google Chrome, das auch CSS-Formen unterstützt, versteht die @supports-Regel. So können Sie damit schrittweise Folgendes optimieren:

.element{
  /* styles for all browsers */
}

@supports (shape-outside: circle(50%)){
  /* styles only for browsers which support CSS Shapes */
  .element{
    shape-outside: circle(50%);
  }
}

Lea Verou hat weitere Informationen zur Verwendung der @supports-Regel für CSS veröffentlicht.

Unterscheidung von Preisvergleichsportal-Ausschlüssen

Das, was wir heute als CSS-Formen kennen, wurden zu Beginn der Spezifikation CSS-Ausschlüsse und -Formen genannt. Der Wechsel bei der Benennung mag als Nuancen erscheinen, ist aber tatsächlich sehr wichtig. CSS-Ausschlüsse sind jetzt eine separate Spezifikation und ermöglichen das Einfügen von Inhalten um beliebig positionierte Elemente, ohne dass eine Gleitkommazahl-Eigenschaft erforderlich ist. Stellen Sie sich vor, Inhalte um ein absolut positioniertes Element zu umschließen. Das ist ein Anwendungsfall für CSS-Ausschlüsse. CSS-Formen definieren nur den Pfad, um den der Inhalt umgebrochen wird.

Formen und Ausschlüsse sind also nicht dasselbe, sondern ergänzen sich. CSS-Formen sind bereits in Browsern verfügbar, während CSS-Ausschlüsse noch nicht mit der Interaktion mit Formen implementiert werden.

Tools für die Arbeit mit CSS-Formen

Sie können Pfade in klassischen Bild-Authoring-Tools erstellen, aber derzeit wird bei keinem dieser Tools die erforderliche Syntax für CSS-Formwerte exportiert. Und selbst wenn das der Fall wäre, wäre das keine allzu praktikable Lösung.

CSS-Formen werden im Browser verwendet, wo sie auf andere Elemente auf der Seite reagieren. Es ist sehr hilfreich, die Effekte der Bearbeitung der Form auf den umgebenden Inhalt zu visualisieren. Es gibt einige Tools, die Sie bei diesem Workflow unterstützen:

Klammer: Bei der Erweiterung für Klammern für den CSS-Form-Editor wird der Live-Vorschaumodus des Code-Editors verwendet, um einen interaktiven Editor als Overlays zu verwenden, um Formwerte zu bearbeiten.

Google Chrome: Die Erweiterung für den CSS-Formeditor für Google Chrome erweitert die Entwicklertools des Browsers um Steuerelemente zum Erstellen und Bearbeiten von Formen. Über dem ausgewählten Element wird ein interaktiver Editor platziert.

Das Inspector-Tool in Google Chrome unterstützt das Hervorheben von Formen. Wenn Sie den Mauszeiger auf ein Element mit der Eigenschaft shape-outside bewegen, wird es hell, um die Form zu veranschaulichen.

Formen aus Bildern: Wenn Sie lieber Bilder generieren und den Browser Formen daraus extrahieren lassen möchten, hat Rebecca Hauck ein gutes Tutorial für Photoshop verfasst.

Polyfill: Google Chrome ist der erste große Browser mit CSS-Formen. Diese Funktion wird demnächst auch auf Apple iOS 8 und Safari 8 unterstützt. Andere Browseranbieter werden sie möglicherweise in Zukunft in Betracht ziehen. Bis dahin gibt es einen Polyfill für CSS-Formen, der grundlegende Unterstützung bietet.

Fazit

In einem Web, in dem Inhalte meistens in einfachen Feldern eingeschlossen sind, bieten CSS Shapes eine Möglichkeit, ein ausdrucksstarkes Layout zu erstellen, das die Lücke zwischen Web- und Printdesign schließt. Natürlich können Formen auch missbraucht werden und Ablenkungen erzeugen. Aber wenn sie mit Geschmack und gutem Urteilsvermögen angewandt werden, können Formen die Präsentation von Inhalten verbessern und die Aufmerksamkeit der Nutzenden auf eine für sie einzigartige Weise lenken.

Hier habe ich Ihnen eine Sammlung von Arbeiten anderer zur Verfügung gestellt, hauptsächlich in gedruckter Form, die interessante Einsatzmöglichkeiten für das nicht-rechteckige Layout zeigt. Ich hoffe, dies inspiriert Sie, CSS-Formen auszuprobieren und mit neuen Designideen zu experimentieren.

Vielen Dank an Pearl Chen, Alan Stearns und Zoltan Horvath für die Rezension dieses Artikels und die wertvollen Einblicke.