SVG

作者: 王瓷锤 | 来源:发表于2018-10-18 21:47 被阅读2次

    定义:可缩放矢量图形(Scalable Vector Graphics,是一种用来描述二维矢量图形的XML(Extensible Markup Language)标记语言。简而言之,SVG面向图形,HTML面向文本。

    SVG与其他图形的区别

    • SVG与Flash都是二维矢量图形,但SVG是基于W3C标准的,是开放的,而Flash是封闭的基于二进制格式的。因为都是W3C标准,所以SVG可与CSS、DOM等协同工作
    • SVG也与Canvas类似,用于绘制图形,但Canvas是非矢量的

    SVG基本要素

    HTML提供了定义标题、段落等内容的元素。与此类似,SVG也提供了一些元素,用于定义圆形,矩形,简单或复杂曲线,以及其他形状。一个简单的SVG文档由<svg>根元素和基本的形状元素构成,另外还有一个g元素,用来将若干个基本形状变成一个组。

    注意事项

    • SVG的元素和属性必须按标准格式书写,XML是区分大小写的
    • SVG里的属性值必须用引号引起来

    用法

    • 可以作为一个svg文件放在<img>的链接中
    • 可以直接在<body>中用<svg>标签写
    • 可以作为css背景图片引入:background:url();
    • 可以object元素引入svg文件:<object data="image.svg" type="image/svg+xml"/>

    绘制流程

    1. 从SVG根元素开始:
    • 舍弃来自HTML的doctype声明,因为基于SVG的DTD验证导致的问题比它可解决的更多
    • 属性version和baseProfile是必不可少的
    • 作为XML的一种语言,必须正确的绑定命名空间(在xmlns属性中绑定)
    1. 后面写入不同图形标签

    SVG坐标定位

    <svg width="100" height="100" viewBox="0 0 100 100">

    viewBox部分的内容是将你划定的这个区域放大至整个画布

    SVG绘制形状

    矩形<rect x="10" y="10" width="30" height="30" stroke="black" fill="red" stroke-width="5"/>
    圆形<circle cx="25" cy="25" r="20" stroke="red" fill="black" stroke-width="5"/>
    椭圆<ellipse cx="0" cy="0" rx="20" ry="5"/>
    直线<line x1="10" x2="50" y1="110" y2="150"/>
    折线<polyline points="60 100,65 120,75 125"/>
    多边形<polygon points="60 100,65 120,70 115" fill="transparent"/>与折线相比会自动封闭起来
    路径:path可绘制矩形、圆形、椭圆、折线、多边形等多种图形,是SVG常见的形状
    <path d="M100 10 h 100 v 100 h -100 v -100"/> h是水平线,v是垂直线,最后一个点可以不写,只写z,会自动闭合,属性值大写为绝对值,小写为相对于初始点的


    SVG渐变

    。。。后面用时补充

    相关文章

      网友评论

          本文标题:SVG

          本文链接:https://www.haomeiwen.com/subject/cxxezftx.html