知识问答
如何有效利用HTML中的SVG和预定义形状元素?
在HTML中使用SVG(Scalable Vector Graphics)可以显著提升网页的视觉效果和交互性,SVG是一种基于XML的矢量图形格式,支持高清晰度的缩放和无损放大而不会失真,下面将详细介绍如何在HTML中使用SVG以及SVG预定义形状元素:
HTML中使用SVG的方法
1、使用标签嵌入SVG文件:可以通过以下三种方式将SVG文件嵌入到HTML文档中:
<embed>:适用于嵌入外部SVG文件。
<embed src="rect.svg" width="300" height="100" type="image/svg+xml" pluginspage="http://www.adobe.com/svg/viewer/install/"/>
<object>:也用于嵌入外部SVG文件。
<object data="rect.svg" width="300" height="100" type="image/svg+xml" codebase="http://www.adobe.com/svg/viewer/install/"/>
<iframe>:虽然较为早期且现在较少使用,但仍可用于嵌入SVG文件。
<iframe src="rect.svg" width="300" height="100"></iframe>
2、直接在HTML文件中写入SVG代码:可以直接在HTML文件中编写SVG代码,需要先引入SVG的DTD文件。
<?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 width="100%" height="100%" version="1.1" xmlns="http://www.w3.org/2000/svg" onclick="ccc();"> <ellipse cx="240" cy="100" rx="220" ry="30" style="fill:yellow"/> <ellipse cx="220" cy="100" rx="190" ry="20" id="w1" style="fill:white"/> </svg> <script type="text/javascript"> function ccc(){ var a = document.getElementById("w1"); a.style.fill="red"; a.setAttribute("cx", "150"); //设置值 a.setAttribute("ry", "50"); //设置值 } </script>
SVG预定义形状元素
SVG提供了多种预定义的形状元素,这些元素可以直接用于创建各种图形,以下是一些常用的SVG预定义形状元素:
1、矩形<rect>
:用于绘制矩形或圆角矩形,属性包括x
,y
,width
,height
,rx
(圆角的水平半径)和ry
(圆角的垂直半径),示例:
<rect x="20" y="20" width="100" height="50" fill="blue" stroke="black" strokewidth="2"/>
2、圆形<circle>
:用于绘制圆形,属性包括cx
(圆心X坐标),cy
(圆心Y坐标),r
(半径),示例:
<circle cx="50" cy="50" r="40" fill="green" stroke="black" strokewidth="2"/>
3、椭圆<ellipse>
:用于绘制椭圆,属性包括cx
,cy
,rx
(水平方向上的半径),ry
(垂直方向上的半径),示例:
<ellipse cx="40" cy="30" rx="60" ry="30" fill="yellow" stroke="black" strokewidth="2"/>
4、线段<line>
:用于绘制直线,属性包括x1
,y1
,x2
,y2
(起点和终点的坐标),示例:
<line x1="10" y1="10" x2="100" y2="100" stroke="purple" strokewidth="2"/>
5、折线<polyline>
:用于绘制多条连接的直线段,属性包括points
(点的列表,每对值表示一个点的坐标),示例:
<polyline points="5,5 20,20 40,10 60,40 80,20" fill="none" stroke="red" strokewidth="2"/>
6、多边形<polygon>
:用于绘制多边形,属性包括points
(顶点的列表,每对值表示一个顶点的坐标),示例:
<polygon points="50,5 95,5 90,80 55,80" fill="orange" stroke="black" strokewidth="2"/>
7、路径<path>
:用于绘制任意形状的图形,通过d
属性指定一系列指令和坐标。
<path d="M 10 10 L 30 10 L 20 40 Z" fill="none" stroke="blue" strokewidth="2"/>
表格:SVG预定义形状元素及其属性
形状 | 主要属性 | 示例 | |
矩形 |
| x, y, width, height, rx, ry |
|
圆形 |
| cx, cy, r |
|
椭圆 |
| cx, cy, rx, ry |
|
线段 |
| x1, y1, x2, y2 |
|
折线 |
| points |
|
多边形 |
| points |
|
路径 |
| d (指令和坐标) |
|
FAQs
问题1:如何在HTML中嵌入SVG文件?
答案1:在HTML中嵌入SVG文件可以使用 使用 使用 问题2:如何在SVG中使用JavaScript控制图形变换? 答案2:如果将SVG代码直接写在HTML文件中,可以通过JavaScript来控制图形的变换。<embed>
、<object>
或<iframe>
标签,使用<embed>
<embed src="rect.svg" width="300" height="100" type="image/svg+xml"/>
<object>
<object data="rect.svg" width="300" height="100" type="image/svg+xml"/>
<iframe>
<iframe src="rect.svg" width="300" height="100"></iframe>
<svg width="100%" height="100%" version="1.1" xmlns="http://www.w3.org/2000/svg" onclick="ccc();"> <ellipse cx="240" cy="100" rx="220" ry="30" style="fill:yellow"/> <ellipse cx="220" cy="100" rx="190" ry="20" id="w1" style="fill:white"/></svg><script type="text/javascript"> function ccc(){ var a = document.getElementById("w1"); a.style.fill="red"; a.setAttribute("cx", "150"); //设置值 a.setAttribute("ry", "50"); //设置值 }</script>