`
SwineX
  • 浏览: 36255 次
  • 性别: Icon_minigender_1
  • 来自: 常德
社区版块
存档分类
最新评论

svg的初步尝试

    博客分类:
  • web
阅读更多
1.什么是svg?
以下是百度百科的解释。

可缩放矢量图形(Scalable Vector Graphics,SVG)是基于可扩展标记语言(XML),用于描述二维矢量图形的一种图形格式。SVG由W3C制定,是一个开放标准。

2.怎么用?
先提几个问题:
a.怎样绘制svg图形?
b.svg怎么用在网页上?
c.svg怎么和html进行交互?

a.怎样绘制svg图形?
这里就请到http://www.w3school.com.cn/svg/svg_inhtml.asp

b.svg怎么用在网页上?
这里有几种方法:
1.embed标签
这个在w3里面有提到,这里省略

2.直接以标签形式使用
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xml:lang="en"
      xmlns="http://www.w3.org/1999/xhtml"
      xmlns:svg="http://www.w3.org/2000/svg">
  <head>
  </head>
<body>
  <h3>在html里面直接添加svg</h3>
  <hr />
  <svg:svg id='diagram' version="1.1" width="600" height="220">
    <svg:g id="svgele" onclick="svgctrl()">
    <svg:rect
       style="fill:#ff0067;fill-opacity:1;fill-rule:nonzero;stroke:#00d1ff;stroke-width:10;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
       id="rect2816"
       width="120"
       height="32.142857"
       x="7.1428571"
       y="6.6478992" />
    <svg:a
       id="a3618"
       transform="translate(-7.5714286,-21.428571)">
      <svg:text
         transform="scale(1.2412467,0.80564161)"
         id="text3610"
         y="60.196808"
         x="17.778425"
         style="font-size:21px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
         xml:space="preserve">I'm svg</svg:text>
    </svg:a> 
  </svg:g>
  </svg:svg> 
</body>
</html>


不要被svg的东西吓到,那不是我敲的,是我用工具画了之后复制过来的,当然也经过稍微的修改。svg的绘制工具很多,我用的是Inkscape.

每个svg的标签前面加个svg:标识就可以了,这个很简单

c.svg怎么和html进行交互?
svg现在也能够利用js进行操控,这里贴出个自己写的小demo
(jquery 也有对svg的支持,可惜没有找到详细说明的api,看源码也有点吃力)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xml:lang="en"
      xmlns="http://www.w3.org/1999/xhtml"
      xmlns:svg="http://www.w3.org/2000/svg">
  <head>
    <title>use svg to control html</title>
    
    <style type="text/css"><![CDATA[
    #diagram
    {
      border: solid;
    }
    
    #svgele
    {
      cursor: pointer;  
    }
    
    ]]></style>
    <script type="application/javascript"><![CDATA[
      function svgctrl()
      {
        var htmlEle = document.getElementById("htmlele");
        htmlEle.innerHTML = "I have been changed!";
      }
    ]]></script>
</head>
<body>
  <h3>svg元素触发事件操作html元素标签</h3>
  <hr />
  <svg:svg id='diagram' version="1.1" width="600" height="220">
    <svg:title>Create circles dynamically</svg:title>
    <svg:g id="svgele" onclick="svgctrl()">
    <svg:rect
       style="fill:#ff0067;fill-opacity:1;fill-rule:nonzero;stroke:#00d1ff;stroke-width:10;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
       id="rect2816"
       width="120"
       height="32.142857"
       x="7.1428571"
       y="6.6478992" />
    <svg:a
       id="a3618"
       transform="translate(-7.5714286,-21.428571)">
      <svg:text
         transform="scale(1.2412467,0.80564161)"
         id="text3610"
         y="60.196808"
         x="17.778425"
         style="font-size:21px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
         xml:space="preserve">Click me</svg:text>
    </svg:a> 
  </svg:g>
  </svg:svg> 
<p id="htmlele">I'm html element</p>
</body>
</html>


如果想直接看效果,请注意将文件后缀名写为.svg而不是.html
引用的格式和html大同小异,可以看到,如果能与html元素进行交互了,实际上就可以将svg看做成html的成员了,这样,能做的事情就很多了,可以自由想象发挥。

更详细的说明可以参考这里:
http://www.ibm.com/developerworks/cn/education/xml/x-dynamicsvg/section3.html

3.适用范围
我现在只能用这些提到的操作使得我的网页更加美观一点,svg用处很多,网上说是没有svg绘制不了的东西,svg的确很好玩,有时间还要多研究研究。
分享到:
评论

相关推荐

    XML初步到精通(asp java)

    XML,全称可扩展标记语言(eXtensible Markup Language),是一种用于标记数据的语言,它在...记得实践是检验真理的唯一标准,理论学习的同时,尝试编写XML文档并用编程语言进行处理,将有助于你更好地掌握XML的精髓。

    HTML.zip_html5

    通过这些文件,我们可以学习到如何利用HTML5创建交互式的网页表单,实现滚动文字效果,并初步了解SVG图形的使用。实践是学习HTML5的最佳途径,尝试编写并修改这些示例,将有助于深入理解和掌握相关知识。

    iOS-prototype-icons:在开发过程中尝试这些漂亮的原型图标

    标题"iOS-prototype-icons:在开发过程中尝试这些漂亮的原型图标"指出,这里提供了一系列美观的原型图标供开发者在开发过程中使用。描述中提到的“预览:在Mobile Safari中打开这些链接,然后添加到主屏幕”表明这些...

    网页特效库2006代码

    尽管响应式设计的概念在2010年左右才被提出,但2006年的开发者已经开始尝试让网页适应不同屏幕尺寸。这些代码可能包括了一些简单的媒体查询或者流式布局,以实现基本的自适应效果。 综上所述,"网页特效库2006代码...

    planarmap.js:一个用于交互式平面图(嵌入式平面图)JavaScript库

    Planarmap.js Planamap.js是一个(非常初步的)JavaScript库,可轻松与浏览器中的平面图(=嵌入式平面图)进行交互。 它允许用户/脚本更改平面图的组合,同时使用强制驱动的布局算法自动更新嵌入。 在此处查看一些...

    css2.0中文手册

    虽然在CSS3中得到了更广泛的应用和发展,但在CSS2.0中,这是实现响应式设计的初步尝试。 6. **字体与文本**:CSS2.0允许控制字体家族、大小、颜色、行高、对齐方式等文本属性,以及装饰样式如下划线、删除线和上...

    400套超酷公司网站模板(2004).rar

    通过查看这些模板的源代码,可以学习到如何使用早期的CSS进行页面布局、动画效果以及响应式设计的初步尝试。 再者,这些模板可能也涉及了JavaScript的应用。2004年前后,JavaScript开始被广泛用于网页交互,如表单...

    Firefox火狐浏览器官方4.0-win32版本exe安装包

    Firefox 4.0还引入了多进程架构的初步尝试,名为" Electrolysis "或"E10S",尽管这一特性在4.0版本中并未完全实现,但它是后续Firefox版本中实现浏览器内部分离的重要基础,旨在提高浏览器的稳定性和响应速度。...

    简单实用的LOGO制作软件

    2. **草图绘制**:在心中有了初步想法后,可以先用手绘或数字工具进行草图绘制,这有助于整理思路和尝试不同的设计方案。 3. **选择软件**:“简单实用的LOGO制作软件”提供了一个直观的界面,让用户无需深厚的图形...

    html5手册,css3,css2,html开发详解

    4. 多列布局的初步尝试:column-width和column-count属性,但相比CSS3的实现较为有限。 5. @media查询:初步支持响应式设计,但CSS3的媒体查询更为强大。 通过掌握HTML5、CSS3和CSS2的核心概念和实践,开发者可以...

    简单自我介绍HTML版本

    5. **SVG矢量图**:支持在网页中内嵌SVG图形,保持图像质量的同时,文件大小更小。 6. **Web Workers和Web Storage**:Web Workers提升后台处理能力,使得多线程处理任务成为可能;Web Storage提供更大的本地存储...

    css2.0&DHTML&javascript帮助文档

    5. **媒体查询**:虽然这是CSS3引入的功能,但CSS2.0的一些初步尝试也涉及到了响应式设计的概念,允许针对不同设备和屏幕尺寸应用样式。 6. **多列布局**:CSS2.0提供了多列布局的初步支持,尽管不如CSS3中的多列...

    自己做的贪吃蛇

    这个“1”可能代表作者制作的贪吃蛇游戏系列的第一个版本,显示了作者对游戏开发的初步尝试。 标签“贪吃蛇”进一步确认了这个项目的核心内容,即贪吃蛇游戏的实现。通过这个标签,我们可以推断这个压缩包文件包含...

    精品课程不完整版

    【精品课程不完整版】是一个针对前端开发的学习资源,它涵盖了HTML、CSS和JavaScript(包括jQuery)的基础...记得在学习过程中,要不断练习和尝试,遇到问题时查阅文档和在线资源,这样可以更好地理解和掌握这些技术。

    Halfprojectlogo

    1. **设计草图**:可能以.jpg、.png或.svg格式存在,展示了设计师在创建最终logo前的各种构思和尝试。 2. **源文件**:如果设计是使用图形软件如Adobe Illustrator或Adobe Photoshop完成的,那么压缩包中可能包含....

    签名设计免费版

    1. **模板选择**:免费版的签名设计软件可能包含各种预设的模板,用户可以根据自己的喜好选择合适的风格作为设计基础,快速生成初步的签名样式。 2. **文字编辑**:支持输入中文和英文,意味着用户可以设计自己的...

    Axure7.0最纯净版

    1. **线框图设计**:线框图是产品设计的起点,Axure提供了丰富的图形库,用户可以快速拖拽构建页面元素,如按钮、文本框、图片等,形成初步的产品界面框架。 2. **交互原型**:设计完成后,Axure支持添加动态行为和...

    网页之CSS2中文手册

    可以尝试以下操作: 1. **页面布局**:利用浮动、定位和盒模型创建复杂布局,如两栏布局、三栏布局等。 2. **响应式设计**:尽管媒体查询在CSS3中更为强大,但CSS2的初步媒体类型也可用于简单的响应式设计。 3. **...

    简约个人主页_e90f6.zip

    这些图片通常以.jpg、.png或.svg格式存在,用于提升网页的视觉吸引力。 5. **错误处理**: `404.html` 是一个自定义的错误页面,当用户尝试访问不存在的页面时显示。通常会包含一些友好的信息,指导用户返回主页或...

    绘制人物图标.zip

    7. **优化与导出**:最后,优化图标以确保在不同分辨率和尺寸下都清晰可见,然后导出为适合各种用途的格式,如SVG、PNG或EPS。 在这个“绘制人物图标”的压缩文件中,很可能包含了逐步的教学指南、示例图像、模板...

Global site tag (gtag.js) - Google Analytics