SVGSymbolElement: preserveAspectRatio プロパティ
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.
preserveAspectRatio は SVGSymbolElement インターフェイスの読み取り専用プロパティで、指定された <symbol> 要素の preserveAspectRatio 属性を反映します。これは、symbol のコンテンツが、アスペクト比を維持したまま、指定された空間に収まるようにどのように変倍されるべきかを定義します。
値
SVGAnimatedPreserveAspectRatio オブジェクトです。
例
指定された SVG を例にとると、preserveAspectRatio プロパティを使用することで、symbol 要素の変倍の挙動を確認することができます。
html
<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>
次のように preserveAspectRatio 属性にアクセスすることができます。
js
const symbolElement = document.getElementById("exampleSymbol");
// preserveAspectRatio プロパティにアクセス
const aspectRatio = symbolElement.preserveAspectRatio.baseVal;
console.log(aspectRatio.align); // 出力結果: 2 (xMinYMin)
console.log(aspectRatio.meetOrSlice); // 出力結果: 1 (meet)
仕様書
| Specification |
|---|
| Scalable Vector Graphics (SVG) 2> # __svg__SVGFitToViewBox__preserveAspectRatio> |