zoukankan      html  css  js  c++  java
  • SVG 教程01

    什么是SVG?

    • SVG 指可伸缩矢量图形 (Scalable Vector Graphics)
    • SVG 用来定义用于网络的基于矢量的图形
    • SVG 使用 XML 格式定义图形
    • SVG 图像在放大或改变尺寸的情况下其图形质量不会有所损失
    • SVG 是万维网联盟的标准
    • SVG 与诸如 DOM 和 XSL 之类的 W3C 标准是一个整体

    SVG 的历史和优势

    在 2003 年一月,SVG 1.1 被确立为 W3C 标准。

    参与定义 SVG 的组织有:太阳微系统、Adobe、苹果公司、IBM 以及柯达。

    与其他图像格式相比,使用 SVG 的优势在于:

    • SVG 可被非常多的工具读取和修改(比如记事本)
    • SVG 与 JPEG 和 GIF 图像比起来,尺寸更小,且可压缩性更强。
    • SVG 是可伸缩的
    • SVG 图像可在任何的分辨率下被高质量地打印
    • SVG 可在图像质量不下降的情况下被放大
    • SVG 图像中的文本是可选的,同时也是可搜索的(很适合制作地图)
    • SVG 可以与 Java 技术一起运行
    • SVG 是开放的标准
    • SVG 文件是纯粹的 XML

    SVG 的主要竞争者是 Flash。

    与 Flash 相比,SVG 最大的优势是与其他标准(比如 XSL 和 DOM)相兼容。而 Flash 则是未开源的私有技术。

    SVG 实例

    下面的例子是一个简单的 SVG 文件的例子。SVG 文件必须使用 .svg 后缀来保存:

    <?xml version="1.0" standalone="no"?>
    
    <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
    "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
    
    <svg width="100%" height="100%" version="1.1"
    xmlns="http://www.w3.org/2000/svg">
    
    <circle cx="100" cy="50" r="40" stroke="black"
    stroke-width="2" fill="red"/>
    
    </svg>

    代码解释:

    第一行包含了 XML 声明。请注意 standalone 属性!该属性规定此 SVG 文件是否是“独立的”,或含有对外部文件的引用。

    standalone="no" 意味着 SVG 文档会引用一个外部文件 - 在这里,是 DTD 文件。

    第二和第三行引用了这个外部的 SVG DTD。该 DTD 位于 “http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd”。该 DTD 位于 W3C,含有所有允许的 SVG 元素。

    SVG 代码以 <svg> 元素开始,包括开启标签 <svg> 和关闭标签 </svg> 。这是根元素。width 和 height 属性可设置此 SVG 文档的宽度和高度。version 属性可定义所使用的 SVG 版本,xmlns 属性可定义 SVG 命名空间。

    SVG 的 <circle> 用来创建一个圆。cx 和 cy 属性定义圆中心的 x 和 y 坐标。如果忽略这两个属性,那么圆点会被设置为 (0, 0)。r 属性定义圆的半径。

    stroke 和 stroke-width 属性控制如何显示形状的轮廓。我们把圆的轮廓设置为 2px 宽,黑边框。

    fill 属性设置形状内的颜色。我们把填充颜色设置为红色。

    关闭标签的作用是关闭 SVG 元素和文档本身。

    注释:所有的开启标签必须有关闭标签!

    HTML 页面中的 SVG

    SVG 文件可通过以下标签嵌入 HTML 文档:<embed>、<object> 或者 <iframe>

    HTML 页面中的 SVG

    下面,你会看到三种把 SVG 文件嵌入 HTML 页面的不同方法。

    使用 <embed> 标签

    <embed> 标签被所有主流的浏览器支持,并允许使用脚本。

    注释:当在 HTML 页面中嵌入 SVG 时使用 <embed> 标签是 Adobe SVG Viewer 推荐的方法!然而,如果需要创建合法的 XHTML,就不能使用 <embed>。任何 HTML 规范中都没有 <embed> 标签。

    语法:

    <embed src="rect.svg" width="300" height="100" 
    type="image/svg+xml"
    pluginspage="http://www.adobe.com/svg/viewer/install/" />
    

      

    注释:pluginspage 属性指向下载插件的 URL。

    使用 <object> 标签

    <object> 标签是 HTML 4 的标准标签,被所有较新的浏览器支持。它的缺点是不允许使用脚本。

    注释:假如您安装了最新版本的 Adobe SVG Viewer,那么当使用 <object> 标签时 SVG 文件无法工作(至少不能在 IE 中工作)!

    语法:

    <object data="rect.svg" width="300" height="100" 
    type="image/svg+xml"
    codebase="http://www.adobe.com/svg/viewer/install/" />
    

      

    注释:codebase 属性指向下载插件的 URL。

    使用 <iframe> 标签

    <iframe> 标签可工作在大部分的浏览器中。

    语法:

    <iframe src="rect.svg" width="300" height="100">
    </iframe>
    

      

    我期望....

    如果仅仅通过引用 SVG 的命名空间,就能够把 SVG 元素之间添加到 HTML 代码中,那就太棒了,这像这样:

    <html xmlns:svg="http://www.w3.org/2000/svg">
    <body>
    
    <p>This is an HTML paragraph</p>
    
    <svg:svg width="300" height="100" version="1.1" >
    <svg:circle cx="100" cy="50" r="40" stroke="black"
    stroke-width="2" fill="red" />
    </svg:svg>
    
    </body>
    </html>
    

      

  • 相关阅读:
    N-Queens
    Pow(x, n)
    Maximum Subarray
    Spiral Matrix
    Jump Game
    Merge Intervals
    Insert Interval
    Length of Last Word
    Spiral Matrix II
    Amazon 面经
  • 原文地址:https://www.cnblogs.com/Mengchangxin/p/9790184.html
Copyright © 2011-2022 走看看