This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
The preserveAspectRatio read-only property of the SVGSymbolElement interface reflects the preserveAspectRatio attribute of the given <symbol> element. It defines how the symbol's content should be scaled to fit the given space, preserving its aspect ratio.
An SVGAnimatedPreserveAspectRatio object.
Given the following SVG, we can use the preserveAspectRatio property to retrieve the scaling behavior for the symbol element:
<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200">
<defs>
<symbol
id="exampleSymbol"
viewBox="0 0 100 100"
preserveAspectRatio="xMinYMin meet">
<circle cx="50" cy="50" r="50" fill="blue" />
</symbol>
</defs>
<use href="#exampleSymbol" x="50" y="50" width="100" height="100" />
</svg>
We can access the preserveAspectRatio attribute:
const symbolElement = document.getElementById("exampleSymbol");
// Access the preserveAspectRatio property
const aspectRatio = symbolElement.preserveAspectRatio.baseVal;
console.log(aspectRatio.align); // Output: 2 (xMinYMin)
console.log(aspectRatio.meetOrSlice); // Output: 1 (meet)
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
preserveAspectRatio |
1 | 12 | 1.5 | ≤12.1 | 3 | 18 | 4 | ≤12.1 | 1 | 1.0 | 3 | 1 |
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/SVGSymbolElement/preserveAspectRatio