SVG 有一些预定义的形状元素,可被开发者使用和操作:
矩形 <rect>
圆形 <circle>
椭圆 <ellipse>
线 <line>
折线 <polyline>
多边形 <polygon>
路径 <path>

矩形

<rect x="20" y="20" width="250" height="250"
style="fill:blue;stroke:pink;stroke-width:5;
opacity:0.9"/>

<rect x="20" y="20" rx="20" ry="20" width="250"
height="100" style="fill:red;stroke:black;
stroke-width:5;opacity:0.5"/>

圆形

<circle cx="100" cy="50" r="40" stroke="black"
stroke-width="2" fill="red"/>

椭圆

<ellipse cx="300" cy="150" rx="200" ry="80"
style="fill:rgb(200,100,50);
stroke:rgb(0,0,100);stroke-width:2"/>

线

<line x1="0" y1="0" x2="300" y2="300"
style="stroke:rgb(99,99,99);stroke-width:2"/>

折线

<polyline points="0,0 0,20 20,20 20,40 40,40 40,60"
style="fill:white;stroke:red;stroke-width:2"/>

多边形

<polygon points="220,100 300,210 170,250"
style="fill:#cccccc;
stroke:#000000;stroke-width:1"/>  

路径

<path> 标签用来定义路径。

下面的命令可用于路径数据:

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" />

笔画和填充特性

笔画特性

stroke: 笔画颜色,默认值为none
stroke-width: 笔画宽度,可用用户坐标或者指定单位的方式指定。笔画的宽度会相对坐标网格线居中。默认值为1
stroke-opacity: 数字,从0.0到1.0. 0.0是完全透明,1.0是完全不透明
stroke-dasharray: 用一系列的数字来指定虚线和间歇的长度。这些数字只能使用用户坐标。默认值为none
stroke-linecap: 线头尾的形状,值为butt(默认值). round或square
stroke-linejoin: 图形的棱角或者一系列连线形状,取值为miter(尖的,默认值),round或者bevel(平的)
stroke-miterlimit: 相交处显示宽度与线宽的最大比例,默认值为4

填充特性

fill: 指定填充颜色,默认值为black
fill-opacity: 数字,从0.0到1.0. 0.0是完全透明,1.0是完全不透明
fill-rule: 属性值为nonzero(默认值)或evenodd。该属性决定判断某个点是否在图形内部的方法


小渝人儿
1.1k 声望849 粉丝

前端工程师