SVG

SVG    

参考:https://www.w3school.com.cn/svg/svg_intro.asp  或 https://www.w3cschool.cn/svg/svg-tutorial.html(推荐) 或   https://developer.mozilla.org/zh-CN/docs/Web/SVG/Element/svg

一、概念:这个就细说了,做前端基本都清楚。

  1、svg内的标签一般都是自闭标签。

二、SVG 的 API:(H5页面的简单画图,推荐还是使用SVG。)

  a、svg入门详解(实例篇):https://www.jianshu.com/p/8ddb4ba85594

  b、svg的API就是一些属性,js操作的API就是和DOM一样,操作相应元素的属性。

  c、svg的基本图形和属性:https://www.jianshu.com/p/2ddd369ddd95  或  http://www.ptbird.cn/svt-base-shape.html

1、预定义的形状元素:

  • 矩形 <rect>
  • 圆形 <circle>
  • 椭圆 <ellipse>
  • 线 <line>
  • 折线 <polyline>
  • 多边形 <polygon>
  • 路径 <path>
  • 文本 <text>

2、自定义的 形状一般都是通过 <path>标签来实现的。

3、形状标签上的属性(描述属性css样式属性):              具体是API参考 https://www.w3cschool.cn/svg/svg-reference.html推荐)  或 https://www.h5course.com/plus/view.php?aid=252  或  https://www.nhooo.com/svg/svg-fill.html属性手册

  a、 width 和 height 属性可定义矩形的高度和宽度。

  b、style 属性用来定义 CSS 属性 。【好像svg的大部分属性 放在style里面 也是有效的,反过来也是一样。   https://blog.csdn.net/auragreen/article/details/52212428

    css中的属性如下:(参考文档上说的不多,需要直接记录下

    fill 属性:定义矩形的填充颜色(rgb 值、颜色名或者十六进制值)

    stroke-width 属性:定义矩形边框的宽度【即border的宽度】

    stroke 属性:定义矩形边框的颜色

    fill-opacity 属性:定义填充颜色透明度(合法的范围是:0 - 1)

    stroke-opacity 属性:定义笔触颜色的透明度(合法的范围是:0 - 1)

    注意:style中的属性直接拿出来作为标签的属性也是有效的。如:

<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
  <rect width="300" height="100" style="fill:rgb(0,0,255);stroke-width:1;stroke:rgb(0,0,0)" />
</svg>

<!-- 效果和下面的是一样的 -->

<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
  <rect fill="rgb(0,0,255)" width="300" height="100" style="stroke-width:1;stroke:rgb(0,0,0)" />
</svg>

  c、x 属性:定义矩形的左侧位置(例如,x="0" 定义矩形到浏览器窗口左侧的距离是 0px)

  d、y 属性:定义矩形的顶端位置(例如,y="0" 定义矩形到浏览器窗口顶端的距离是 0px)

  e、rx 和 ry 属性可使矩形产生圆角。

  f、r属性:定义圆的半径  

  注意:描述属性 可以 被 样式属性覆盖

4、滤镜、渐变、模糊 就不讲了,直接看文档。

5、js操作 svg :https://www.cnblogs.com/fanlinqiang/p/11826143.html

  a、如果 SVG 代码直接写在 HTML 网页之中,它就成为网页 DOM 的一部分,可以直接用 DOM 操作。

  b、如果 使用embed、object插入的svg文件,其有完全属于自己的document:

     此时,再想拿到svg, 则需要使用:getSVGDocument();

三、常用属性:

  1、通用属性:

    a、Stroke 相关属性:https://www.runoob.com/svg/svg-stroke.html

    说明:Stroke属性定义一条线,文本或元素轮廓颜色(stroke相关的属性,是设置  线、文本、轮廓 的样式)

      stroke:线的颜色

      stroke-width:线的厚度

      stroke-linecap:不同类型的开放路径的终结

        

      stroke-dasharray:用于创建虚线(里面的值对应的是 实现 或 虚线的 长度。所以圆也是一样,设置的是弧长)

    b、fill 相关属性:https://www.nhooo.com/svg/svg-fill.html

    说明:fill 设置的是填充区域的属性

      fill:属性 定义了其轮廓内的形状的颜色(即 填充颜色)

      fill-opacity:填充颜色的不透明度

      fill-rule:决定的复杂形状的填充方式(简单图形用不到)

    c、transform 以及其它的通用属性 和 css的都一样。

 

四、辅助工具:

1、SVG实现的圆环旋转效果

 参考:http://www.softwhy.com/article-6472-1.html

2、SVG中的图形可以通过  transform="matrix(0,-1,1,0,0,440)"进行旋转。

3、svg代码可以单独放在一个后缀名为 .svg 的文件中保存起来。这个文件就是矢量图片文件。

   这点用来制作一些矢量图会非常方便,不需要把这个svg代码放在html了(比较乱),可以单独在一个svg文件中。代码逻辑会清晰、干净许多。(占位代替图会经常使用svg制作)

 

 SVG标签学习(SVG标签在W3C中是排在xml中学习的):   http://www.w3school.com.cn/svg/svg_circle.asp

SVG在线制作编辑预览工具:https://www.bejson.com/ui/svg_editor/

SVG WEB在线编辑器 : http://www.86y.org/demo/svg/(这个不能把图片保存为svg文件)  或    http://www.zuohaotu.com/svg/(推荐,这个比较完美)

 

posted @ 2018-05-10 21:27  吴飞ff  阅读(234)  评论(0编辑  收藏  举报