热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用HTML5SVG标签

一、项目背景SVG表示可伸缩矢量图形,这是一门用于描述2D图形的语言,图形应用使用XML编写,然后XML由SVG阅读器程序呈现。支持三种类型的图形对象:矢量图形形状(例如,由直线和

一、项目背景

SVG 表示可伸缩矢量图形,这是一门用于描述 2D 图形的语言,图形应用使用 XML 编写,然后 XML 由 SVG 阅读器程序呈现。支持三种类型的图形对象:矢量图形形状(例如,由直线和曲线组成的路径),图像和文本。图形对象可以进行分组,样式设置,转换和合成。功能集包括嵌套转换,剪切路径,Alpha蒙版,滤镜效果和模板对象。。

SVG 在 2003 年 1 月 14 日成为 W3C 推荐标准,你可以在 SVG 规范 页面中查看最新版本的 SVG 规范。

 

二、怎么查看 SVG 文件?

大多数 Web 浏览器都可以显示 SVG,就像它们可以显示 PNG,GIF 以及 JPG 图形。IE 用户可能需要安装 Adobe SVG 阅读器以便能够在浏览器中查看 SVG。

 

三、html5 中嵌入 SVG

html5 允许我们直接使用 _... 标签嵌入 SVG,

简单的语法:

<svg xmlns="http://www.w3.org/2000/svg"> 
svg>

拓展:

FireFox 3.7 还引入了一个配置选项("about:config"),可以通过下列步骤启用 HTML5:

  1. 在 FireFox 地址栏中输入 about:config。

  2. 在出现警告消息的地方点击 “I'll be careful, I promise!” 按钮(确保遵守它)。

  3. 在页面顶部的过滤器中输入 html5.enable。

  4. 默认可能被禁用了,因此要点击它切换它的值为 true。

  5. http://www.ssnd.com.cn 化妆品OEM代加工

四、实际案例

1. SVG 圆

下面是一个 SVG 示例的 HTML5 版本,用 标签绘制一个圆:

html>
<head>
<title>SVGtitle>
<meta charset="utf-8" />
head>
<body>
<h2>HTML5 SVG Circleh2>
<svg id="svgelem" hljs-string">"200" xmlns="http://www.w3.org/2000/svg">
    <circle id="redcircle" cx="50" cy="50" r="50" fill="red" />
svg>
body>
html>

启用 HTML5 的最新版 FireFox 中会生成如下结果:

使用HTML5 SVG 标签

2. SVG 矩形

下面是一个 SVG 示例的 HTML5 版本,用 标签绘制一个矩形:

html>
<head>
<title>SVGtitle>
<meta charset="utf-8" />
head>
<body>
<h2>HTML5 SVG Rectangleh2>
<svg id="svgelem" hljs-string">"200" xmlns="http://www.w3.org/2000/svg">
    <rect id="redrect" hljs-string">"300" hljs-string">"100" fill="red" />
svg>
body>
html>

在启用 HTML5 的最新版 FireFox 中会生成如下结果:

使用HTML5 SVG 标签

3. SVG 线条

下面是一个 SVG 示例的 HTML5 版本,用 标签绘制一个线条:

html>
<head>
<title>SVGtitle>
<meta charset="utf-8" />
head>
<body>
<h2>HTML5 SVG Lineh2>
<svg id="svgelem" hljs-string">"200" xmlns="http://www.w3.org/2000/svg">
    <line x1="0" y1="0" x2="200" y2="100"
          hljs-string">"stroke:red;stroke-width:2"/>
svg>
body>
html>

你可以使用 style 属性给它设置额外的样式信息,比如笔画,填充色,笔画宽度等等。

在启用 HTML5 的最新版 FireFox 中会生成如下结果:

使用HTML5 SVG 标签

便于学习这一概念 - 请使用 FireFox 3.7 或更高的版本进行在线练习。

4. SVG 椭圆

下面是一个 SVG 示例的 HTML5 版本,用 标签绘制一个椭圆:

html>
<head>
<title>SVGtitle>
<meta charset="utf-8" />
head>
<body>
<h2>HTML5 SVG Ellipseh2>
<svg id="svgelem" hljs-string">"200" xmlns="http://www.w3.org/2000/svg">
    <ellipse cx="100" cy="50" rx="100" ry="50" fill="red" />
svg>
body>
html>

在启用 HTML5 的最新版 FireFox 中会生成如下结果:

使用HTML5 SVG 标签

便于学习这一概念 - 请使用 FireFox 3.7 或更高的版本进行在线练习。

5. SVG 多边形

下面是一个 SVG 示例的 HTML5 版本,用 标签绘制一个多边形:

html>
<head>
<title>SVGtitle>
<meta charset="utf-8" />
head>
<body>
<h2>HTML5 SVG Polygonh2>
<svg id="svgelem" hljs-string">"200" xmlns="http://www.w3.org/2000/svg">
    <polygon  points="20,10 300,20, 170,50" fill="red" />
svg>
body>
html>

启用 HTML5 的最新版 FireFox 中会生成如下结果:

使用HTML5 SVG 标签

6. SVG 折线

元素用于绘制连接的直线。下面是一个 SVG 示例的 HTML5 版本,用 标签绘制一个折线图:

<html>
   <title>SVG折线title>
   <body>

      <h1>简单SVG折线图片h1>

      <svg hljs-string">"800" hljs-string">"800">
         <g>
            <text x="0" y="15" fill="black" >Polyline #1: Without opacity.text>

            <polyline points="150,75 258,137.5 258,262.5 150,325 42,262.6 42,137.5"
            stroke="black" stroke-hljs-string">"3" fill="none">polyline>
         g>
      svg>

   body>
html>

在启用 HTML5 的最新版 FireFox 中会生成如下结果:

使用HTML5 SVG 标签

7. SVG 渐变

下面是一个 SVG 示例的 HTML5 版本,用 标签绘制一个椭圆,使用 标签定义一个 SVG 径向渐变。

我们可以以类似的方式用 标签创建 SVG 线性渐变。

html>

<head>
  <title>SVGtitle>
  <meta charset="utf-8" />
head>

<body>
  <h2>HTML5 SVG Gradient Ellipseh2>
  <svg id="svgelem" hljs-string">"200" xmlns="http://www.w3.org/2000/svg">
    <defs>
      <radialGradient id="gradient" cx="50%" cy="50%" r="50%" fx="50%" fy="50%">
        <stop offset="0%" hljs-string">"stop-color:rgb(200,200,200);
      stop-opacity:0" />
        <stop offset="100%" hljs-string">"stop-color:rgb(255,0,0);
          
      stop-opacity:1" />
      radialGradient>
    defs>
    <ellipse cx="100" cy="50" rx="100" ry="50" hljs-string">"fill:url(#gradient)" />
  svg>
body>

html>

在启用 HTML5 的最新版 FireFox 中会生成如下结果:

使用HTML5 SVG 标签

 

五、总结

讲解了Html中svg,对于遇到的一些难点进行了分析及提供解决方案。欢迎大家积极尝试,有时候看到别人实现起来很简单,但是到自己动手实现的时候,总会有各种各样的问题,切勿眼高手低,勤动手,才可以理解的更加深刻。


推荐阅读
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 移动端常用单位——rem的使用方法和注意事项
    本文介绍了移动端常用的单位rem的使用方法和注意事项,包括px、%、em、vw、vh等其他常用单位的比较。同时还介绍了如何通过JS获取视口宽度并动态调整rem的值,以适应不同设备的屏幕大小。此外,还提到了rem目前在移动端的主流地位。 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 延迟注入工具(python)的SQL脚本
    本文介绍了一个延迟注入工具(python)的SQL脚本,包括使用urllib2、time、socket、threading、requests等模块实现延迟注入的方法。该工具可以通过构造特定的URL来进行注入测试,并通过延迟时间来判断注入是否成功。 ... [详细]
  • 本文介绍了使用Python解析C语言结构体的方法,包括定义基本类型和结构体类型的字典,并提供了一个示例代码,展示了如何解析C语言结构体。 ... [详细]
  • 分享css中提升优先级属性!important的用法总结
    web前端|css教程css!importantweb前端-css教程本文分享css中提升优先级属性!important的用法总结微信门店展示源码,vscode如何管理站点,ubu ... [详细]
author-avatar
咕噜噜噜lu
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有