SVG MDN 学习指南

一、什么是 SVG ?

SVG,即可缩放矢量图形(Scalable Vector Graphics)。

它是一种基于 XML 的标记语言,可以创建复杂的矢量图形。

与位图不同,矢量图形可以无限缩放,而不会失去清晰度。这使得 SVG 成为一种非常方便的多媒体图形格式,特别适合在网页上使用。

下面是一个简单的 SVG 示例:

<svg width="100" height="100">
  <rect x="10" y="10" width="80" height="80" fill="red" />
</svg>

二、SVG 元素

SVG 通过在页面上嵌入元素来创建图形。以下是一些常用的 SVG 元素:

1. <rect> 元素

<rect> 元素创建一个矩形。可以设置它的位置、大小、颜色等属性。

<svg width="100" height="100">
  <rect x="10" y="10" width="80" height="80" fill="red" />
</svg>

2. <circle> 元素

<circle> 元素创建一个圆形。可以设置它的位置、半径、颜色等属性。

<svg width="100" height="100">
  <circle cx="50" cy="50" r="40" fill="blue" />
</svg>

3. <line> 元素

<line> 元素创建一条直线。可以设置它的起点和终点的坐标、颜色等属性。

<svg width="100" height="100">
  <line x1="10" y1="10" x2="90" y2="90" stroke="black" />
</svg>

4. <text> 元素

<text> 元素在 SVG 中创建文本。

<svg width="100" height="100">
  <text x="50" y="50" font-size="20" fill="black">Hello SVG!</text>
</svg>

5. <path> 元素

<path> 元素在 SVG 中创建复杂的路径。

<svg width="100" height="100">
  <path d="M10 10 L50 90 L90 10" stroke="black" fill="none" />
</svg>

三、SVG 属性

SVG 元素可以设置许多属性,用于调整它们的外观、位置和交互。以下是一些常用的 SVG 属性:

1. width 和 height 属性

width 和 height 属性定义了 SVG 元素的宽度和高度。

<svg width="100" height="100">
  ...
</svg>

2. x 和 y 属性

x 和 y 属性定义 SVG 元素的左上角的坐标。

<svg>
  <rect x="10" y="10" ... />
  <circle cx="50" cy="50" ... />
  ...
</svg>

3. fill 和 stroke 属性

fill 和 stroke 属性分别用于设置 SVG 元素的填充颜色和描边颜色。

<rect fill="red" stroke="black" ... />
<circle fill="blue" stroke="black" ... />
<line stroke="black" ... />
<text fill="black" ... > ... </text>
<path stroke="black" fill="none" ... />

4. transform 属性

transform 属性用于旋转、缩放、平移和倾斜 SVG 元素。

<rect transform="rotate(45)" ... />
<circle transform="scale(2)" ... />
<line transform="translate(20,20)" ... />
<text transform="skewX(45)" ... >...</text>
<path transform="scale(3) rotate(30)" ... />

四、SVG 交互

SVG 可以响应用户交互,例如鼠标移动、点击等。下面是一些常用的 SVG 交互事件:

1. onclick 事件

onclick 事件在用户单击 SVG 元素时触发。下面的示例会在每次单击时改变矩形的颜色。

<svg>
  <rect id="myRect" fill="red" width="100" height="100"
    onclick="document.getElementById('myRect').setAttribute('fill', 'blue');" />
</svg>

2. onmouseover 和 onmouseout 事件

onmouseover 和 onmouseout 事件在用户将鼠标移到 SVG 元素上或移开时触发。下面的示例会在鼠标移到圆形上时改变它的颜色。

<svg>
  <circle id="myCircle" fill="green" cx="50" cy="50" r="40"
    onmouseover="document.getElementById('myCircle').setAttribute('fill', 'blue');"
    onmouseout="document.getElementById('myCircle').setAttribute('fill', 'green');" />
</svg>

五、SVG 在 HTML 中的使用

在 HTML 中,可以通过下面的方式嵌入 SVG 图像:

<svg width="100" height="100">
  <rect x="10" y="10" width="80" height="80" fill="red" />
</svg>

SVG 也可以通过<img>标签来嵌入:

<img src="myimage.svg" width="100" height="100" />

如果需要在 HTML 中直接嵌入 SVG 并与 HTML 元素进行交互,可以使用<object>或<iframe>元素:

<object type="image/svg+xml" data="myimage.svg" width="100" height="100"></object>

六、SVG MDN 参考文档

以上内容仅是 SVG 的基本语法和常用元素,更多内容和详细参数请参考 SVG MDN 文档

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/187415.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝的头像小蓝
上一篇 2024-11-27 17:57
下一篇 2024-11-28 06:22

相关推荐

  • SVG与CSS

    一、SVG与CSS的介绍 SVG(可缩放矢量图形)是用于描述二维矢量图形的XML标记语言。其可以通过文本编辑器进行编辑,也可以通过JavaScript动态操作SVG元素。与常规图像…

    编程 2025-04-25
  • 深入理解filter mdn

    一、filter mdn是什么? filter是JavaScript中一项重要的功能,它允许我们通过一定的筛选条件对数据进行过滤、转换或聚合。通过filter mdn,我们可以更加…

    编程 2025-04-23
  • SVG制作

    一、制作SVG的特点 SVG(Scalable Vector Graphics) 是一种XML类型的图形格式,只要使用SVG标记描述图形即可,因此可以很好地实现从多个角度放缩而且不…

    编程 2025-04-23
  • Python学习指南——从菜鸟到进阶

    一、Python介绍 Python是一种高级编程语言,由Guido van Rossum于1989年底发明。Python是一门面向对象的语言,具有简单易学、代码简洁、可读性高等特点…

    编程 2025-04-02
  • Lua学习指南

    一、Lua的介绍 Lua是一种轻量级的脚本语言,它是由巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)的…

    编程 2025-02-24
  • 深入了解Elasticsearch:ES学习指南

    在现代互联网时代,数据处理已成为企业和个人不可或缺的一部分。因此,对数据存储和检索技术的需求也越来越大。在这个背景下,Elasticsearch(以下简称ES)成为了一种强大而流行…

    编程 2025-02-05
  • 使用SVG图标优化页面可提高用户体验

    SVG是可缩放矢量图形,相对于传统的位图(如png, jpg等),SVG图标在放大或缩小时不会失去清晰度,因此常用于在不同分辨率屏幕上显示相同的图像。除此之外,使用SVG图标还可以…

    编程 2025-02-05
  • Hadoop学习指南

    一、Hadoop简介 Hadoop是Apache基金会开发的一款开源框架,用于存储和处理大数据集。它使用分布式存储和计算的方式来管理庞大的数据集。相较于传统的数据处理方法,Hado…

    编程 2025-02-05
  • MIT6S081深入学习指南

    一、操作系统介绍 操作系统是计算机的核心,它管理着系统资源的调度和分配。MIT6S081深入学习指南提供了操作系统的完整代码和实时系统维护方法。我们明确了代码中各个组件的功能和之间…

    编程 2025-01-21
  • 详解SVG编辑

    一、SVG编辑器 SVG编辑器指的是用于制图的软件,一般支持对SVG文件格式的编辑和保存。其中,Adobe Illustrator是广为人知的SVG编辑器之一,具有丰富的图形制作工…

    编程 2025-01-20

发表回复

登录后才能评论