Html 简明教程
HTML - SVG
HTML SVG (Scalable Vector Graphics) 用于定义可嵌入 HTML 页面的 XML 中的矢量图形。SVG 与普通图像不同,即使在缩放后也不会损失质量。
What is SVG?
-
SVG 代表可缩放矢量图形。
-
SVG 帮助我们使用 XML 编码绘制任何类型的图像。
-
缩放 XML 矢量不会损失其质量
-
它主要用于像饼图和 X、Y 坐标系统中的二维图形这样的矢量类型图表。
-
SVG 在 2003 年 1 月 14 日成为 W3C 推荐标准。
SVG (Scalable Vector Graphics)
PNG、GIF 和 JPG 文件是位图图形,而 SVG 文件是矢量图形。这两者之间的主要区别在于位图图形由网格状小像素组成,而矢量图形由编码定义,因此在缩放后矢量图形不会损失质量。
Ways to use SVG in HTML?
有两种方法可以将 SVG 文件嵌入到 HTML 中
Tags inside SVG Element
有一些预定义的 SVG 元素用于绘制圆形、矩形、线条等各种形状。它们如下所示
Tags |
Description |
* <rect>* |
用于在矢量图形中使用给定的宽度和高度(作为属性)定义一个矩形。 |
用于定义具有给定的左上角坐标和半径(作为属性)的圆形。 |
|
用于定义具有给定的左上角坐标、长轴长度和短轴长度(作为属性)的椭圆形。 |
|
用于根据给定的两个坐标(作为属性)绘制线条 |
|
用于定义由一系列连接点的给定坐标的多条折线 |
|
用于定义相连成直线的给定坐标的多边形。 |
<svg> 标签是上述标签的顶级(根)元素。它们在 svg 元素内定义。
Attributes of SVG Elements
下表包含 SVG 元素属性的列表
Attribute |
Description |
X |
The top-left x-axis coordinate. |
Y |
The top-left y-axis coordinate. |
矩形图形的宽度。 |
|
矩形图形的高度。 |
|
rx |
椭圆形的 x 轴圆度。 |
ry |
椭圆形的 y 轴圆度。 |
Indicate an inline style. |
Examples of HTML SVG Element
以下是演示如何使用 SVG 标签绘制不同图形元素的一些示例。
Draw a Circle using HTML SVG Tag
以下是 SVG 示例,它使用 SVG 元素中的 <circle> 标记绘制一个圆。cx 是圆左上角的 x 坐标,cy 是圆右上角的 y 坐标
<!DOCTYPE html>
<html>
<head>
<title>SVG-Circle</title>
</head>
<body>
<h2>HTML SVG Circle</h2>
<svg height="500" >
<circle cx="50"
cy="50"
r="50"
fill="red" />
</svg>
</body>
</html>
Draw a rectangle using HTML SVG Tag
以下是 SVG 示例,它使用 <rect> 标记绘制一个矩形。我们使用 height 和 width 属性来创建一个矩形
<!DOCTYPE html>
<html>
<head>
<title>SVG Rectangle</title>
</head>
<body>
<h2>HTML SVG Rectangle</h2>
<svg height = "200">
<rect width = "300"
height = "100"
fill = "red" />
</svg>
</body>
</html>
Draw a line using HTML SVG Tag
以下是 SVG 示例,它使用 <line> 标记绘制一条线,用于给定的两个点的坐标(x1,y1, x2,y2)。我们还可以使用 style 属性,它允许我们设置附加的样式信息,如描边和填充颜色、描边的宽度等。
<!DOCTYPE html>
<html>
<head>
<title>SVG Line</title>
</head>
<body>
<h2>HTML SVG Line</h2>
<svg height="200">
<line x1="0" y1="0"
x2="200" y2="100"
style="stroke:red;stroke-width:2"/>
</svg>
</body>
</html>
Draw a Ellipse using HTML SVG Tag
以下是 SVG 示例,它使用 <ellipse> 标记绘制一个椭圆。cx 和 cy 是椭圆左上角的坐标,rx 是沿 x 轴的半径,ry 是沿 y 轴的半径。
<!DOCTYPE html>
<html>
<head>
<title>SVG Ellipse</title>
</head>
<body>
<h2>HTML SVG Ellipse</h2>
<svg height="200">
<ellipse cx="100" cy="50"
rx="100" ry="50"
fill="red" />
</svg>
</body>
</html>
Draw a Polygon using HTML SVG Tag
以下是 SVG 示例,它使用 <polygon> 标记绘制一个多边形。points 属性定义了多边形的顶点。每对坐标 (x, y) 指定一个顶点,多边形通过用直线连接这些顶点来绘制。
<!DOCTYPE html>
<html>
<head>
<title>SVG</title>
</head>
<body>
<h2>HTML SVG Polygon</h2>
<svg height="200">
<polygon points="20,10, 300,20, 170,50, 130,70"
fill="red" />
</svg>
</body>
</html>
Draw a Polyline using HTML SVG Tag
以下是 SVG 示例,它使用 <polyline> 标记绘制一个折线。我们在折线标记的“point”属性中给出连接点坐标。
<!DOCTYPE html>
<html>
<head>
<title>SVG Polyline</title>
</head>
<body>
<h2>HTML SVG Polyline</h2>
<svg height="200">
<polyline points="0,0 0,30 30,30 30,60 60,60"
fill="red" />
</svg>
</body>
</html>
Filling Color Gradient for Shapes
以下是 SVG 示例,它使用 <ellipse> 标记绘制一个椭圆,并将 <radialGradient> 标记用于定义 SVG 径向渐变。
同样,你可以使用 <linearGradient> 标记创建 SVG 线性渐变。
<!DOCTYPE html>
<html>
<head>
<title>SVG</title>
</head>
<body>
<h2>HTML SVG Gradient Ellipse</h2>
<svg height="200">
<defs>
<radialGradient id="gradient"
cx="50%" cy="50%"
r="50%"
fx="50%" fy="50%">
<stop offset="0%"
style="stop-color:rgb(200,200,200);"/>
<stop offset="100%"
style="stop-color:rgb(0,0,255);"/>
</radialGradient>
</defs>
<ellipse cx="100" cy="50"
rx="100" ry="50"
style="fill:url(#gradient)" />
</svg>
</body>
</html>