原来使用js插件来画图highchart.js,发现仍是用svg实现的,打算学习了解一下,如下都是可直接在html插入。支持浏览器:Internet Explorer9,火狐,谷歌Chrome,Opera和Safarihtml
SVG 指可伸缩矢量图形 (Scalable Vector Graphics)浏览器
SVG 用来定义用于网络的基于矢量的图形网络
SVG 使用 XML 格式定义图形svg
SVG 图像在放大或改变尺寸的状况下其图形质量不会有所损失学习
SVG 是万维网联盟的标准spa
SVG 与诸如 DOM 和 XSL 之类的 W3C 标准是一个总体插件
矩形源码code
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"> <rect x="50" y="20" rx="20" ry="20" width="150" height="150" style="fill:blue;stroke:pink;stroke-width:5;fill-opacity:0.1; stroke-opacity:0.9;opacity:0.5"/> </svg>
代码解析:xml
rect 元素的 width 和 height 属性可定义矩形的高度和宽度
style 属性用来定义 CSS 属性
CSS 的 fill 属性定义矩形的填充颜色(rgb 值、颜色名或者十六进制值)
CSS 的 stroke-width 属性定义矩形边框的宽度
CSS 的 stroke 属性定义矩形边框的颜色
x 属性定义矩形的左侧位置(例如,x="0" 定义矩形到浏览器窗口左侧的距离是 0px)
y 属性定义矩形的顶端位置(例如,y="0" 定义矩形到浏览器窗口顶端的距离是 0px)
CSS 的 fill-opacity 属性定义填充颜色透明度(合法的范围是:0 - 1)
CSS 的 stroke-opacity 属性定义笔触颜色的透明度(合法的范围是:0 - 1)
CSS opacity 属性用于定义了元素的透明值 (范围: 0 到 1)。
rx 和 ry 属性可以使矩形产生圆角。htm
效果图:
圆源码
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"> <circle cx="100" cy="50" r="40" stroke="black" stroke-width="2" fill="red"/> </svg>
代码解析:
cx和cy属性定义圆点的x和y坐标。若是省略cx和cy,圆的中心会被设置为(0, 0)
r属性定义圆的半径
效果图:
椭圆源码
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"> <ellipse cx="240" cy="100" rx="220" ry="30" style="fill:purple"/> <ellipse cx="220" cy="70" rx="190" ry="20" style="fill:lime"/> <ellipse cx="210" cy="45" rx="170" ry="15" style="fill:yellow"/> </svg>
代码解析:
CX属性定义的椭圆中心的x坐标
CY属性定义的椭圆中心的y坐标
RX属性定义的水平半径
RY属性定义的垂直半径
效果图
直线源码
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"> <line x1="0" y1="0" x2="200" y2="200" style="stroke:rgb(255,0,0);stroke-width:2"/> </svg>
代码解析:
x1 属性在 x 轴定义线条的开始
y1 属性在 y 轴定义线条的开始
x2 属性在 x 轴定义线条的结束
y2 属性在 y 轴定义线条的结束
效果图
多边形源码
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"> <polygon points="200,10 250,190 160,210" style="fill:lime;stroke:purple;stroke-width:1"/> </svg> <svg xmlns="http://www.w3.org/2000/svg" version="1.1"> <polygon points="100,10 40,180 190,60 10,60 160,180" style="fill:lime;stroke:purple;stroke-width:5;fill-rule:nonzero;" /> </svg>
代码解析:
points 属性定义多边形每一个角的 x 和 y 坐标
fill-rule:nonzero/evenodd
效果图
这些只是简单的了实现了基本图形的构建,SVG是使用XML文档描述来绘图。从这点来看:SVG更适合用来作动态交互,并且SVG绘图很容易编辑,只须要增长或移除相应的元素就能够了。同时SVG是基于矢量的,因此它可以很好的处理图形大小的改变