SVG 形状
SVG 有一些预定义的形状元素,可被开发者使用和操作:
- 矩形 <rect>
- 圆形 <circle>
- 椭圆 <ellipse>
- 线 <line>
- 折线 <polyline>
- 多边形 <polygon>
- 路径 <path>
矩形
<rect width="300" height="100" style="fill:rgb(0,0,255);stroke-width:1;
stroke:rgb(0,0,0)"/>
-
rect
元素的width
和height
属性可定义矩形的高度和宽度 -
style
属性用来定义 CSS 属性 - CSS 的
fill
属性定义矩形的填充颜色(rgb
值、颜色名或者十六进制值) - CSS 的
stroke-width
属性定义矩形边框的宽度 - CSS 的
stroke
属性定义矩形边框的颜色
<rect x="20" y="20" width="250" height="250" style="fill:blue;stroke:pink;stroke-width:5;fill-opacity:0.1;stroke-opacity:0.9"/>
-
x
属性定义矩形的左侧位置(例如,x="0"
定义矩形到浏览器窗口左侧的距离是0px
) -
y
属性定义矩形的顶端位置(例如,y="0"
定义矩形到浏览器窗口顶端的距离是0px
) - CSS 的
fill-opacity
属性定义填充颜色透明度(合法的范围是:0 - 1
) - CSS 的
stroke-opacity
属性定义笔触颜色的透明度(合法的范围是:0 - 1
)
<rect x="20" y="20" width="250" height="250"style="fill:blue;stroke:pink;stroke-width:5;opacity:0.9"/>
- CSS 的
opacity
属性定义整个元素的透明值(合法的范围是:0 - 1
)
<rect x="20" y="20" rx="20" ry="20" width="250"height="100" style="fill:red;stroke:black;stroke-width:5;opacity:0.5"/>
-
rx
和ry
属性可使矩形产生圆角。
椭圆
<ellipse cx="300" cy="150" rx="200" ry="80" style="fill:rgb(200,100,50);stroke:rgb(0,0,100);stroke-width:2"/>
-
cx
属性定义圆点的x
坐标 -
cy
属性定义圆点的y
坐标 -
rx
属性定义水平半径 -
ry
属性定义垂直半径
线
<line x1="0" y1="0" x2="300" y2="300" style="stroke:rgb(99,99,99);stroke-width:2"/>
-
x1
属性在x
轴定义线条的开始 -
y1
属性在y
轴定义线条的开始 -
x2
属性在x
轴定义线条的结束 -
y2
属性在y
轴定义线条的结束
多边形
<polygon>
标签用来创建含有不少于三个边的图形。
<polygon points="220,100 300,210 170,250" style="fill:#cccccc;stroke:#000000;stroke-width:1"/>
-
points
属性定义多边形每个角的x
和y
坐标
折线
<polyline points="0,0 0,20 20,20 20,40 40,40 40,60" style="fill:white;stroke:red;stroke-width:2"/>
路径
SVG
中的路径概念可以是一个形状的外框,也可以是用来裁剪的线条,这个线条可以被描边,封闭时还可以被填充。
路径和折线或多边形不同之处在于,路径可以是直线也可以曲线,因此使用路径可以构造更为复杂的几何图形。
path
标签用来创建一条路径,路径元素的基本属性是路径数据,用 d='path data'
语法来定义。路径数据中包含了点集和绘制指令。
点集就是一组“x y”
格式的坐标,以空格隔开,以指令字母开头。指令可以有如下几种:
M = moveto
移动到某坐标位置
L = lineto
直线连线
H = horizontal lineto
水平连线
V = vertical lineto
垂直连线
C = curveto
曲线连接
S = smooth curveto
平滑曲线连接
Q = quadratic Belzier curve
二次贝塞尔曲线连接
T = smooth quadratic Belzier curveto
平滑二次贝塞尔曲线连接
A = elliptical Arc
椭圆弧连接
Z = closepath
关闭路径
以上所有命令均允许小写字母。大写表示绝对定位,小写表示相对定位。
<path d="M250 150 L150 350 L350 350 Z" />
定义了一条路径,它开始于位置 250 150
,到达位置 150 350
,然后从那里开始到 350 350
,最后在250 150
关闭路径。