SVG-Muster bieten eine flexiblere Methode zum Wiederholen eines Hintergrundbilds auf einer Webseite als CSS-Kacheln. Schauen wir uns an, warum das so ist und wie Sie sie verwenden können.
Dieses Tutorial ist sowohl in Video- als auch in Textform verfügbar. Hier finden Sie eine Übersicht über das, was Sie lernen werden:
Beginnen wir mit dem CSS-Kacheln - der traditionelleren Methode, ein Bild für einen Hintergrund zu wiederholen. Die Idee ist einfach: Wir übergeben eine URL an die Hintergrund
Eigenschaft des Elements, das wir abdecken möchten. Die URL verweist auf eine Bilddatei, in diesem Fall eine PNG-Datei. Standardmäßig wird unser Bild in beiden Achsen wiederholt.
body Hintergrund: URL ("cuadros.png");
So sieht das aus:
Schauen wir uns nun die SVG-Muster an - etwas, das beim ersten Mal etwas schwieriger zu verstehen ist. Wir beginnen mit der Handcodierung eines Beispiels.
Diese beiden Einsteiger-Tutorials von Kezz Bracey sind sehr hilfreich, um sich über die verschiedenen Teile eines SVGs zu informieren.
Zu Beginn erstellen wir ein svg -Element, das ihm eine Höhe und Breite von 100% gibt, sodass es den Container belegt, in dem wir es platzieren.
So erstellen Sie eine Muster
wir müssen es in die defs
(Definitionen) Abschnitt des SVG, wie folgt:
Nun fügen wir diesem Musterelement einige Attribute hinzu. Wir geben ihm eine ID, damit wir später darauf zurückgreifen können. Dann geben wir die X- und Y-Koordinaten sowie die Werte für Breite und Höhe an und geben an, dass patternUnits
sind userSpaceOnUse
(Dies definiert das Koordinatensystem, über das Sie mehr über MDN erfahren können):
Nachdem Sie diese Parameter eingestellt haben, müssen Sie nun das Bild definieren, das wiederholt werden soll. Lassen Sie uns einen grundlegenden Kreis erstellen:
Es wird noch kein Muster sichtbar sein, aber wir haben es eigentlich ohne definiert bewirbt sich es zu irgendetwas. Ändern wir das, indem wir es auf a anwenden
außerhalb unseres
.
Entscheidend ist, dass Sie das sehen werden füllen
Attribut (normalerweise ein Farbwert oder Name) verweist auf eine URL, die die ID unseres neu definierten Musters enthält: fill = "URL (# Polka-Punkte)"
.
Schauen Sie sich die Demo unten an:
Für ein komplexeres Beispiel lassen wir die Handcodierung zurück und erzeugen ein Muster mit einem Tool von Drittanbietern. Wir verwenden heropatterns.com, eine Website, auf der Sie vordefinierte SVG-Muster auswählen, deren Farben und Attribute ändern und anschließend den generierten Code kopieren können.
Ich werde das Puzzle-Muster verwenden:
Anstatt das generierte CSS vollständig zu kopieren, kopiere ich nur das d = ""
Parameter, der tatsächlich gezeichnete Pfad ist.
Der svg-Code, den wir eingerichtet haben, ist nahezu identisch mit unserem vorherigen Beispiel. Die ID innerhalb der
Natürlich wird es anders sein, und wir geben etwas andere Dimensionen an, je nachdem, was bei Heropattern verwendet wird.
Wo haben wir also in unserem letzten Beispiel eine definiert
, diesmal definieren wir a
. Wir geben ihm eine Füllfarbe und fügen dann den Pfad ein, den wir vor einem Moment kopiert haben. Das gibt uns das:
😀 CSS-Fliesenprofis:
😡 CSS-Kacheln:
😀 SVG-Musterprofis:
😡 SVG-Muster:
Schauen Sie sich diese vier Ressourcen an, die für die Generierung von tatsächlichem Code sehr nützlich sein können und Ideen!
SVG ist eine weit verbreitete Technologie, auch in älteren Browsern wie IE9. Einige SVG-Funktionen werden jedoch in einem solchen Umfang nicht unterstützt, und es gibt wirklich nicht viele Informationen für die Besonderheiten von
Eigenschaften (wie z patternUnits
, patternContentUnits
, patternTransform
usw.). Nachfolgend finden Sie einige nützliche Links, einschließlich der Dokumentation von Mozilla. Sie geben Aufschluss darüber, welche Informationen aktuell verfügbar sind.
Aus meinen eigenen Tests kann ich Ihnen sagen, dass moderne Browser sowohl unter Windows als auch unter Mac OS alle mit SVG-Mustern gut umgegangen sind. Sogar bis zum IE11.
Fassen wir die wichtigsten Punkte dieses Tutorials zusammen.
defs
, Vergewissern Sie sich, dass es eine ID hat, und verweisen Sie dann in Ihrer gewünschten Form auf diese ID.