Gebogener Text entlang eines Pfades

Avatar of Geoff Graham
Geoff Graham am

Mit drei Werkzeugen, die direkt in SVG integriert sind, können wir Text entlang einer gebogenen Linie fließen lassen: <path>, <text> und <textPath>.

Das Schnipsel

<svg viewBox="0 0 500 500">
  <path id="curve" d="M73.2,148.6c4-6.1,65.5-96.8,178.6-95.6c111.3,1.2,170.8,90.3,175.1,97" />
  <text width="500">
    <textPath alignment-baseline="top" xlink:href="#curve">
      Dangerous Curves Ahead
    </textPath>
  </text>
</svg>

Wie wir dahin gekommen sind

Stellen wir uns vor, wir zeichnen eine gebogene Linie in SVG und geben ihr eine ID namens curve.

Siehe den Stift NgwPYB von Geoff Graham (@geoffgraham) auf CodePen.

Dann fügen wir Inhalte in das SVG ein, indem wir das Tag <text> verwenden und ihm eine Breite geben, die mit den viewBox-Dimensionen des SVG übereinstimmt. Wir werden noch nichts sehen, aber wir wissen, dass der Text irgendwo außerhalb des Bildschirms ist.

Siehe den Stift ZyaYOw von Geoff Graham (@geoffgraham) auf CodePen.

Wir wollen diesen Text wirklich sehen. Wir können unseren Text in das Tag <textPath> einpacken und ihn so einstellen, dass er den Linien unseres gebogenen Pfades folgt, indem wir die zuvor festgelegte Pfad-ID aufrufen.

Siehe den Stift Kqywpe von Geoff Graham (@geoffgraham) auf CodePen.

Jetzt geht's zur Sache!

Wir wollen nicht, dass diese Kurve sichtbar ist, also geben wir dem Pfad eine transparente Füllung. Wir könnten das auch in CSS machen, aber der Einfachheit halber wenden wir es hier direkt in der SVG-Markup an.

Siehe den Stift xrPbgx von Geoff Graham (@geoffgraham) auf CodePen.

Der Rest ist CSS! Die genaue Schriftgröße hängt vom Text selbst und der verwendeten Schriftfamilie ab, aber sobald Sie das richtige Gleichgewicht gefunden haben, kümmert sich das SVG selbst um die Reaktionsfähigkeit und stellt sicher, dass alles bei jeder Skalierung auf der Kurve bleibt.

Siehe den Stift SVG-Text entlang eines gebogenen Pfades von Geoff Graham (@geoffgraham) auf CodePen.

Wir könnten diese Methode auf jede Art von gebogenem Pfad anwenden.

Siehe den Stift SVG-Text entlang eines gebogenen Pfades von Geoff Graham (@geoffgraham) auf CodePen.