登录/注册
Web前端之巅
2185
占位
2
占位
0
浏览量
占位
粉丝
占位
关注
【SVG】为了前端页面的美丽,我选择学习SVG
Web前端之巅
2021-11-15 15:09:32 2021-11-15
76
0

【SVG】为了前端页面的美丽,我选择学习SVG

博客说明

文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢!

说明

SVG在之前自学的过程中,其实一直都是很高深的样子不敢触碰,但是想要理解终究都会走到这一步的。😊再怎么看起来难的技术都是由简单的知识点累计起来的。

什么是SVG?

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

总的来说,SVG就是一个由XML定义的一个文件,由于是矢量图形,所以它的图形质量非常高。

由于SVG是XML文件,SVG图像可以用任何文本编辑器创建,但是复杂的图形还是得借助图形编辑工具哟

SVG的优势

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

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

一个小小的示例

示例代码

<?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 xmlns="http://www.w3.org/2000/svg" version="1.1">
<circle cx="100" cy="50" r="40" stroke="black"
stroke-width="2" fill="red" />
</svg>

效果

image-20211110141218557

代码解析

  • 第一行包含了 XML 声明。
  • standalone 属性规定此 SVG 文件是否是"独立的",或含有对外部文件的引用,standalone="no" 意味着 SVG 文档会引用一个外部文件 - 在这里,是 DTD 文件。
  • 是表示SVG代码,相当于开始标签和结束标签,这是根元素。
  • width 和 height 属性可设置此 SVG 文档的宽度和高度。
  • version 属性可定义所使用的 SVG 版本。
  • xmlns 属性可定义 SVG 命名空间。
  • 用来创建一个圆。cx 和 cy 属性定义圆中心的 x 和 y 坐标。如果忽略这两个属性,那么圆点会被设置为 (0, 0)。r 属性定义圆的半径。
  • stroke 和 stroke-width 属性控制如何显示形状的轮廓。我们把圆的轮廓设置为 2px 宽,黑边框。
  • fill 属性设置形状内的颜色。我们把填充颜色设置为红色。
  • 关闭标签的作用是关闭 SVG 元素和文档本身。

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

如何在HTML中使用SVG?

SVG 文件有5种方法嵌入 HTML 文档: