国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > XML > 正文

編寫SVG布置畫布和坐標系統以及視窗的方法

2024-09-05 20:55:35
字體:
來源:轉載
供稿:網友

比喻

想象一個無窮大的畫布,你可以在畫布上的任何地方繪制你想要的任何內容,你也可以以任何你想要的尺寸來繪制。這就是SVG畫布。

現在接著想象,有人在你的畫布正前方建立了一堵同樣的無窮大的墻,墻的寬度和高度也是無限延伸的,把畫布全都擋住了。

因為墻都是直接放在畫布前面的,所以我們無法看到畫布上的內容。但是建墻的人很好,幫我們開了一扇窗戶,甚至還給了我們設置這扇窗戶大小尺寸的能力。這扇窗戶就是SVG視窗。

墻的筑造者并沒有在這里停住。他還給我們留下了工具,我們可以用它來移動畫布,決定要將畫布的哪部分顯示在窗口區域,還可以決定要顯示的區域的大小。這些工具在SVG元素中是以屬性的形式(viewBox和preserveAspectRatio)表現出來的。

我會在接下來的兩周講解這些屬性。今天我想將內容集中在畫布、墻、視窗上,先從它們使用的坐標系統講起:
SVG坐標系統

雖然SVG和CSS盒模型的表現形式不一樣,但是它們的坐標系統的工作方式是相同的。

所有SVG坐標系的起點(0,0)都是在父元素的左上角,它們的父元素可以是body元素、div元素、或其它的容器。

當你創建了一個新的SVG元素,你也就創建了一個新的坐標系統,即無窮大的SVG畫布。起點可能是和父元素的左上角對齊,但是畫布在所有方向無限延伸的。x軸的正方向是向右,y軸的正方向是向下。兩個坐標軸的負方向也會向左邊和上邊延伸。

關于SVG有一點需要明白的就是多坐標系統的同時使用。每次你創建一個新的SVG元素,就相當于在它的坐標空間創建了一個新的畫布,同時也創建了一個視窗。

每一對畫布和視窗的坐標系統都是默認對齊的。它們看起來就像是在同一個系統內,但其實并不是。正如我們接下來要看的,你可以改變它們相互對齊的方式。

在實際中,你在無窮大的畫布上創建的元素是放置在畫布的原點附近的,但是理論上,它們是可以放在任何地方的。你可以創建一個圓,然后把它放在原點右邊四十億像素遠的地方,沒人阻止你這樣做。

理論上,窗口也可以是接近無窮大的,你可以設置你想要的任何尺寸。但是,你只有固定了窗口的尺寸,它才可以是固定大小的,而且你一旦設置了尺寸,坐標系統將會在空間上保持這個大小。

用戶代理程序(即瀏覽器)會默認對齊這兩個坐標系統的原點和坐標軸,但是你可以根據自己的需要改變這種對齊方式。

這兩個系統可以設置不同的單位。可以把一個設置為像素,另一個設置為毫米、picas、英寸、點、ems,或者其他任何你想要的單位。百分比%是例外,它不能在這里使用。

再次記住,這兩個坐標系統,一個是作用在無窮大的畫布上的,另一個是作用于固定窗口的。
SVG視窗

每次你創建了一個新的SVG元素,你也就創建了一個新的SVG視窗。視窗的大小等于你為SVG元素設置的寬度和高度。

CSS Code復制內容到剪貼板
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宁阳县| 美姑县| 江达县| 瑞丽市| 古丈县| 耒阳市| 德惠市| 永胜县| 抚州市| 织金县| 房产| 长葛市| 深水埗区| 莱西市| 内乡县| 普宁市| 清徐县| 玉龙| 永平县| 三亚市| 若尔盖县| 北宁市| 左贡县| 安图县| 松潘县| 虎林市| 涪陵区| 荆门市| 澳门| 历史| 莱阳市| 阿克苏市| 兴山县| 衡东县| 南通市| 宕昌县| 永州市| 股票| 北票市| 穆棱市| 徐汇区|