Um die Koordinaten innerhalb des SVG-Bildes unabhängig von der skalierten Größe des Bildes anzugeben, verwenden Sie das Attribut viewBox
auf dem SVG-Element, um festzulegen, wie der Begrenzungsrahmen des Bilds im Koordinatensystem des Bildes ist width
und height
Attribute zum Definieren der Breite oder Höhe in Bezug auf die enthaltende Seite.
Zum Beispiel, wenn Sie die folgenden Schritte aus:
<svg>
<polygon fill=red stroke-width=0
points="0,10 20,10 10,0" />
</svg>
Es wird als 10px von 20px Dreieck machen wird:
Nun, wenn Sie nur die Breite und Höhe festgelegt, das wird die Größe des SVG-Elements ändern, aber das Dreieck nicht skalieren:
Wenn Sie das Ansichtsfeld festlegen, wird das Bild so transformiert, dass das angegebene Feld (im Koordinatensystem des Bildes) auf die angegebene Breite und Höhe (im Koordinatensystem) skaliert wird der Seite). Zum Beispiel das Dreieck zu skalieren bis sein 100px von 50px:
<svg width=100 height=50 viewBox="0 0 20 10">
<polygon fill=red stroke-width=0
points="0,10 20,10 10,0" />
</svg>
Wenn Sie es skalieren möchten auf die Breite des HTML-Ansichtsfenster auf:
<svg width="100%" viewBox="0 0 20 10">
<polygon fill=red stroke-width=0
points="0,10 20,10 10,0" />
</svg>
Beachten Sie, dass das Seitenverhältnis standardmäßig beibehalten wird.Also, wenn Sie angeben, dass das Element eine Breite von 100% aufweisen, aber eine Höhe von 50px, wird es eigentlich nur auf die Höhe von 50px vergrößern (es sei denn Sie ein sehr schmales Fenster haben):
<svg width="100%" height="50px" viewBox="0 0 20 10">
<polygon fill=red stroke-width=0
points="0,10 20,10 10,0" />
</svg>
Wenn Sie es wirklich wollen horizontal strecken, Seitenverhältnis Erhaltung mit preserveAspectRatio=none
deaktivieren:
<svg width="100%" height="50px" viewBox="0 0 20 10" preserveAspectRatio="none">
<polygon fill=red stroke-width=0
points="0,10 20,10 10,0" />
</svg>
(Beachten Sie, dass ich in meinen Beispielen die Syntax für die HTML-Einbettung verwende, um die Beispiele als Bild in StackOverflow einzubinden. Ich bin stattdessen in eine andere SVG eingebettet, daher muss ich eine gültige XML-Syntax verwenden)
Versuch vor zu arbeiten, Cent in Svg Breiten und Höhen. – ncm
@ncm Wie wäre es mit JS getan? – Mawg