今天學到這個,才發覺這應該要在一開始就講的,為什麼呢?讓我們看下去...
說明:代表SVG上定義的長寬,即SVG可視範圍
<svg width="500" height="500"></svg>
說明:代表SVG上真正可以讓人看到的範圍
viewbox有(x y width height)4個數值,一樣x,y設定左上角起始位置,width和height設定viewbox的範圍。
預設值,viewbox = viewport
-->預設viewbox和viewport一樣範圍
當viewbox設定 < viewport時
-->viewbox框的位置會填滿viewport,視覺上圖案會被放大
藍色框為viewbox
viewbox放大填滿viewport
請勿飲酒過量
一般來說,viewport和viewbox長寬比例會相同,但如果不相同時,就必須有些屬性控制比例變化,由兩個參數構成:預設值"xMidYMid meet"
參數 | 說明 |
---|---|
xMin | viewport、viewBox水平靠左對齊 |
xMid | viewport、viewBox水平居中對齊 |
xMax | viewport、viewBox水平靠右對齊 |
YMin | viewport、viewBox垂直靠上對齊,Y要大寫 |
YMid | viewport、viewBox垂直居中對齊,Y要大寫 |
YMax | viewport、viewBox垂直靠下對齊,Y要大寫 |
參數 | 說明 |
---|---|
meet | viewBox等比例縮放,直到寬或高填滿viewport |
slice | viewBox等比例縮放,直到整個填滿viewport,多的部分裁掉 |
preserveAspectRatio寫法範例
<!-- preserveAspectRatio寫法 -->
<svg width="300" height="200" stroke="black" viewbox="0,0,100,100" preserveAspectRatio="xMinYMin slice">
</svg>
初始化的viewport座標系統,左上角為(0,0),初始化的用戶座標系統(即建立在svg canvas上),兩者初始化相同,接著,如果我們調整viewbox就會改變用戶座標系統,用戶座標系統和viewport座標系統就會不相同(用戶座標系統是什麼?)
這就是為什麼我覺得要先講,應該要先了解最基本的畫布大小,才能在裡面作畫阿,失策~
~SVG龜速學習中,如有疑問或是錯誤,歡迎不吝指教~
參考來源:
[1]https://www.jackpu.com/svg-zhong-viewport-yu-viewbox-de-qu-bie/
[2]https://pjchender.blogspot.com/2017/03/svg-viewport-viewbox-zoomdrag.html
[3]https://www.oxxostudio.tw/articles/201409/svg-23-viewpoint-viewBox.html
[4]https://andyyou.github.io/2017/03/17/svg-coordinate-1/