SVG mit Raphaël
Attribute Grundlagen

Der Inhalt

SVG Objekte mit Attributen stylen - Grundlagen

Bei der Vorstellung der einzelnen SVG-Formen habe ich bewusst auf ein besonderes Styling der einzelen Objekte verzeichtet, um den Quellcode möglichst einfach und übersichtlich zu halten. Dager werden alle in Raphaël Formen gezeigten Formen nur mit den Standardvorgaben zur Linienstärke, Linien- und Füllfarbe sowie zu den Elementen der Schriftformatierung gezeigt, d.h. mit einer Linienstärke von 1px, schwarzer Linie, ohne Füllung usw. Bei der tatsächlichen Nutzung von Rapahel zur Darstellung von SVG-Elementen möchte man jedoch in den meisten Fällen mit grafisch ansprechenden Formen arbeiten. Hierzu stellt Raphael die attr-Funktion bereit.

Attribute - Grundlagen

Die verwendung von Attributen zur Gestaltung von SVG-Objekten ist im Grund ganz einfach: man erzeugt zuerst das Objekt und weist ihm dann ein Attribut zu, also:
// Zeichnungsflaeche 320x100 Pixel in div agrundlageneins erzeugen
var paper = Raphael("agrundlageneins", 320, 100);
// Quadrat mit 50 Pixel
var rechteck = paper.rect(20,20,50,50);
// Füllung rot (#f00)
rechteck.attr("fill", "#f00");

Das Objekt sieht dann so aus:

Man kann die diese Vorgehensweise dahingehend verkürzen, dass man die Attributzuweisung gleich an die Funktion zur Erzeugung des Objektes anhängt, also:

// Quadrat mit 50 Pixel und innen gelb
var rechteck = paper.rect(20,20,50,50).attr("fill", "#ff0");

Will man 2 oder mehr Attribute zuweisen, dann kann man dies ganz ausführlich so tun:

// Zeichnungsflaeche 320x100 Pixel in div agrundlagendrei erzeugen
var paper = Raphael("agrundlagendrei", 320, 100);
// Quadrat mit 50 Pixel
var rechteck = paper.rect(20,20,50,50);
// Füllung violett (#f0f)
rechteck.attr("fill", "#f0f");
// Linienstärke Umrandung 5 Pixel
rechteck.attr("stroke-width", 5);

Man kann die Attributzuweisung aber auch in einem Array zusammenfassen:

rechteck.attr({"fill": "#f0f" , "stroke-width": 5 });

...oder eben auch gleich bei der Erzeugung des Objektes alle Attribute anhängen:

var rechteck = paper.rect(20,20,50,50).attr({"fill": "#f0f" , "stroke-width": 5 });

In alle drei Fällen erhält man dieses gestylte Quadrat:

Überblick zu den Attributen

Obwohl nicht alle Attribute für alle Elementtypen relevent sind und die Gesamtübersicht anfangs etwas erschlagend wirkt hier zunächst eine Übersicht zu allen verfügbaren Attributen:

  • arrow-end legt fest, wird das Ende eines Pfades aussehen soll, mögliche Werte sind classic, block, open, oval, diamond und none, außerdem können durch erweiterete Werte noch Länge und Dicke festgelgt werden.
  • arrow-start legt fest, wird das Ende eines Pfades aussehen soll, mögliche Werte wie arrow-end
  • clip-rect legt einen Clippingbereich fest
  • cursorstring CSS Typ des Cursors
  • cx
  • cy
  • fill Legt eine Farbe oder Gradienten oder ein Bild für die Füllung fest
  • fill-opacity Deckungsgrad für die Füllung
  • font Schriftparameter
  • font-family Schriftart
  • font-size Schriftgröße
  • font-weight Schriftgewicht
  • height
  • href URL, wenn das angegebene Element sich wie ein Hyperlink verhält
  • opacity  Deckungsgrad allgemein
  • path
  • r
  • rx
  • ry
  • src URL zu einer Bilddatei, nur für das image-Element
  • stroke Farbe von Linien
  • stroke-dasharray - Linienmuster
  • stroke-linecap Form der Linienenden
  • stroke-linejoin
  • stroke-miterlimit
  • stroke-opacity Deckungsgrad für Linien
  • stroke-width Linienstärke
  • target nur bei href
  • text
  • text-anchor
  • title erzeugt einen Tooltip
  • transform
  • width
  • x
  • y