幅と高さの 2 つの基本的な幅と高さの設定属性
に加えて、SVG にはさらに 2 つの高度な属性もあります
viewbox とpreserveAspectRatio
viewbox は svg タグの属性です
以下の例を参照してください
<svg width=300 height=300> <rect x=10 y=10 width=10 height=10></rect></svg>
SVG 上に非常に小さな赤い四角形を描きました
次に、ビューボックス属性を追加しましょう
rect { fill: red;}
この時点で、
先ほどは非常にコンパクトだったグラフィック
が非常に大きくなっていることがわかりました。
ここがviewboxのすごいところviewbox="0 0 30 30"
0 0は原点(左上)の座標を指定します
そして30 30はsvgの幅と高さを指定します
svgの座標系をカスタマイズするのと同じです
Master Zhang Xinxuこれに対する答えがあります。より鮮明な説明:
SVG はモニター画面のようなもので、viewBox はスクリーンショット ツールによって選択されたフレームです。
最後のプレゼンテーションは、フレーム内にあるスクリーンショットの内容を再度モニターに全画面表示します!
(幅と高さを指定せずにビューボックスのみを指定した場合、SVG は画面全体を占めます)
上記の SVG の幅と高さは 300×300 なので、30 にスケールしました。 × 30
それを理解するのは簡単です
しかし、比例して拡大縮小されなかった場合、どのように動作するでしょうか?
「フルスクリーンモード」の画像は以下ビューポートと呼ばれます(幅と高さのみ指定)
「スクリーンショットモード」の画像はビューボックスと呼ばれます(幅、高さ、ビューボックスが指定されます)
<svg width=300 height=300 viewbox="0 0 30 30"> <rect x=10 y=10 width=10 height=10></rect></svg>
2つのモードを書きます以下は良い比較になります
これはページ上でどのように表示されるかです
私が追加した緑色のボックスは、ビューポートにキャプチャされたビューボックスの位置を表します
拡大
その位置を調整したい場合
にはpreserveAspectRatio属性の使用が必要です
preserveAspectRatio属性値は2つの部分で構成されます
最初の部分:
属性値 | の意味 |
---|---|
xMin | ビューポートとビューボックス 左揃え |
xMid | ビューポートとビューボックス YMid |
YMax | |
パート 2: | |
属性値 | 意味 |
meet
ビューポートを埋めるために小さい比率の方向にズームしながらアスペクト比を維持します | |||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
这个属性值得默认值大概就是 <svg width=300 height=300> <rect x=10 y=10 width=10 height=10></rect></svg> ログイン後にコピー ログイン後にコピー <svg width=300 height=300> <rect x=10 y=10 width=10 height=10></rect></svg> ログイン後にコピー ログイン後にコピー 第二个属性值 <svg width=300 height=300> <rect x=10 y=10 width=10 height=10></rect></svg> ログイン後にコピー ログイン後にコピー 这里我把x设置为xMin否则就看不到小红方块了 显示的结果就是我vieport中用紫色框标记的部分 ==主页传送门== SVG除了width和height这两个基本的宽高设置属性 SVG视区盒viewbox是svg标签上的属性 <svg width=300 height=300> <rect x=10 y=10 width=10 height=10></rect></svg> ログイン後にコピー ログイン後にコピー rect { fill: red;} ログイン後にコピー ログイン後にコピー 在svg上我们画了一个非常小的红色矩形 <svg width=300 height=300 viewbox="0 0 30 30"> <rect x=10 y=10 width=10 height=10></rect></svg> ログイン後にコピー ログイン後にコピー 这时我们发现
(如果只指定viewbox不指定width和height,那么svg就会占满整个屏幕) viewbox与viewport由于我们上面svg的宽高为300×300,被我们等比缩放为了30×30 下面把“全屏模式”的图片称为viewport(只指定width、height) <svg width=300 height=300> <rect x=10 y=10 width=10 height=10></rect></svg> ログイン後にコピー 下面我把两种模式写在一块这样可以很好的对比 绿色的框是我添加的表示viewport中截取的viewbox位置 preserveAspectRatiopreserveAspectRatio属性值由两部分组成 第一部分:
第二部分:
这个属性值得默认值大概就是 <svg width=300 height=300> <rect x=10 y=10 width=10 height=10></rect></svg> ログイン後にコピー ログイン後にコピー <svg width=300 height=300> <rect x=10 y=10 width=10 height=10></rect></svg> ログイン後にコピー ログイン後にコピー 第二个属性值 <svg width=300 height=300> <rect x=10 y=10 width=10 height=10></rect></svg> ログイン後にコピー ログイン後にコピー 这里我把x设置为xMin否则就看不到小红方块了 显示的结果就是我vieport中用紫色框标记的部分 以上就是SVG(可缩放矢量图形)视区盒属性viewbox与preserveAspectRatio的内容,更多相关内容请关注PHP中文网(www.php.cn)! ソース:php.cn
前の記事:SVG (Scalable Vector Graphics) の基本的なグラフィック描画方法とパス コマンド
次の記事:SVG (Scalable Vector Graphics) 描画ツール Method Draw
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
最新の問題
function_exists() はカスタム関数を決定できません
Function test () {return true;} if (function_exists ('test')) {echo "テストは関数です";
から 2024-04-29 11:01:01
0
2
1807
Google Chromeのモバイル版を表示する方法
こんにちは、先生、Google Chrome をモバイル版に変更するにはどうすればよいですか?
から 2024-04-23 00:22:19
0
10
1952
親ウィンドウには出力がありません
document.onclick = function(){ window.opener.document.write('私は子ウィンドウの出力です');
から 2024-04-18 23:52:34
0
1
1559
関連トピック
詳細>
|