网站首页 > 技术文章 正文
前端必备知识点—SVG
基本内容
什么是SVG? 全称为Scalable Vector Graphics,是一种使用XML技术描述二维图形的语言,简单来说 - 矢量图(不失真)
SVG与HTML5的关系
早在HTML5之前,存在SVG技术
SVG文件扩展名为".svg"
在HTML5出现之前,要在HTML页面中引入SVG文件
在HTML5出现之后,将SVG内容直接定义在HTML页面中
SVG的优势
可以使用文本编辑器创建和修改,SVG可被搜索、索引等,SVG绘制的图像不失真的
SVG与Canvas的区别
SVG不依赖于分辨率,使用DOM或绑定事件,实现大型渲染区域的应用(地图类)
Canvas依赖于分辨率,不能使用DOM或绑定事件的,运行时以图片形式出现".jpg"
SVG的标准也是W3C定制的
设置样式
1.通过元素的属性方式
fill - 设置填充样式
fill-opacity - 设置填充透明度
stroke - 设置描边样式
stroke-width - 设置边框的宽度
2.通过style属性,使用类似于CSS属性设置方式
注意 - 不能使用CSS中的样式进行设置
transform属性,用于设置转换效果
方法有:rotate()、scale()、translate()
绘制图形
矩形元素- <rect>元素
<rect x="" y="" width="" height="" rx="" ry="" />
x和y - 绘制矩形的左上角坐标值
width和height - 设置绘制矩形的宽度和高度
rx和xy - 设置圆角矩形
圆形元素 - <circle>元素
<circle cx="" cy="" r="" />
cx和cy - 绘制圆形的圆心坐标值
cx和cy不设置值的话,默认为(0,0)
r - 绘制圆形的半径
椭圆元素- <ellipse>元素
<ellipse cx="" cy="" rx="" ry="" />
cx和cy - 绘制椭圆的圆心坐标值
rx - 绘制椭圆的水平方向的半径
ry - 绘制椭圆的垂直方向的半径
注意:当rx和ry的值相同时,绘制的是圆形
线条元素- <line>元素
<line x1="" y1="" x2="" y2="" />
x1和y1 - 绘制直线的起点坐标值
x2和y2 - 绘制直线的终点坐标值
注意:绘制直线时,默认描边颜色为白色
折线元素 - <ployline>元素
<polyline points="" />
points - 折线的所有点坐标值,都设置在该属性中
注意:描边颜色默认为白色,填充颜色默认为黑色
多边形元素- <polygon>元素
<polygon points="" />
points - 折线的所有点坐标值,都设置在该属性中
注意: SVG绘制图形使用元素
单标签 - 增加结束符"/"
起始标签
特效元素
线性渐变 - 基准线
<defs>
<linearGradient id="grad" x1="基准线的起点坐标值x" y1="基准线的起点坐标值y" x2="基准线的终点坐标值x" y2="基准线的终点坐标值y">
<stop offset="0%~100%" stop-color="颜色" />
</linearGradient>
</defs>
<rect fill="url(#渐变元素的id)">
射线渐变 - 基准圆
<defs>
<radialGradient id="grad" fx="设置起点基准圆的圆心x" fy="设置起点基准圆的圆心y" cx="设置终点基准圆的圆心x" cy="设置终点基准圆的圆心y" r="设置终点基准圆的半径">
<stop offset="0%~100%" stop-color="颜色" />
</radialGradient>
</defs>
<rect fill="url(#渐变元素的id)">
注意:线性渐变或射线渐变,设置基准线(圆)的坐标值必须是百分值,允许为负值,允许为大于 100% 的值
设置渐变颜色位置必须是百分值
只能是从 0% ~ 100%
滤镜元素 - 高斯模糊
滤镜元素 - <filter>元素
高斯模糊 - <feGaussianBlur>元素
猜你喜欢
- 2025-06-18 服务端渲染SSR:渐进式水合技术前沿
- 2025-06-18 详解如何使用vite-plugin-svg-icons在Vue3项目中集成SVG图标
- 2025-06-18 前端能限制用户截图吗?(前端限制图片大小)
- 2025-06-18 极客Web前端开发资源大荟萃#020(极客代码)
- 2025-06-18 SVG Drawing Animation – SVG 绘制
- 2025-06-18 想要字体图标设计师却给了SVG?没关系,自己转
- 2025-06-18 第五篇 前端面试基础题,你能拿下几道?
- 2024-10-04 css实现的svg路径动画html页面前端源码
- 2024-10-04 5分钟搞懂SVG画图 svg绘制
- 2024-10-04 svg、canvas、css 3d 实现数据可视化(伪 3D 效果)
你 发表评论:
欢迎- 533℃Oracle分析函数之Lag和Lead()使用
- 531℃几个Oracle空值处理函数 oracle处理null值的函数
- 530℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 521℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 515℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 505℃【数据统计分析】详解Oracle分组函数之CUBE
- 485℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 483℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端富文本编辑器 (47)
- 前端路由 (61)
- 前端数组 (73)
- 前端排序 (47)
- 前端密码加密 (47)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle的函数 (57)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)