Menu
SVG 实例
SVG 形状
SVG 实例
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" version="1.1"
xmlns="http://www.w3.org/2000/svg">
<circle cx="100" cy="50" r="40" stroke="black"
stroke-width="2" fill="red"/>
</svg>
- SVG 的 <circle> 用来创建一个圆。cx 和 cy 属性定义圆中心的 x 和 y 坐标。如果忽略这两个属性,那么圆点会被设置为 (0, 0)。r 属性定义圆的半径。
- stroke 和 stroke-width 属性控制如何显示形状的轮廓。我们把圆的轮廓设置为 2px 宽,黑边框。
- fill 属性设置形状内的颜色。我们把填充颜色设置为红色。
- SVG 文件可通过以下标签嵌入 HTML 文档:<svg>svg内容</svg>
- 内联svg
<body>
<svg version="1.1" width="100%" height="100%" xmlns="http://www.w3.org/2000/svg" >
<circle onclick="doCircle(evt)" cx="100" cy="100" r="50" stroke="black" fill="red" stroke-width="2" />
</svg>
<script>
// 圆形点击放大 再点击还原
function doCircle(evt)
{
var theCircle = evt.target;
var radius = theCircle.getAttribute("r");
if (radius == 50)
{
radius = 75;
}
else
{
radius = 50;
}
theCircle.setAttribute("r",radius);
}
</script>
</body>
- 外部svg文件插入HTML方法
- 使用object标签
<object type="image/svg+xml" data="SVG.svg" style="display:block;width:1000px;height:1000px" >
<param name="src" value="SVG.svg" >
</object>
SVG 形状
- SVG 有一些预定义的形状元素,可被开发者使用和操作:
矩形 <rect>
圆形 <circle>
椭圆 <ellipse>
线 <line>
折线 <polyline>
多边形 <polygon>
路径 <path>
- <rect> 标签
- <rect> 标签可用来创建矩形,以及矩形的变种。
<rect x="20" y="20" width="300" height="100"
style="fill:blue;
stroke-width:5;
stroke:pink;
opacity:0.9;
fill-opacity:0.2;
stroke-opacity:0.7" />
- rect 元素的 width 和 height 属性可定义矩形的高度和宽度
- x 属性定义矩形的左侧位置(例如,x="0" 定义矩形到浏览器窗口左侧的距离是 0px)
- y 属性定义矩形的顶端位置(例如,y="0" 定义矩形到浏览器窗口顶端的距离是 0px)
- style 属性用来定义 CSS 属性
- CSS 的 fill 属性定义矩形的填充颜色(rgb 值、颜色名或者十六进制值)
- CSS 的 stroke-width 属性定义矩形边框的宽度
- CSS 的 stroke 属性定义矩形边框的颜色
- CSS 的 fill-opacity 属性定义填充颜色透明度(合法的范围是:0 - 1)
- CSS 的 stroke-opacity 属性定义笔触颜色的透明度(合法的范围是:0 - 1)
- CSS 的 opacity 属性定义整个元素的透明值(合法的范围是:0 - 1)
- rx 和 ry 属性可使矩形产生圆角
- <circle> 标签
- <circle> 标签可用来创建一个圆。
<circle cx="100" cy="50" r="40" stroke="black"
stroke-width="2" fill="red"/>
- cx 和 cy 属性定义圆点的 x 和 y 坐标。如果省略 cx 和 cy,圆的中心会被设置为 (0, 0)
- r 属性定义圆的半径。
- <ellipse> 标签
- <ellipse> 标签可用来创建椭圆
<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> 标签
- <line> 标签用来创建线条。
<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> 标签用来创建含有不少于三个边的图形(多边形)。
<polygon points="220,100 300,210 170,250"
style="fill:#cccccc;
stroke:#000000;stroke-width:1"/>
- points 属性定义多边形每个角的 x 和 y 坐标
- <polyline> 标签
- <polyline> 标签用来创建仅包含直线的形状。
<polyline points="0,0 0,20 20,20 20,40 40,40 40,60"
style="fill:white;stroke:red;stroke-width:2"/>
- <path> 标签
- <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