Erste Schritte mit skalierbaren Vektorgrafiken (SVG)

Als Webdesigner ist es höchste Zeit, dass Sie wissen, wie Sie SVG (Scalable Vector Graphics) in Ihre Websites integrieren. Lassen Sie uns nun einen Blick auf die Grundlagen von SVG sowie auf komplexere Designs wie Logos oder Icons werfen.

Was wir schaffen werden


Das Bild oben ist ein Screenshot - wir verwenden SVG, keine Bilder…

Auflösung unabhängig

Auf der WWDC 2012 gab Apple kürzlich die Veröffentlichung des neuen Retina-Displays MacBook Pro bekannt. Retina-Displays haben eine höhere Pixeldichte (220,5 ppi) als normale Bildschirme oder Monitore, und Apple behauptet, dass die Pixeldichte der Retina-Technologie so hoch ist, dass das Auge bei einem typischen Betrachtungsabstand keine Pixelation wahrnehmen kann. Wenn Sie ein Retina-Display aus erster Hand gesehen haben, werden Sie sicher zustimmen, dass sie atemberaubend aussehen. Diese Retina-Displays können jedoch für uns Webdesigner Probleme bereiten.

Das Problem tritt auf, wenn Bilder, die zuvor als 72ppi gespeichert wurden, auf Retina-Displays verzerrt aussehen. Die Lösung dieses Problems ist immer noch nicht zu 100% gelöst, und Designer suchen nach neuen Wegen, dieses Problem zu umgehen.

Eine mögliche Lösung (in einigen Fällen) ist die Verwendung von SVG. Warum sollten Sie SVG verwenden? SVGs werden als Vektoren gerendert und können daher auf jede Bildschirmauflösung skaliert werden, unter der wir sie betrachten, während die Schärfe und Kristallqualität beibehalten werden, die wir bei ihrer ersten Entwicklung beabsichtigten.

Dies löst nicht alle Probleme. Wir können SVG nicht verwenden, um pixelbasierte Bilder wie .jpg oder png zu rendern (dafür können wir jedoch immer das canvas-Tag verwenden). Wenn es um illustrierte Icons oder Logos geht, erweist sich SVG als äußerst nützlich. Heute werde ich Ihnen die Grundlagen der Verwendung von SVG zeigen und zeigen, wie Sie Ihre Vektoren, die Sie in Adobe Illustrator entworfen haben, mit Leichtigkeit in Ihre Websites integrieren können.

SVG in zehn Punkten zusammengefasst

Bevor wir einsteigen, gebe ich Ihnen einen schnellen Überblick über SVG:

  • SVG steht für Scalable Vector Graphics.
  • SVG wird verwendet, um Vektorgrafiken im Web zu definieren.
  • Das XML-Format wird zur Definition der Vektorgrafiken verwendet.
  • SVGs verlieren nicht an Qualität, wenn Sie ihre Größe ändern oder zoomen.
  • SVGs können animiert werden.
  • SVG integriert sich in den dom und kann neben JavaScript und CSS arbeiten.
  • SVGs können indiziert werden, was bedeutet, dass Suchmaschinen diesen Text aufnehmen, wenn Sie Text im SVG haben.
  • SVGs können mit jeder Auflösung gedruckt werden.
  • SVG ist derzeit eine W3C-Empfehlung.
  • SVG funktioniert in allen modernen Browsern, hat jedoch keine Unterstützung in IE 8 oder darunter. Ein Plugin kann für alles darunter verwendet werden.

Lassen Sie uns einige SVG-Shapes erstellen

Linien

Fangen wir einfach an. Wir erstellen eine Linie. Dazu fügen wir einem HTML-Dokument den folgenden Code hinzu.

  

Zuerst verwenden wir das 'svg'-Tag und dann fügen wir darin das XML-Markup hinzu. Folgendes definieren wir:

  • X1: Die Startposition der Linie auf der x-Achse
  • Y1: Die Startposition der Linie auf der Y-Achse
  • X2: Die Endposition der Linie auf der x-Achse
  • Y2: Die Endposition der Linie auf der y-Achse

Wenn wir zum Beispiel eine diagonale Linie erstellen möchten, können wir das y2-Attribut auf 200 setzen. Dies würde den Endpunkt der Linie um 200 herabsetzen und somit eine diagonale Linie erzeugen. Wir können auch einige Stile darauf anwenden und machen dies mit CSS. Hier haben wir einige Inline-Stile verwendet, Sie können sie jedoch auch in einem externen Stylesheet verwenden.

  

Kreise

Kreise können mit Ausnahme einiger Attribute auf ähnliche Weise wie eine Linie erstellt werden. Hier erstellen wir einen silbernen Kreis mit schwarzem Rand und einem Radius von 50.

   

Mit den Attributen cx und cy können wir die x- und y-Koordinaten der Mitte des Kreises festlegen. Wenn wir diese Attribute übersehen, wird der Mittelpunkt des Kreises auf '0' gesetzt, wodurch der Kreis von der Seite abgeschnitten wird. Das mit 'r' gekennzeichnete Attribut legt schließlich den Radius des Kreises fest.

Rechtecke

Wie Sie inzwischen sehen können, ist das Erstellen von Formen mit SVG sehr einfach. Das Erstellen eines Rechtecks ​​ist keine Ausnahme.

  

Ähnlich wie beim Festlegen der Breite und Höhe eines Elements in CSS machen wir dasselbe, verwenden jedoch die svg-Attribute 'rect'.

Ellipse

Ellipse funktioniert fast genauso wie das Erstellen eines Kreises. Diesmal haben wir jedoch nicht nur einen festen Radius, sondern separate Attribute für den X- und Y-Radius.

  

Polygone

Polygone werden etwas kniffliger (aber nur ein bisschen). Wir beginnen damit, dem Polygon eine Füllfarbe, einen Orangenstrich und eine Strichbreite von 10 zu geben. Anschließend übergeben wir die Punktattribute an das Polygon. Jedes Koordinatenpaar definiert die x- und y-Koordinate jedes Eckpunkts des Polygons. In dieser Demonstration habe ich einen Stern geschaffen.

  

Text

Wie bereits erwähnt, ist SVG großartig, denn wenn Sie Text einschließen, können Suchmaschinen ihn indizieren - anders als andere Rendering-Engines wie Flash.

So fügen wir Text hinzu:

Webdesigntuts+

Im obigen Code können Sie sehen, dass wir die x- und y-Koordinaten hinzugefügt haben. Legen Sie dann einige CSS-Stile fest, z. B. Schriftfamilie, Gewichtung, Größe und Farbe.

Pfade

Innerhalb des Pfad-Tags müssen wir uns auf das Attribut 'd' konzentrieren. Dieses 'd'-Attribut beschreibt den zu erstellenden Pfad. Jeder Befehl innerhalb des Attributs 'd' ist einer der folgenden Befehlsbuchstaben, gefolgt von seinen Parametern. Die Befehle für das Attribut 'd' lauten wie folgt:

  • M: ziehen nach
  • L: Lineto
  • H: horizontales lineto
  • V: vertikales Lineto
  • C: kurveto
  • S: glatte Krümmung
  • Q: quadratische Bezierkurve
  • T: glatte quadratische Bezierkurve
  • EIN: elliptischer Bogen
  • Z: ClownPath

Hier ist ein Beispielcode:

   

Wir können unseren Text sogar von oben setzen, um diesem Pfad folgendermaßen zu folgen:

      Webdesigntuts+  

Wir haben den Pfad im 'defs'-Tag definiert und ihm eine ID von' path1 'gegeben. Wir können dies dann mit dem Attribut 'textPath' auf den Text anwenden.

Erstellen eines skalierbaren SVG-Logos und -Symbols

Nachdem wir nun die Grundlagen zum Erstellen von Formen mit SVG erläutert haben, ist es an der Zeit, etwas komplexer zu machen. Zum Glück für uns muss es nicht sein Das komplex, eigentlich dank Adobe Illustrator sehr einfach. Für diejenigen, die sich mit Illustrator nicht auskennen, kann dies wie folgt beschrieben werden:

Die branchenweit führende Vektorzeichnungsumgebung für die Erstellung von Grafiken, die medienübergreifend skaliert werden.

Öffnen Sie Illustrator und erstellen Sie Ihr Logo oder Symbol. Die meisten professionellen Logos sollten mit Vektoren erstellt worden sein, damit Sie sie von Ihren Kunden erhalten können. Wenn nicht, können Sie versuchen, sie selbst neu zu erstellen. Wenn Sie nicht mit Illustrator arbeiten, gibt es bei Vectortuts eine Fülle von Informationen+

Wenn Sie Ihr Logo oder Symbol haben, gehen Sie zu "Datei> Speichern unter" und wählen Sie "SVG" aus der Dropdown-Liste "Dateityp". Geben Sie Ihrer Datei einen Namen und klicken Sie auf "Speichern". Der SVG-Optionsdialog sollte sich dann öffnen. Dort wählen Sie "SVG-Code anzeigen". Dadurch wird der Code im Browser geöffnet. Sie müssen lediglich die svg-Tags in Ihr HTML-Dokument kopieren und darin einfügen. Wie einfach war das??

Sie können Illustrator auch zum Erstellen von Pfaden verwenden. Zeichnen Sie einfach eine Linie in Illustrator und greifen Sie auf die Attributdaten "d" zu, die Sie wie oben beschrieben für einen Pfad verwenden können. Beispielsweise wurde der Pfad, den ich für den obigen Text "webdesigntuts +" erstellt habe, in Illustrator erstellt und dann in mein Dokument exportiert.

Anschließend können Sie das SVG-Tag mit Standard-CSS-Methoden formatieren oder in Ihr Dokument einfügen. Sie können ihn auch in ein Ankertag umschließen, um einen Link zu erstellen, oder ihn mit JavaScript ansprechen, um zusätzliche Funktionen hinzuzufügen.

Fazit

Es ist nur eine Frage der Zeit, bis Netzhaut und Pixeldichte zu jedem Gerät und Bildschirm gehören, das wir verwenden, und dies wird auch in Zukunft mit zunehmender Dichte vorangetrieben. Durch die Verwendung von SVG können wir skalierbare Grafiken erstellen, die kristallklar werden und mit höheren Bildschirmauflösungen für die Zukunft bereit sind. Natürlich sind SVGs nicht in jeder Situation praktisch, aber für vektorbasierte Illustrationen im Web ist dies definitiv der beste Weg.

Zusätzliche Ressourcen

  • Warum verwenden Sie nicht SVG? auf Nettuts+
  • SVG-Grundlagen
  • Animieren von SVG auf Opera