SVG-Grafiken verzerren mit preserveAspectRatio
Mit dem SVG-Attribut preserveAspectRatio lässt sich die Skalierung von SVG-Grafiken beeinflussen.
SVG-Grafiken sind aus dem Web nicht mehr wegzudenken: Icons, Logos und Animationen sind nur einige der Anwendungs-Bereiche von SVG-Grafiken. Mit dem Attribut preserveAspectRatio
lässt sich beeinflussen, wie die Grafik in Hinsicht auf ihren Container skaliert.
Das Attribut preserveAspectRatio
Das Attribut preserveAspectRatio
ist für die Skalierung von SVG-Grafiken verantwortlich. Es bestimmt, wie die Grafik zu ihrem Container positioniert und skaliert wird. Der Standard-Wert ist xMidYMid
, was bedeutet, dass die Grafik in ihrem Seitenverhältnis gleich bleibt und im Container zentriert wird. Beispiele für die verschiedenen Werte findet ihr hier
Verfügbare Werte
preserveAspectRatio="none"
: Die Viewbox wird in SVG verzerrtpreserveAspectRatio="xMinYMin"
: Die Viewbox wird links oben in SVG positioniert und proportional skaliertpreserveAspectRatio="xMidYMid"
: Die Viewbox wird zentriert in SVG positioniert und proportional skaliertpreserveAspectRatio="xMaxYMax"
: Die Viewbox wird rechts unten in SVG positioniert und proportional skaliertpreserveAspectRatio="xMinYMin slice"
: Die Viewbox wird links oben in SVG positioniert, proportional skaliert und beschnitten
Wichtig für die Verwendung von preserveAspectRatio
ist, dass eure SVG-Grafik eine viewBox
-Angabe hat.
<svg xmlns="https://www.w3.org/2000/svg" width="80" height="80" viewBox="0 0 80 80" preserveAspectRatio="xMidYMid"><polygon points="40 1.958 52.361 27.003 80 31.019 60 50.515 64.721 78.042 40 65.045 15.279 78.042 20 50.515 0 31.019 27.639 27.003 40 1.958"/></svg>
Mit preserveAspectRatio="none"
eine SVG verzerren
Gebt ihr den Wert none
ein, legt ihr damit fest, dass sie keiner einheitlichen Skalierung unterliegt und folglich verzerrt werden kann.
<svg xmlns="https://www.w3.org/2000/svg" width="80" height="80" viewBox="0 0 80 80" preserveAspectRatio="none"><polygon points="40 1.958 52.361 27.003 80 31.019 60 50.515 64.721 78.042 40 65.045 15.279 78.042 20 50.515 0 31.019 27.639 27.003 40 1.958"/></svg>