什么是svg

什么是svg

日期:2022年6月5日 下午10:40 分类:HTML5前端

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

与其他图像格式相比,使用 SVG 的优势在于:
SVG 可被非常多的工具读取和修改(比如记事本)
SVG 与 JPEG 和 GIF 图像比起来,尺寸更小,且可压缩性更强。
SVG 是可伸缩的
SVG 图像可在任何的分辨率下被高质量地打印
SVG 可在图像质量不下降的情况下被放大
SVG 图像中的文本是可选的,同时也是可搜索的(很适合制作地图)
SVG 可以与 Java 技术一起运行
SVG 是开放的标准

SVG 文件是纯粹的 XML

代码结构

<html xmlns:svg="http://www.w3.org/2000/svg">
<body>

<p>This is an HTML paragraph</p>

<svg:svg width="300" height="100" version="1.1" >
<svg:circle cx="100" cy="50" r="40" stroke="black"
stroke-width="2" fill="red" />
</svg:svg>

</body>
</html>
SVG提供的预定义形状元素的使用和操作:

<rect>标签可用来创建矩形,以及矩形的变种

<rect x="20" y="20" rx="20" ry="20" width="250" height="250" style="fill:blue;stroke:pink;stroke-width:5;fill-opacity:0.1;stroke-opacity:0.9"/>
代码解释:
1)rect 元素的 width 和 height 属性可定义矩形的高度和宽度
2)style 属性用来定义 CSS 属性
3)CSS 的 fill 属性定义矩形的填充颜色(rgb 值、颜色名或者十六进制值)
4)CSS 的 stroke-width 属性定义矩形边框的宽度
5)CSS 的 stroke 属性定义矩形边框的颜色
6)x 属性定义矩形的左侧位置(例如,x="0" 定义矩形到浏览器窗口左侧的距离是 0px)
7)y 属性定义矩形的顶端位置(例如,y="0" 定义矩形到浏览器窗口顶端的距离是 0px)
8)CSS 的 fill-opacity 属性定义填充颜色透明度(合法的范围是:0 - 1)
9)CSS 的 stroke-opacity 属性定义笔触颜色的透明度(合法的范围是:0 - 1)
10)rx 和 ry 属性可使矩形产生圆角。

<circle> 标签可用来创建一个圆

<circle cx="100" cy="50" r="40" stroke="black" stroke-width="2" fill="red"/>
代码解释:
1)cx 和 cy 属性定义圆点的 x 和 y 坐标。如果省略 cx 和 cy,圆的中心会被设置为 (0, 0)
2)r 属性定义圆的半径。

<ellipse> 标签可用来创建椭圆

<ellipse cx="300" cy="150" rx="200" ry="80" style="fill:rgb(200,100,50); stroke:rgb(0,0,100);stroke-width:2"/>
代码解释:
1)cx 属性定义圆点的 x 坐标
2)cy 属性定义圆点的 y 坐标
3)rx 属性定义水平半径
4)ry 属性定义垂直半径

<line> 标签用来创建线条

<line x1="0" y1="0" x2="300" y2="300" style="stroke:rgb(99,99,99);stroke-width:2"/>
代码解释:
1)x1 属性在 x 轴定义线条的开始
2)y1 属性在 y 轴定义线条的开始
3)x2 属性在 x 轴定义线条的结束
4)y2 属性在 y 轴定义线条的结束

<polygon> 标签用来创建含有不少于三个边的图形

<polygon points="220,100 300,210 170,250" style="fill:#cccccc; stroke:#000000;stroke-width:1"/>
代码解释:
1)points 属性定义多边形每个角的 x 和 y 坐标

<polyline> 标签用来创建仅包含直线的形状

<polyline points="0,0 0,20 20,20 20,40 40,40 40,60" style="fill:white;stroke:red;stroke-width:2"/>
代码解释:
1)points 属性定义每段线的每个角的 x 和 y 坐标

<path> 标签用来定义路径

<path d="M250 150 L150 350 L350 350 Z" />
下面的命令可用于路径数据:

M = moveto
L = lineto
H = horizontal lineto
V = vertical lineto
C = curveto
S = smooth curveto
Q = quadratic Belzier curve
T = smooth quadratic Belzier curveto
A = elliptical Arc
Z = closepath
注释:以上所有命令均允许小写字母。大写表示绝对定位,小写表示相对定位

SVG 滤镜 可用的滤镜有:

feBlend
feColorMatrix
feComponentTransfer
feComposite
feConvolveMatrix
feDiffuseLighting
feDisplacementMap
feFlood
feGaussianBlur
feImage
feMerge
feMorphology
feOffset
feSpecularLighting
feTile
feTurbulence
feDistantLight
fePointLight
feSpotLight

Gaussian Blur高斯模糊

<filter> 标签用来定义 SVG 滤镜。<filter> 标签使用必需的 id 属性来定义向图形应用哪个滤镜?
<filter> 标签必须嵌套在 <defs> 标签内。<defs> 标签是 definitions 的缩写,它允许对诸如滤镜等特殊元素进行定义。

<defs>
<filter id="Gaussian_Blur">
<feGaussianBlur in="SourceGraphic" stdDeviation="3" />
</filter>
</defs>
<ellipse cx="200" cy="150" rx="70" ry="40" style="fill:#ff0000;stroke:#000000;stroke-width:2;filter:url(#Gaussian_Blur)"/>
代码解释:
1)<filter> 标签的 id 属性可为滤镜定义一个唯一的名称(同一滤镜可被文档中的多个元素使用)
2)filter:url 属性用来把元素链接到滤镜。当链接滤镜 id 时,必须使用 # 字符
3)滤镜效果是通过 <feGaussianBlur> 标签进行定义的。fe 后缀可用于所有的滤镜
4)<feGaussianBlur> 标签的 stdDeviation 属性可定义模糊的程度
5)in="SourceGraphic" 这个部分定义了由整个图像创建效果

<linearGradient> 可用来定义 SVG 的线性渐变

<linearGradient> 标签必须嵌套在 <defs> 的内部。<defs> 标签是 definitions 的缩写,它可对诸如渐变之类的特殊元素进行定义。
线性渐变可被定义为水平、垂直或角形的渐变:
1)当 y1 和 y2 相等,而 x1 和 x2 不同时,可创建水平渐变
2)当 x1 和 x2 相等,而 y1 和 y2 不同时,可创建垂直渐变
3)当 x1 和 x2 不同,且 y1 和 y2 不同时,可创建角形渐变

<defs>
<linearGradient id="orange_red" x1="0%" y1="0%" x2="100%" y2="0%">
<stop offset="0%" style="stop-color:rgb(255,255,0);stop-opacity:1"/>
<stop offset="100%" style="stop-color:rgb(255,0,0);stop-opacity:1"/>
</linearGradient>
</defs>
<ellipse cx="200" cy="190" rx="85" ry="55" style="fill:url(#orange_red)"/>
代码解释:
1)<linearGradient> 标签的 id 属性可为渐变定义一个唯一的名称
2)fill:url(#orange_red) 属性把 ellipse 元素链接到此渐变
3)<linearGradient> 标签的 x1、x2、y1、y2 属性可定义渐变的开始和结束位置
4)渐变的颜色范围可由两种或多种颜色组成。每种颜色通过一个 <stop> 标签来规定。offset 属性用来定义渐变的开始和结束位置。

<radialGradient> 用来定义放射性渐变

<radialGradient> 标签必须嵌套在 <defs> 中。<defs> 标签是 definitions 的缩写,它允许对诸如渐变等特殊元素进行定义。

<defs>
<radialGradient id="grey_blue" cx="50%" cy="50%" r="50%" fx="50%" fy="50%">
<stop offset="0%" style="stop-color:rgb(200,200,200);stop-opacity:0"/>
<stop offset="100%" style="stop-color:rgb(0,0,255);stop-opacity:1"/>
</radialGradient>
</defs>
<ellipse cx="230" cy="200" rx="110" ry="100" style="fill:url(#grey_blue)"/>
代码解释:
1)<radialGradient> 标签的 id 属性可为渐变定义一个唯一的名称,fill:url(#grey_blue) 属性把 ellipse 元素链接到此渐变,cx、cy 和 r 属性定义外圈,而 fx 和 fy 定义内圈 渐变的颜色范围可由两种或多种颜色组成。每种颜色通过一个 <stop> 标签来规定。offset 属性用来定义渐变的开始和结束位置。

在svg中提供了如g元素这样的将多个元素组织在一起的元素。由g元素编组在一起的可以设置相同的颜色,可以进行坐标变

<svg width="100%" height="100%" version="1.1"
xmlns="http://www.w3.org/2000/svg">
<g fill="dodgerblue">
<rect x="10" y="10" width="40" height="40" ry="10" />
<rect x="80" y="80" width="40" height="40" ry="10" />
<rect x="150" y="150" width="40" height="40" ry="10" />
</g>
</svg>



点这里获得人工在线支持,快速解决电脑、网络和网站等问题!

为您推荐


使用PowerPoint在Windows11上录屏

Windows 11中屏幕录制的第三种方法是使用PowerPoint,利用该软件也可以轻松完成屏幕录制,用于将录制内容保存到幻灯片放映。下面让我们跳到详细的操作步骤:   步骤1.打开 PowerPoint并在你的计算机上打开一个新文件,然后单击“插入”以选择“屏幕录制”按钮。   步骤2.单击“选择区域”以选择录制区域,然后单击红……

使用易我录屏助手在Windows11上录屏

通过Xbox只能进行一些简单的录制,如果你对录屏有着更高的需求,想要在录制后进行一些编辑,或者是加一些水印等等,你可以使用专业的屏幕录制工具。   易我录助手是一款专业的电脑录屏软件,它不单单适用于Windows电脑,还有专门的Mac版本,所以也是支持苹果电脑的。易我录屏助手可以录制整个屏幕、特定窗口、网络摄……

使用Xbox游戏栏在Windows11上录屏

如果要在电脑上进行一些简单的录制,Xbox游戏栏是一个很好的选项。但它不适用于多个窗口,甚至不适用于桌面,它只适用于一个窗口。以下是在Windows 11中使用Xbox录制屏幕的详细步骤:   步骤1.用户只能通过在后台或谷歌浏览器打开游戏来使用游戏录制工具栏进行录制。首先,通过在电脑的搜索菜单中键入“Xbox 游戏录制……

密码保护:win11 更新错误 0x8024a205 解决方法

导致 0x8024a205 错误的原因有很多种,包括 Windows Update 组件损坏、过时或不兼容的设备驱动程序、网络连接问题等。修复这个错误主要有以下几种方式: 重启电脑 使用 Windows Update 疑难解答 检查网络连接 禁用或者卸载所有防病毒软件 运行系统文件审查(SFC)和部署映像服务和管理(DISM)工具 重置 Windows Update ……

win11更新卡在65%的解决方法

方法一: 1、首先,我们右键下方任务栏,打开“ 任务管理器 ” 2、然后点击上方“ 性能 ”选项卡,看看自己的硬件是否正在正常运行。 3、如果每一项都在运行的话,那么只要耐心等待一段时间应该就可以正常更新了。 4、如果其中有 不在正常运行的硬件 ,那么可能是卡住了, 重启一下电脑 再尝试更新即可解决问题。 方法二: 1……

win11隐藏文件夹方法

1、首先,找到需要隐藏的文件夹; 2、隐藏文件夹空白处,按住【shift】键,再点击【右键】,打开的右键菜单项中,选择【在此处打开 Powershell 窗口(S)】; 3、输入【attrib +s +h 需要隐藏的文件夹名称 】命令,再按键盘的【Enter回车键】可以隐藏文件夹; 4、如果需要再次显示文件夹,输入【attrib +s -h 需要隐藏的……

版权声明:

fm0898.com小部分文章引用或者参考了网络上传播的部分开源开放代码,我站采用的这部分代码仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请 联系我们并出示版权证明以便删除 !

请站长吃包辣条更有动力写作哦!

2023年一月
« 12月    
 1
2345678
9101112131415
16171819202122
23242526272829
3031