返回顶部
首页 > 资讯 > 前端开发 > html >HTML 5中SVG 2D是什么
  • 560
分享到

HTML 5中SVG 2D是什么

2024-04-02 19:04:59 560人浏览 八月长安
摘要

本篇内容主要讲解“html 5中SVG 2D是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“HTML 5中SVG 2D是什么”吧! 位图与矢量图以

本篇内容主要讲解“html 5中SVG 2D是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“HTML 5中SVG 2D是什么”吧!

 位图与矢量图

以前,浏览器中显示的图形,例如jpeg、gif等,都是位图,这些图像格式是基于光栅的。在光栅图像中,图像文件定义了图像中每个像素的颜色值。浏览器需要读取这些值并做出相应行动。这种图像的再现能力比较强,但是在某些情形下会显得不足。例如,当浏览器以不同大小显示一副图像时,通常会产生锯齿边缘,这时,浏览器不得不为那些在原始图像中不存在的像素插入或猜测数值;这样会导致图像失真。此外,针对位图进行动画,最多也仅限于生成“翻动书本”类型的动画,即快速连续地显示单独图像。

矢量图通过指定为确定每个像素的值所需的指令而不是指定这些值本身,克服了这些困难中的一部分。例如,向量图形不再为一个直径一英寸的圆提供像素值,而是告诉浏览器创建一个直径一英寸的圆,然后让浏览器(或插件)做其余事情。这消除了光栅图形的许多限制;使用向量图形,浏览器只要知道它必须画一个圆。如果图像需要以正常大小的三倍来显示,那么浏览器只要按正确的大小画圆而不必执行光栅图像通常的插入法。类似地,浏览器接收的指令可以更容易地与外部信息源(如应用程序和数据库)绑定,要对图像制作动画,浏览器只要接收有关如何操纵属性(如半径或颜色)的指令即可。

HTML体系中,最常用的绘制矢量图的技术是SVG和HTML5新增加的canvas元素。这两种技术都支持绘制矢量图和光栅图。

SVG概述

可缩放矢量图形(Scalable Vector Graphics,简称SVG)是一种使用XML来描述二维图形的语言(SVG严格遵从XML语法)。 SVG允许三种类型的图形对象:矢量图形形状(例如由直线和曲线组成的路径)、图像和文本。 可以将图形对象(包括文本)分组、样式化、转换和组合到以前呈现的对象中。 SVG 功能集包括嵌套转换、剪切路径、alpha 蒙板和模板对象。

SVG绘图是交互式和动态的。 例如,可使用脚本来定义和触发动画。这一点与Flash相比很强大。Flash是二进制文件,动态创建和修改都比较困难。而SVG是文本文件,动态操作是相当容易的。而且,SVG直接提供了完成动画的相关元素,操作起来非常方便。

SVG与其他WEB标准兼容,并直接支持文档对象模型DOM。这一点也是与HTML5中的canvas相比很强大的地方(这里注意,SVG内部也是用一个类似的canvas这样的东西来展示SVG图形,到后面你会发现很多特性和HTML5的canvas还有点像;文中如果没明确说明是SVG的canvas的话,都代指HTML5中的canvas元素)。因而,可以很方便的使用脚本实现SVG的很多高级应用。而且SVG的图形元素基本上都支持DOM中的标准事件。可将大量事件处理程序(如“onmouseover”和“onclick”)分配给任何SVG图形对象。 虽然SVG的渲染速度比不上canvas元素,但是胜在DOM操作很灵活,这个优势完全可以弥补速度上的劣势。

SVG既可以说是一种协议,也可以说是一门语言;既是HTML的一个标准元素,也是一种图片格式。

SVG并不是HTML5中的东西,但是也算页面时兴的技术之一,姑且也放到这个专题下了。

SVG与其它图片格式的比较

1.SVG与其它的图片格式相比,有很多优点(很多优点来源于矢量图的优点):

2.SVG文件是纯粹的XML, 可被非常多的工具读取和修改(比如记事本)。

3.SVG 与JPEG 和GIF图像比起来,尺寸更小,且可压缩性更强。

4.SVG 是可伸缩的,可在图像质量不下降的情况下被放大,可在任何的分辨率下被高质量地打印。

5.SVG 图像中的文本是可选的,同时也是可搜索的(很适合制作地图)。

6.SVG 可以与 Java 技术一起运行。

7.SVG 是开放的标准。

SVG与Flash的比较 

SVG 的主要竞争者是Flash。与Flash相比,SVG ***的优势是它与其他标准(比如XSL和DOM)相兼容,操作方便,而Flash则是未开源的私有技术。其它的比如存储的格式,动态生成图形等方面,SVG也占有很大的优势。

SVG的呈现方式

关于支持HTML5与SVG的浏览器不是这里讨论的重点,基本上装上***的Chrome或者FireFox浏览器就差不多了(IE用户请装IE9就对了,至于IE9之前的版本,需要装SVG的插件,这里就直接略过了)。对于直接支持SVG的浏览器,SVG可以采用两面两种呈现的方式。

内联到HTML

SVG是标准的HTML元素,直接写到HTML中就可以了,看下面的例子:

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html> <html> <head>   <!-- <meta content="text/html; charset=utf-8" Http-equiv="Content-Type" /> -->   <title> My First SVG Page</title> </head> <body>   <svg xmlns="http://www.w3.org/2000/svg" version="1.1"        width="200px" height="200px">     <rect x="0" y="0" width="100%" height="100%"           fill="none" stroke="black"/>     <circle cx="100" cy="100" r="50"             style="stroke: black; fill: red;"/>   </svg> </body> </html>

请注意开头的部分xml声明,与svg的命名空间xmlns、版本version等部分;这些部分在HTML5中基本都可以不用写了(写不写还是自己瞧着浏览器办吧)。

独立SVG文件

独立SVG指的是通过使用svg文件扩展名来提供向量图形文件格式。在浏览器中嵌入这个svg文件就可以使用了。

1.独立的SVG文件/页面,定义的模板基本就像下面的一样:

<svg width="100%" height="100%">       <!-- SVG markup here. -->      </svg>

把这样的文本文件保存成以svg为扩展名的文件,例如sun.svg,这样的文件可以直接用浏览器打开浏览,也可以作为引用嵌入到别的页面中。

2.HTML引用外部的SVG文件。

使用object或者img元素嵌入svg图形就可以了,例如下面的小例子:

<!DOCTYPE html> <html> <head>   <title> My First SVG Page</title> </head> <body>   <object data="sun.svg" type="image/svg+xml"           width="300px" height="300px">     <!-- Implement fallback code here, or display a message: -->     <p>Your browser does not support SVG - please upgrade to a modern browser.</p>   </object>    <img src="sun.svg" alt="svg not supported!" /> </body> </html>

SVG的渲染顺序

SVG是严格按照定义元素的顺序来渲染的,这个与HTML靠z-index值来控制分层不一样。在SVG中,写在前面的元素先被渲染,写在后面的元素后被渲染。后渲染的元素会覆盖前面的元素,虽然有时候受透明度影响,看起来不是被覆盖的,但是SVG确实是严格按照先后顺序来渲染的。

注意:SVG是以XML定义的,所以是大小写敏感的,这点与HTML不一样。

到此,相信大家对“HTML 5中SVG 2D是什么”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: HTML 5中SVG 2D是什么

本文链接: https://lsjlt.com/news/86760.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • HTML 5中SVG 2D是什么
    本篇内容主要讲解“HTML 5中SVG 2D是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“HTML 5中SVG 2D是什么”吧! 位图与矢量图以...
    99+
    2024-04-02
  • 怎么使用HTML 5中SVG 2D文本与图像
    这篇文章主要介绍“怎么使用HTML 5中SVG 2D文本与图像”,在日常操作中,相信很多人在怎么使用HTML 5中SVG 2D文本与图像问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大...
    99+
    2024-04-02
  • HTML的2D变换方法是什么
    本篇内容主要讲解“HTML的2D变换方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“HTML的2D变换方法是什么”吧!     2...
    99+
    2024-04-02
  • 什么是SVG
    SVG是一种图形文件格式,全称是可缩放矢量图,它基于XML语法,虽然是一种二维矢量图形格式,但其中可以包含矢量图形、光栅图像及文本等,这种新的图形格式不但拥有Web矢量图形的固有特性,更是结合了XML及其相关技术的所有优越性能。...
    99+
    2024-04-02
  • Canvas 2D原理是什么
    本篇内容主要讲解“Canvas 2D原理是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Canvas 2D原理是什么”吧! Web之前有一些常见的绘图方式...
    99+
    2024-04-02
  • 什么是 SVG 滤镜
    这篇文章主要介绍“什么是 SVG 滤镜”,在日常操作中,相信很多人在什么是 SVG 滤镜问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”什么是 SVG 滤镜”的疑惑有所帮助!接...
    99+
    2024-04-02
  • HTML与CSS中2D转换模块怎么用
    这篇文章主要介绍“HTML与CSS中2D转换模块怎么用”,在日常操作中,相信很多人在HTML与CSS中2D转换模块怎么用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”HTML...
    99+
    2024-04-02
  • HTML中怎么使用SVG与SVG预定义形状元素
    今天小编给大家分享一下HTML中怎么使用SVG与SVG预定义形状元素的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下...
    99+
    2024-04-02
  • 在html5中内联svg是什么意思
    这篇文章主要介绍在html5中内联svg是什么意思,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 在html5中,内联svg是“Scalable Vect...
    99+
    2024-04-02
  • HTML 5中的Pages和Dialogs有什么作用
    这篇文章主要讲解了“HTML 5中的Pages和Dialogs有什么作用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“HTML 5中的Pages和Dialo...
    99+
    2024-04-02
  • javascript中svg有什么用
    这篇文章给大家分享的是有关javascript中svg有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 在JavaScript中,svg是指可伸...
    99+
    2024-04-02
  • HTML中使用SVG与SVG预定义形状元素的介绍是怎样的
    这期内容当中小编将会给大家带来有关HTML中使用SVG与SVG预定义形状元素的介绍是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 S...
    99+
    2024-04-02
  • c++中a+=5是什么意思
    在 c++ 中,+= 运算符用于将左边的操作数与右边的操作数相加,并将结果存储在左边的操作数中。具体步骤如下:取值:从左边的操作数中获取其当前值。相加:将当前值与右边的操作数相加,得到一...
    99+
    2024-05-09
    c++
  • html5的svg是什么及怎么用
    这篇文章主要介绍“html5的svg是什么及怎么用”,在日常操作中,相信很多人在html5的svg是什么及怎么用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”html5的sv...
    99+
    2024-04-02
  • unplugin-svg-component优雅使用svg图标的方法是什么
    这篇文章主要介绍了unplugin-svg-component优雅使用svg图标的方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇unplugin-svg-component优雅使用svg图标的方法是什...
    99+
    2023-07-05
  • html中marquee是什么
    本篇内容主要讲解“html中marquee是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“html中marquee是什么”吧! ...
    99+
    2024-04-02
  • html中th是什么
    本篇内容介绍了“html中th是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • html中meta是什么
    今天小编给大家分享一下html中meta是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧...
    99+
    2024-04-02
  • html中p是什么
    这篇文章将为大家详细讲解有关html中p是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 p是甚么 html p标签是html元素标签一员,p标签是文章段落标签。...
    99+
    2024-04-02
  • html中item是什么
    html中item是什么?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。由于是原生javascript,先补习下children和childNodes的区别:1,...
    99+
    2023-06-15
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作