In questo suggerimento rapido stiamo andando ad abbattere esattamente cosa viewport e viewBox
sono in SVG. Imparerai:
viewBox
Cominciamo!
Se letteralmente analizzi la parola "viewport" riceverai un suggerimento sul suo ruolo in SVG; crea una "porta" attraverso la quale è possibile "visualizzare" una sezione di un SVG. Puoi immaginarlo come qualcosa di simile a una finestra a oblò attraverso la quale puoi vedere il mondo al di là.
La finestra SVG è come una finestra oblò la cui dimensione determina ciò che è possibile vedere attraverso di essaCome con una finestra, la dimensione della vista determina quanto puoi vedere, ma non definisce la dimensione di ciò che potrebbe essere visibile attraverso quella finestra. Ciò che è dall'altra parte potrebbe teoricamente essere di qualsiasi dimensione.
Ad esempio, potresti avere una forma nell'immagine che è 100px
di 100px
, ma se si imposta la vista su 50px
di 50px
vedrai solo una parte di quella forma. La dimensione del viewport viene impostata aggiungendo larghezza
e altezza
attributi al svg
elemento, così:
Nel primo SVG vediamo l'intero 100px
di 100px
cerchio, ma nel secondo SVG quando impostiamo la dimensione della finestra su 50px
di 50px
vediamo solo un quarto del cerchio.
Il viewBox
può essere pensato come il viewport ma con due funzionalità extra: può "pan" e può "zoomare". Costruendo sull'analogia del "guardare attraverso il vetro", se il viewport è come una finestra, il viewBox
è come un telescopio.
Controlliamo il viewBox
aggiungendolo come attributo al svg
elemento, con un valore che comprende quattro numeri separati dallo spazio:
viewBox =
I primi due numeri definiscono la posizione del viewBox
, che penseremo come "panning". Gli ultimi due numeri definiscono le dimensioni del viewBox
, che penseremo come "zoomare".
Nota: così come il svg
elemento, il viewBox
l'attributo può essere utilizzato anche sugli elementi simbolo
, marcatore
, modello
e vista
.
Inizieremo guardando "zoom", che possiamo fare con gli ultimi due viewBox
parametri: larghezza
e altezza
rispettivamente. Lasciamo i primi due parametri a 0 0
per adesso.
Se questi ultimi due parametri hanno le stesse dimensioni del viewport, non ci sono zoom avanti o indietro, quindi non cambia nulla. Dai uno sguardo a SVG numero 3 per esempio:
Ma se rendiamo questi due numeri più grandi delle dimensioni del viewport, faremo lo zoom in modo efficace e, se li ridimensioneremo, aumenteremo lo zoom.
In SVG numero 4 nell'esempio sopra abbiamo impostato il viewBox
larghezza
e altezza
a 100
, che è il doppio della dimensione della nostra finestra. Questo "ingrandisce" e mostra il doppio del contenuto, rivelando nuovamente l'intero cerchio.
Nel quinto SVG nostro viewBox
è impostato su a larghezza
e altezza
di 25
, che è la metà della dimensione della nostra finestra. Questo "ingrandisce", mostrando la metà della quantità di contenuto.
I primi due viewBox
i parametri ti permettono di "pan" impostando dove l'angolo in alto a sinistra del viewBox
dovrebbe essere. Il primo numero controlla la posizione orizzontale e il secondo controlla la posizione verticale.
Dai un'occhiata a come funziona questo panning in questo esempio. Per ricordarti, SVG numero 3 ha a 50
di 50
vista, il viewBox
viene aggiunto ma senza zoom o zoom. Il numero 6 è lo stesso, ma spostato a destra e in basso:
Puoi, naturalmente, eseguire contemporaneamente il pan e lo zoom, utilizzando tutti e quattro i parametri contemporaneamente, ad esempio:
Ogni volta che usi il viewBox
attributo, ricorda di impostare anche le dimensioni della tua finestra. Se non lo fai, verrà impostato su 100% e probabilmente avrai un grafico di grandi dimensioni:
Facciamo bollire tutto in alcuni punti elenco:
viewBox
è simile al viewport, ma puoi anche usarlo per "pan" e "zoom" come un telescopio.larghezza
e altezza
parametri sul svg
elemento.viewBox
al svg
elemento. Può anche essere utilizzato sugli elementi simbolo
, marcatore
, modello
e vista
.viewBox
il valore dell'attributo è composto da quattro parametri separati dallo spazio.viewBox
parametri di controllo "panning" e gli ultimi due controlli "zoom".viewBox
dimensioni, ovvero gli ultimi due parametri, più grandi di quelli della finestra per "rimpicciolire" e più piccoli per "ingrandire".Spero che questo aiuti a chiarire le acque a volte oscure di SVG viewport
e viewBox
. Creazione SVG felice!