Skip to content
本页目录

矢量图形

矢量图使用算法来定义,一个矢量图文件包含了图形和路径的定义,电脑根据这些定义计算出当它们在屏幕上渲染时应该呈现的样子。 SVG 格式可以用于 Web 的精彩的矢量图形。

TIP

有两种类型的图片:位图和矢量图
位图使用像素网格来定义,一个位图文件精确地包含了每个像素的位置和它的色彩信息。流行的位图格式包括 Bitmap (.bmp), PNG (.png), JPEG (.jpg), and GIF (.gif.)

SVG

SVG 是用于描述矢量图像的 XML 语言。 像 HTML 一样的标记,有许多不同的元素来定义要显示在图像中的形状,以及要应用于这些形状的效果。SVG 用于标记图形,而不是内容。

html
<svg version="1.1" width="300" height="200">
  <circle cx="150" cy="100" r="90" fill="pink"></circle>
</svg>

页面效果:

INFO

优点:

  • SVG 很容易手工编码。
  • 矢量图像中的文本仍然可访问(也有利于 SEO)。
  • SVG 很好地适应样式/脚本,因为图像的每个组件都是可以通过 CSS 或通过 JavaScript 编写的样式的元素。

缺点:

  • SVG 非常容易变得复杂,这意味着文件大小会增加; 复杂的 SVG 也会在浏览器中占用很长的处理时间。
  • SVG 可能比栅格图像更难创建,具体取决于创建哪种图像。
  • 旧版浏览器不支持 SVG,如果需要支持旧版本的 IE,则可能不适合(SVG 从 IE9 开始得到支持)。

页面中添加 SVG

html
<img
  src="equilateral.svg"
  alt="triangle with all three sides equal"
  height="87px"
  width="100px"
/>

优点:

  • 快速,图像语法与 alt 属性中提供的内置文本等效。
  • 可以在<a>元素嵌套<img>,使图像成为超链接。

缺点:

  • 无法使用 JavaScript 操作图像。
  • 如果要使用 CSS 控制 SVG 内容,则必须在 SVG 代码中包含内联 CSS 样式,从 SVG 文件调用的外部样式表不起作用。
  • 不能用 CSS 伪类来重设图像样式(如:focus)。