位置: IT常识 - 正文

5 分钟速通 SVG

编辑:rootadmin
前言 SVG对不少前端来说就是一个熟悉的陌生人,此篇博客是我学习完SVG后做的一个小总结,帮助我快速回忆SVG相关内容。 它不能帮你精通 SVG,但是可以帮你快速了解SVG的一些核心内容,不会迷失在一些细枝末节的设定中,让你对 SVG 有一个大概的认识。 基础 SVG,全名 Scalable Vec ... 前言

推荐整理分享5 分钟速通 SVG,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

SVG对不少前端来说就是一个熟悉的陌生人,此篇博客是我学习完SVG后做的一个小总结,帮助我快速回忆SVG相关内容。

它不能帮你精通 SVG,但是可以帮你快速了解SVG的一些核心内容,不会迷失在一些细枝末节的设定中,让你对 SVG 有一个大概的认识。

基础

SVG,全名 Scalable Vector Graphics,是可缩放的矢量图形,可以随意放大缩小并且不失真,最重要的是体积也很小。

SVG 是一种XML语言,由 svg 根元素和一些基本形状元素构成,另外还有一个 g 元素将基本形状元素编组,支持渐变、旋转、动画、滤镜等效果,且能与 js 进行交互。

通常我们使用的 SVG 指的是 SVG1.1,而不是 SVG2.0,因为它的浏览器支持度不够。

我们先给出一个 MDN 上的简单示例:

<svg version="1.1" baseProfile="full" width="300" height="200" xmlns="http://www.w3.org/2000/svg"> <rect width="100%" height="100%" fill="red" /> <circle cx="150" cy="100" r="80" fill="green" /> <text x="150" y="125" font-size="60" text-anchor="middle" fill="white">SVG</text></svg>

效果是:

svg 根元素上的这些除了宽高算是固定格式,下面的三个元素分别是矩形,圆和文字,每个元素上都有坐标定位,上面有些属性用来改变它的位置、大小和填充颜色。

svg 的基本图形元素有:

* rect 矩形* circle 圆形* ellipse 椭圆* line 直线* polyline 折线* polygon 多边形* path 路径

知道有这么多元素就行了,具体属性看相关文档,不用细究。

前 6 种元素全部可以用 path 实现,但是为了语义化容易读懂,可以尽量用前 6 种。

现在着重讲一下 path。

路径 path

path 是 svg 基础形状中最强大的一个,可以很容易绘制直线,曲线,弧线。

先给个示例:

<svg width="100px" height="100px" version="1.1" xmlns="http://www.w3.org/2000/svg"> <path d="M 10 10 H 90 V 90 H 10 L 10 10" fill="transparent" stroke="black"/></svg>

效果是:

5 分钟速通 SVG

示例中的 path 元素上,fill 和 stroke 对前端来说应该容易理解,就是填充和线条颜色,但它定义形状的核心属性d看起来就很容易让人眼前一懵。

d表示一系列的路径命令,而SVG的六种路径命令类型如下:

移动到:M、m画线至:L、l、H、h、V、v三次方贝塞尔曲线:C、c、S、s二次方贝塞尔曲线:Q、q、T、t椭圆曲线:A、a封闭路径:Z、z

操作就是使用移动命令移动到指定的点,然后使用剩下的几个路径来绘制线条。

然后我们解析一下上方的SVG例子:

使用移动命令 M 10 10 将画笔移动到横坐标 10,纵坐标 10 的位置使用画线命令 H 90 向右横向绘制一条直线,这条直线的纵坐标不变,横坐标终点是 90,此时画笔的位置到了横坐标 90,纵坐标 10 的位置再使用画线命令 V 90 向下纵向绘制一条直线,这条直线的横坐标不变,纵坐标重点为 90,此时画笔的位置到了横坐标 90,纵坐标 90 的位置最后使用画线命令 L 10 10 ,从当前坐标位置绘制一条到横坐标 10,纵坐标 10 的直线。

最后我们得到的结果就是一个位于横坐标 10、纵坐标 10 位置的宽为 80 的正方形。

最后得提一下封闭路径 Z 这个特殊命令,它没有参数,作用是从当前路径绘制一条直线到路径的第一个点。

渐变和文字

渐变元素

linearGradient 线性渐变radialGradient 径向渐变

用到自己看文档,了解有这么个东西就行了。

文字 text 元素 同理。

g 分组

元素g是用来组合对象的容器。添加到g元素的属性会被其所有的子元素继承。

也就是说你可以使用该元素对一批形状进行批量的上色和变换操作。

上个例子:

<svg width="100%" height="100%" viewBox="0 0 95 50" xmlns="http://www.w3.org/2000/svg"> <g stroke="green" fill="white" stroke-width="5"> <circle cx="25" cy="25" r="15" /> <circle cx="40" cy="25" r="15" /> <circle cx="55" cy="25" r="15" /> <circle cx="70" cy="25" r="15" /> </g></svg>patterns 图案

先来一个使用示例:

<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg" version="1.1"> <defs> <linearGradient id="Gradient1"> <stop offset="5%" stop-color="white"/> <stop offset="95%" stop-color="blue"/> </linearGradient> <linearGradient id="Gradient2" x1="0" x2="0" y1="0" y2="1"> <stop offset="5%" stop-color="red"/> <stop offset="95%" stop-color="orange"/> </linearGradient> <pattern id="Pattern" x="0" y="0" width=".25" height=".25"> <rect x="0" y="0" width="50" height="50" fill="skyblue"/> <rect x="0" y="0" width="25" height="25" fill="url(#Gradient2)"/> <circle cx="25" cy="25" r="20" fill="url(#Gradient1)" fill-opacity="0.5"/> </pattern> </defs> <rect fill="url(#Pattern)" stroke="black" x="0" y="0" width="200" height="200"/></svg>

注意看,渐变元素和图案元素都需要放在 defs 元素内,相当于一个定义,然后实际使用的时候用 fill 属性。

patterns 元素可以认为是对多个图形元素的一个封装,主要是为了进行复用。

其他功能

还有一些其他功能,如:

属性 transform ,类同与同名 CSS 属性,进行位移,缩放,旋转属性 fill 和 stroke,填充和边框裁剪元素 clipPath,遮罩元素 mask ,同样放在 defs 元素中滤镜元素 filter

这些功能不影响大多数情况的使用,用到了直接查文档即可。

SVG 动画的话 IE11 不支持,保险起见可以不用,不过还是列出来一下,它们一般都是被嵌套在形状元素中来使用:

animate 元素 定义一个元素的某个属性如何踩着时点改变animateMotion 元素 定义了一个元素如何沿着运动路径进行移动,很像 pathanimateTransform 元素 控制动画的转换、缩放、旋转或斜切。

至于其他的什么字体之类细枝末节的东西略过吧,平常如果涉及到这类处理我们可能就用 svg 图片了,而不是直接使用 svg。

总结

5 分钟速通 SVG 完毕,相信你已经对 SVG 有了一个稍微全面一点的了解。

通不通无所谓,你就说快不快吧。

本文链接地址:https://www.jiuchutong.com/zhishi/310811.html 转载请保留说明!

上一篇:pandas中join()的两种应用方法(pandas inner join)

下一篇:WordPress怎样升级PHP版本(宝塔面板)(wordpress怎么降级)

  • 学习强国软件如何邀请加入组织

    学习强国软件如何邀请加入组织

  • vivo安全键盘在哪儿关闭(vivo安全键盘怎么关闭)

    vivo安全键盘在哪儿关闭(vivo安全键盘怎么关闭)

  • 拼多多退货运费补贴退到哪里(拼多多退货运费险审核不通过)

    拼多多退货运费补贴退到哪里(拼多多退货运费险审核不通过)

  • 拼多多怎么删除银行卡绑定的呢(拼多多怎么删除历史浏览)

    拼多多怎么删除银行卡绑定的呢(拼多多怎么删除历史浏览)

  • 苹果手机精选照片如何设置(苹果手机精选照片怎么删除)

    苹果手机精选照片如何设置(苹果手机精选照片怎么删除)

  • 华为p30支持wifi6吗(华为P30支持无线充电吗)

    华为p30支持wifi6吗(华为P30支持无线充电吗)

  • 第四代计算机主要采用什么元件(第四代计算机主要逻辑元件采用)

    第四代计算机主要采用什么元件(第四代计算机主要逻辑元件采用)

  • 红米k20pro升级miui11耗电吗(红米k20pro升级miui12.5)

    红米k20pro升级miui11耗电吗(红米k20pro升级miui12.5)

  • 桌面消失了怎么恢复(桌面不见了怎么恢复百度经验)

    桌面消失了怎么恢复(桌面不见了怎么恢复百度经验)

  • 荣耀时间怎么显示24(荣耀时间怎么显示农历日期)

    荣耀时间怎么显示24(荣耀时间怎么显示农历日期)

  • 小红书审核要多久(小红书审核要多久通过)

    小红书审核要多久(小红书审核要多久通过)

  • 抖音实名制可以绑定多个账号吗(抖音实名制可以换绑吗)

    抖音实名制可以绑定多个账号吗(抖音实名制可以换绑吗)

  • 小米9第几代指纹识别(小米9是什么指纹)

    小米9第几代指纹识别(小米9是什么指纹)

  • 苹果手机升级系统的优缺点(苹果手机升级系统后怎么恢复旧系统)

    苹果手机升级系统的优缺点(苹果手机升级系统后怎么恢复旧系统)

  • 通过快手号能找到对方的QQ号和微信号吗(通过快手号能找到那个人的位置吗)

    通过快手号能找到对方的QQ号和微信号吗(通过快手号能找到那个人的位置吗)

  • 快手号注销了手机号会解绑吗(快手号注销了手机绑定会不会解绑)

    快手号注销了手机号会解绑吗(快手号注销了手机绑定会不会解绑)

  • airpods充多久满电(airpods充多久充满电)

    airpods充多久满电(airpods充多久充满电)

  • 如何关闭华为talk back(如何关闭华为弹窗)

    如何关闭华为talk back(如何关闭华为弹窗)

  • 苹果11手机有必要贴镜头膜吗(苹果11手机有必要换13pro吗)

    苹果11手机有必要贴镜头膜吗(苹果11手机有必要换13pro吗)

  • airpods盒子有定位吗(airpods盒子定位还是耳机定位)

    airpods盒子有定位吗(airpods盒子定位还是耳机定位)

  • 诺基亚8110能用微信吗(诺基亚8110能用支付宝吗)

    诺基亚8110能用微信吗(诺基亚8110能用支付宝吗)

  • 微信回执单号怎么获得(微信回执单号怎么找回)

    微信回执单号怎么获得(微信回执单号怎么找回)

  • 苹果xr信任设置在哪里(iphonexr信任)

    苹果xr信任设置在哪里(iphonexr信任)

  • 手机号165是什么号段(手机号165是什么卡怎么充值)

    手机号165是什么号段(手机号165是什么卡怎么充值)

  • 微信支付面容怎么设置(微信支付面容怎么设置苹果手机)

    微信支付面容怎么设置(微信支付面容怎么设置苹果手机)

  • uniapp中的分享功能实现(APP,小程序,公众号)(uniapp分享图片)

    uniapp中的分享功能实现(APP,小程序,公众号)(uniapp分享图片)

  • 如何知道家里网速测速多少兆?(如何知道家里网络是多少兆)

    如何知道家里网速测速多少兆?(如何知道家里网络是多少兆)

  • 一枚红苹果挂在被大雪压断的树枝上 (© griangraf/iStock/Getty Images)(一个红苹果多少钱)

    一枚红苹果挂在被大雪压断的树枝上 (© griangraf/iStock/Getty Images)(一个红苹果多少钱)

  • 应交增值税是什么意思
  • 跨年度调整税金及附加
  • 租赁服务增值税税率
  • 增值税先征后退会计处理
  • 进项税和销项税税率一样吗
  • 商誉 会计
  • 补提盈余公积的分录
  • 审计核减理由
  • 行政事业单位收据样本
  • 资产减值损失确认后,减值资产的折旧
  • 公司账上的应付账款是指
  • 2018年收入等级划分图
  • 从境外取得的佣金
  • 建筑企业如何进行资质申请?
  • 企业所得税负数会计分录
  • 本月预估是什么意思
  • 地方水利建设基金的会计分录
  • 印花税按次申报怎么报
  • 季度有利润可以弥补以前年度亏损吗
  • 文化建设服务费减免
  • 固定资产清理出售合同
  • 公司向职工借款不还怎么办理
  • 水电费计提和冲销
  • 冲红的进项税发票入账处理
  • 补缴以前税收滞纳金多少
  • 开模具公司要什么设备
  • 企业筹建期发生的广告宣传费怎么抵减所得税
  • 高新产业扶持补贴怎样申请
  • 结转法定盈余公积会计分录怎么写
  • 债权债务重组公司
  • 科技推广和应用服务业
  • 结转人工费会计分录
  • thinkpad预装的office怎么激活
  • Win10 Build 21364 预览版正式更新(附更新内容)
  • 现金发放的餐补算工资么
  • PHP:preg_replace_callback()的用法_PCRE正则函数
  • 发出商品但货款没到账
  • 金融商品转让属于什么服务
  • 售后回购怎么做账务处理
  • 售后租回怎么理解
  • 非货币性资产投资个人所得税
  • 坏账准备的借贷方向表示什么意思
  • 总账是按年还是按月结账
  • 认识数据库思维导图
  • 从零开始文章
  • rust 入门教程
  • 微信公众号开发用什么语言
  • PHP中include/require/include_once/require_once使用心得
  • 将外购商品用于个人消费
  • 小规模超500万升一般纳税人规定
  • 企业分立房产税如何计算
  • 应付账款转入营业外收入的证明
  • 资产负债表上应付账款根据什么填制
  • 住宿费发票可以开专票吗
  • html前端开发教程
  • 经营租赁会计的核算原则
  • 建账的三个基本步骤
  • 弥补以前年度亏损是季度申报的时候做吗
  • 在与sqlserver建立连接时出现
  • sqlserver 存储过程 临时表
  • 对公转账需要填备注吗
  • 公司刚成立没有员工需要申报个税吗
  • 股东以私人名义出资
  • 商贸公司的外账怎么做
  • 建筑材料租赁公司
  • 总公司和分公司如何分离
  • 研发成功后的产品出售如何处理
  • 车辆保险发票能补开吗
  • mysql 创建root用户和普通用户及修改删除功能
  • mysql5.7.31
  • 用户画像
  • wlanplus是什么软件
  • win7安全模式
  • 人在国外怎么补办身份证
  • 关于加载失败壁纸
  • 枚举目录时出现错误
  • js中!
  • 自定义view ondraw
  • 个税申报所属期和所得期
  • 城镇土地使用税的计算公式
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设