SVG-patronen bieden een meer flexibele benadering voor het herhalen van een achtergrondafbeelding op een webpagina dan CSS-plavuizen. Laten we eens kijken waarom dat zo is en hoe je ze kunt gebruiken.
Deze zelfstudie is zowel in video- als in tekstvorm beschikbaar. Hier is een overzicht van wat u zult leren:
Laten we beginnen met CSS-betegeling - de meer traditionele methode om een afbeelding voor een achtergrond te herhalen. Het idee is duidelijk: we geven een URL door aan de achtergrond
eigendom van het element dat we willen bedekken. De URL verwijst naar een afbeeldingsbestand, in dit geval een PNG-bestand. Standaard zal onze afbeelding langs beide assen worden herhaald.
body background: url ("cuadros.png");
Zo ziet het eruit:
Laten we nu eens kijken naar SVG-patronen - iets dat, wanneer het voor het eerst werd aangetroffen, een beetje moeilijker te begrijpen is. We beginnen met het handmatig coderen van een voorbeeld.
Voor een opfriscursus over het handmatig coderen van alle verschillende delen van een SVG, zijn deze twee beginnershandleidingen van Kezz Bracey echt nuttig:
Om te beginnen maken we een svg-element, geven het een hoogte en breedte van 100%, zodat het de container waarin we het plaatsen inneemt.
Om een te maken patroon
we moeten het plaatsen in de defs
(definities) gedeelte van de svg, zoals zo:
Laten we nu enkele attributen toevoegen aan dat patroonelement. We geven het een ID, zodat we er later naar kunnen verwijzen, dan zullen we beginnende X- en Y-coördinaten, breedte- en hoogtewaarden opgeven en aangeven dat de patternUnits
zijn userSpaceOnUse
(dit definieert het coördinatenstelsel, waarover je meer kunt lezen op MDN):
Na het instellen van deze parameters, moeten we nu de afbeelding definiëren die zal worden herhaald. Laten we een basiscirkel maken:
Er is nog geen patroon zichtbaar, maar dat komt omdat we het zonder echt hebben gedefinieerd toepassen het voor iets. Laten we dat veranderen door het op a toe te passen
buiten onze
.
Cruciaal is dat je de vullen
kenmerk (dat meestal een kleurwaarde of naam kan zijn) verwijst naar een URL met de ID van ons nieuw gedefinieerde patroon: vullen = "url (# stippen)"
.
Bekijk de demo hieronder:
Voor een meer complex voorbeeld laten we handcodering achter en genereren we een patroon met behulp van een hulpmiddel van derden. We gebruiken heropatterns.com, een website waarmee u vooraf gedefinieerde SVG-patronen kunt selecteren, hun kleuren en kenmerken kunt wijzigen en de gegenereerde code kunt kopiëren.
Ik ga het puzzelpatroon gebruiken:
In plaats van de gegenereerde CSS in zijn geheel te kopiëren, kopieer ik alleen de d = ""
parameter, dit is het eigenlijke pad dat wordt getekend.
De svg-code die we instellen, is bijna precies hetzelfde als in ons vorige voorbeeld. De ID binnen de
zal natuurlijk anders zijn, en we zullen het iets andere dimensies geven, afhankelijk van wat er op heropatterns wordt gebruikt.
Dus waar, in ons laatste voorbeeld, hebben we een gedefinieerd
, deze keer definiëren we een
. We geven het een opvulkleur, dan plakken we in het pad dat we zojuist hebben gekopieerd. Dit is wat dat ons geeft:
😀 CSS tegelwerkprofs:
😡 CSS tegens van tegens:
😀 SVG-patroonprofessionals:
😡 SVG-patroon nadelen:
Bekijk deze vier bronnen, die erg handig kunnen zijn voor het genereren van echte code en ideeën!
SVG is een breed ondersteunde technologie, zelfs in oudere browsers zoals IE9. Sommige SVG-functies genieten echter niet zo veel van ondersteuning en er is echt niet veel informatie beschikbaar voor de details van
eigenschappen (zoals patternUnits
, patternContentUnits
, patternTransform
enz.). Hieronder vindt u een aantal handige links, waaronder documentatie van Mozilla. Deze geven u een idee van welke informatie momenteel beschikbaar is.
Uit mijn eigen tests kan ik u vertellen dat moderne browsers op zowel Windows als Mac OS allemaal prima met SVG-patronen omgingen. Zelfs tot IE11.
Laten we de kernpunten van deze zelfstudie samenvatten.
defs
, zorg ervoor dat het een ID heeft en vermeld dan die ID in jouw vorm naar keuze.