zoukankan      html  css  js  c++  java
  • HTML5 SVG

    1.SVG历史:

    在2003年1月14日,SVG1.1被确定为W3C标准。

    参与定义SVG的公司有:Adobe,apple,IBM等公司

    2.什么是SVG?

    • Scalable Vector Graphics:可伸缩矢量图形;
    • 用来定义网络的基于矢量的图形;
    • 使用XML格式定义;
    • 放大或改变尺寸的时候,图形质量不会损失;
    • 与诸如DOM和XSL之类的W3C标准是一个整体。

    3.SVG使用优势(相比其它图像格式比如jpg):

    1. SVG可以通过文本编辑器创建和修改
    2. 相比jpg等尺寸更小,可压缩性更强
    3. 可伸缩,改变图片分辨率,放大等情况下图片质量不下降
    4. SVG图像中文本是可选的,同时也是可搜索的(十分适合做地图);
    5. SVG是开放的;
    6. SVG可以与java一起运行。

    4.SVG支持情况:

    IE9,现代浏览器均支持;

    IE8及以下版本需要安装插件,才能进行查看(如:Adobe SVG)

    5.Canvas与SVG比较:

     6.SVG在HTML5中语法:

    如果你想在诸如HTML4中使用SVG:可参考:点击此处进行访问!

    这里我主要说的是在HTML5中,语法

    1     <svg xmlns="http://www.w3.org/2000/svg" version="1.1">
    2         <circle cx='100' cy='50' r='40' stroke="black" stroke-width='2' 
    3         fill='red'/>
    4     </svg>

    根元素:<svg>,</svg>;width,height:可以设置svg文档宽度,高度;version:定义svg版本;xmlns:定义svg命名空间;<circle ....../>:创建圆并填充颜色

    7.SVG矩形:<rect>

    1 <rect width="1000" height="1000" x="10" y="10"
    2         style="fill:gold;stroke-10;stroke:black" />

    x:定义svg图形与浏览器窗口左侧距离;fill:填充颜色;stroke-width:描边(边框)宽度;stroke:描边(边框)颜色

    这里出现了一个问题:

    当我设置:width="1000" height="1000";在IE浏览器显示没问题,但是在谷歌浏览器显示却有问题了:

    右边与底边的黑边框被神奇的“吃掉了”。无论是放大还是缩小,均不能正常显示!但是如果“检查元素”时,空间是的的确确存在的!搜索相关关键词,并未找到解决方法!

    所幸,SVG是矢量图形,我们可以将width和height设置的小,浏览器放大显示,SVG质量不丢失!

    rect中还有几个参数:

    1 <rect width="100" height="100" x="10" y="10" rx="10" ry="10"
    2         style="fill:gold;stroke-10;stroke:black;stroke-opacity:0.3;fill-opacity:0.5" />

    rx,ry相同可产生圆角效果;stroke-opacity:描边透明度(值0~1);fill-opacity:填充透明度。

    最终效果:

    我将其放大成300%显示,可以看到图形质量很好的保存了!

    8.svg圆形:<circle>

    <circle cx='80' cy='80' r='50'
            style="fill:gold;stroke-2;stroke:black" />

    cx,cy:圆心x,y坐标(如果未被设置,将是0,0);r:半径。

    9.svg椭圆:<ellipse />

    1 <ellipse cx='80' cy='80' rx='10' ry='20'
    2         style="fill:gold;stroke-2;stroke:black" />

    cx,cy:圆心x,y坐标;rx,ry:水平,垂直半径(如果rx,ry相等,变成圆了O(∩_∩)O~~)

    10.svg直线:<line />

    1         <line x1='10' y1='15' x2='50' y2='60'
    2         style="fill:gold;stroke-2;stroke:black"; />

    11.svg多边形:<polygon>

    1 <polygon points="100,10 40,180 190,60 10,60 160,180"
    2   style="fill:lime;stroke:purple;stroke-5;fill-rule:evenodd;" />

    points:"x1,y1 x2,y2 ...";  fill-rule:nonezero/evenodd/inherit(默认nonzero);

     12.svg曲线(多直线组合):<polyline/>

    下面的代码效果,类似梯子:

    1   <polyline points="0,10 10,10 10,20 20,20 20,30"
    2   style="fill:gold;stroke-2;stroke:black" />

    13.SVG路径:<path>

    主要用来创建复杂的图形!

    1 <path d="M10 10 L30 20 L60 70 Z" />

    M:MoveTo 开始的点坐标;L:LineTo移动到某点的坐标;Z:closePath路径结束

    更多介绍狂点此处︿( ̄︶ ̄)︿

    14.SVG文本:

    1   <text x='30' y='30' fill='red'>hello SVG</text>

    15.结束:

    想了解更多关于SVG的知识?点击此处!(≧▽≦)/

    推荐:SVG在线编辑器

  • 相关阅读:
    Leetcode 剑指 Offer 27(二叉树的镜像)
    Leetcode 1022从根到叶的二进制之和
    Leetcode 993二叉树的堂兄弟节点
    Leetcode 965单值二叉树
    Leetcode 938 二叉搜索树的范围和
    hdu 2082 找单词
    母函数模板
    hdu 1398 Square Coins
    hdu 1085 Holding Bin-Laden Captive!
    hdu 1028 Ignatius and the Princess III
  • 原文地址:https://www.cnblogs.com/why-not-try/p/7860293.html
Copyright © 2011-2022 走看看