声明:SVG 虽然也是标签,但它不是 HTML5,标题加了 HTML5 只是为了与 canvas 放到一起。


  SVG 意为可缩放矢量图形(Scalable Vector Graphics),使用 XML 格式定义矢量图形。其他的图像格式都是基于像素的,但是 SVG 没有单位的概念,它的20只是表示1的20倍,所以 SVG 绘制的图形放大或缩小都不会失真。


  与其他图像比较,SVG 的优势有以下几点:


  SVG 可以被多个工具读取和修改。


  SVG 与其他格式图片相比,尺寸更小,可压缩性强。


  SVG 可任意伸缩。


  SVG 图像可以随意地高质量打印。


  SVG 图像可以添加文本和事件,还可搜索,适合做地图。


  SVG 是纯粹的 XML,不是 HTML5。


  SVG是W3C标准


  2.1、svg 标签


  SVG 的代码都放到 svg 标签呢,SVG 中的标签都是闭合标签,与html中标签用法一致。svg的属性有:


  有width和height,指定了svg的大小。


  eg:画一条直线,完整代码如下:


  上述 svg 设置的宽高没有带单位,此时默认是像素值,如果需要添加单位时,除了绝对单位,也可以设置相对单位。


  viewBox 属性


  使用语法:<svg viewBox=" x1,y1,width,height "></svg>


  四个参数分别是左上角的横纵坐标、视口的宽高。表示只看SVG的某一部分,由上述四个参数决定。


  使用 viewBox 之后,相当于svg整体大小不变,只能看到 viewBox 设置部分,视觉上被放大。


  2.2、SVG 如何嵌入 HTML


  SVG 的代码可以直接嵌入到 html 页面中,也可以通过 html 的embed、object、iframe嵌入到html中。嵌入的时候嵌入的是 SVG 文件,SVG 文件必须使用 .svg 后缀。分别介绍各种方法如何使用?


  2.2.1、embed 嵌入:


  使用语法:<embed src="" type="image/svg+xml"></embed>


  src是SVG文件路径,type 表示 embed 引入文件类型。


  优点:所有浏览器都支持,并允许使用脚本。


  缺点:不推荐 html4 和 html 中使用,但 html5 支持。


  2.2.2、object 嵌入:


  使用语法:<object data="line.svg" type="image/svg+xml"></object>


  data 是 SVG 文件路径,type 表示 object 引入文件类型。


  优点:所有浏览器都支持,支持 html、html4 和 html5。


  缺点:不允许使用脚本。


  2.2.3、iframe 嵌入:


  使用语法:<iframe width="300" height="300" src="" frameborder="0"></iframe>


  src是 SVG 文件路径,width、height、frameborder 设置的大小和边框。


  优点:所有浏览器都支持,并允许使用脚本。


  缺点:不推荐 html4 和 html 中使用,但 html5 支持。


  2.2.4、html中嵌入:


  svg 标签直接插入 html 内容内,与其他标签用法一致。


  2.2.5、连接到svg文件:


  使用 a 标签,直接链接到 SVG 文件。


  使用语法:<a href="">查看SVG</a>


  3.1、线 - line


  使用line标签创建线条,(x1,y1)是起点,(x2,y2)是终点,stroke绘制黑线,stroke-width是线宽。


  3.2、矩形 - rect


  上述参数 width、height是必填参数,x、y是可选参数,如不设置的时候,默认为(0,0),也就是svg的左上角开始绘制。rx、ry是可选参数,不设置是矩形没有圆角。fill定义填充颜色。


  3.3、圆形 - circle


  上述(cx,xy)定义圆心的位置,是可选参数,如果不设置默认圆心是(0,0)。r是必需参数,设置圆的半径。


  3.4、椭圆 - ellipse


  椭圆与圆相似,不同之处在于椭圆有不同的x和y半径,而圆两个半径是相同的。


  上述椭圆的两个rx、ry两个方向半径是必须参数,如果rx=ry就表示是圆形,(cx,cy)是椭圆的圆心,是可选参数,如果不设置,则默认圆心为(0,0)。


  3.5、折线 - polyline


  上述代码执行结果如图所示:


  需要注意的是 points 中包含了多个点的坐标,但不是一个数组。


  3.6、多边形 - polygon


  polygon 标签用来创建不少于3个边的图形,多边形是闭合的,即所有线条连接起来。


  polygon绘制的时候与折线有些类似,但是polygon会自动闭合,折线不会。


  3.7、路径 - path


  path 是SVG基本形状中最强大的一个,不仅能创建其他基本形状,还能创建更多其他形状,如贝塞尔曲线、2次曲线等。

相关文章

9个鲜为人知的HTML功能 小白怎么学习HTML5?新手入门必看 阿里巴巴常用的12个后端开发工具 sharepoint搭建文档服务器,SharePoint?Server教程 语义化标签与HTML5新增的布局标签 vector教程:如何进行项目 JetBrains PhpStorm v2021.2.0中文激活版 HTML5教程之新元素 前端基础入门:HTML5基础语法与标签 HTML5——SVG基础入门 android是前端还是后端 嵌入式开发要学哪些技能? 使用fiddler对手机APP进行抓包 HTML5薪资正一路飙升 如何才能学好HTML5开发 零基础如何迅速学习前端? html5中怎么利用canvas元素创建画布 实现html5移动端自适应布局的方法分享 HTML5移动应用开发 最佳HTML5应用开发工具有哪些? HTML5 移动页面自适应手机屏幕四类方法 html5手机网站常用的9个CSS属性 什么是web前端开发标准 Android开发用过的十大框架 Android混合开发,html5自己主动更新爬过的坑 HTML5中的移动开发框架有哪些? 分享5个主流的HTML5开发工具 HTML5开发培训教程学习之动效制作 网页开发HTML5 快速开发基于 HTML5 网络拓扑图应用 如何零基础入门前端开发? html5零基础入门学习教程(零基础学员必看) jquery删除ajax请求的方法 jquery中ajax中的参数,jquery中的ajax参数 jQuery AJAX 方法success()后台传来的4种数据详解 jquery中ajax常用的方法,jQuery ajax框架常用方法总结 jQuery AJAX中readyState与status的区别与联系 jquery ajax.then,神奇的then方法 jQuery validate+artdialog+jquery form实现弹出表单思路详解 ajax用来做什么的,jQuery是什么? java jquery ajax视频,【Ajax】之jQuery中的Ajax jquery中ajax应用之通用ajax()函数的实例 BootStrop前端框架入门教程详解 jQuery WEUI Select jquery是什么意思?jquery和js的区别是什么? 巧用案例学习jQuery框架三种事件绑定方式 jQuery 基础知识总结 引入JQuery.min.js文件 几款常用的高质量web前端框架 Jquery和bootstrap有哪些区别 easyui 验证 ajax提交表单提交表单提交