このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

SVGSVGElement: viewBox プロパティ

Baseline 広く利用可能

この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2015年7月以降、すべてのブラウザーで利用可能です。

viewBoxSVGSVGElement インターフェイスの読み取り専用プロパティで、<svg> 要素の viewBox 属性を SVGAnimatedRect として反映します。

このプロパティは、<svg> 要素の viewBox 属性を説明します。この属性は、<svg> 要素の x 座標、y 座標、幅、高さを定義するために使用する。SVGAnimatedRect.baseVal プロパティと SVGAnimatedRect.animVal プロパティは、どちらも SVGRect オブジェクトです。viewBox が定義されていません場合は null です。これらのオブジェクトの要素は、SVGSVGElement.xSVGSVGElement.ySVGSVGElement.widthSVGSVGElement.height プロパティとは異なる場合があります。これは、xywidthheight 属性が viewBox 属性よりも優先されるためです。

内包されていない SVG 要素の場合、 CSS の x, y, width, height の各プロパティは要素のあらゆる属性よりも優先されますので、 viewBox によって定義された値は要素の外見に反映されない場合があります。

SVGAnimatedRect です。

以下の SVG 開始タグがあったとします。

html
<svg viewBox="-12 -18 200 300" x="5" y="5" height="400" width="600"></svg>

viewBox の値を受け取っていますが、 x, y, width, height の各プロパティとは異なっています。

js
const svg = document.querySelector("svg");
const vBox = svg.viewBox;

// SVGSVGElement viewBox プロパティ
console.dir(vBox); // SVGAnimatedRect { baseVal: SVGRect, animVal: SVGRect }
console.log(vBox.baseVal.x); // -12
console.log(vBox.baseVal.y); // -18
console.log(vBox.baseVal.width); // 200
console.log(vBox.baseVal.height); // 300

// その他の SVGSVGElement プロパティ
console.log(svg.x); // 5
console.log(svg.y); // 5
console.log(svg.width); // 400
console.log(svg.height); // 600

仕様書

仕様書
Scalable Vector Graphics (SVG) 2
# __svg__SVGFitToViewBox__viewBox

ブラウザーの互換性

関連情報