网站首页 > 技术文章 正文
解决网站图标问题的最佳方案——SVG!
SVG 是一种基于 XML 语法的图像格式,英文全称是: Scalable Vector Graphics,即可缩放矢量图,是 W3C 的一项建议。
我们用手机拍摄的照片,图片格式一般都是基于像素处理的,图片放大会模糊失真。SVG 则是属于对图像的形状描述,所以它本质上是文本文件,体积较小,且不管放大多少倍都不会失真。
我们来真实的体验一下。
打开阿里巴巴矢量图标库网站,(https://www.iconfont.cn/)
在素材库菜单里选择矢量插画库,选择任意一个主题点击进去,鼠标划入图标,点击下载按钮,在弹框中分别点击 SVG 下载和 PNG下载,这个图标的两种格式文件就下载到本地电脑了,将图片拷贝到我们的目录下。现在,它们可以当做图片插入到网页中了。
打开编辑器,新建一个 svg-demo.html 文件。补全基础代码,在 body 里添加一个 img 标签,属性 src 的资源路径设置为当前目录的 png 图片名,width 宽度设置为 100, height 高度也设置为 100。复制另一个 img 标签,src 的值修改为当前目录的 svg 图片名。保存文件。
在浏览器中打开网页,两张图片显示了。目前看,两张图片没有什么区别,但当我们把两张图片逐渐放大时,就会发现,png 格式的图片边界模糊了,svg 格式的图片边界依然清晰。
svg 图片怎么制作呢?
返回编辑器,我们在 VSCode 里打开 png,可以直接预览图片,其实 png 图片是基于像素处理的,我们不能在 VSCode 里编辑。
再打开 svg 图片,我们发现 svg 图片是用类似 html 代码绘制出来的。
因此,我们可以通过 html 元素来绘制 svg 图片!可以使用 svg 标签来实现。
svg 标签是 svg 图形的一个容器,它是一个双标签,基本语法是:尖角号 svg,尖角号 /svg。里面包含很多子标签,用于绘制各种图形。
svg 也可以理解为绘制图形的画布,它有两个重要的属性,width,定义画布的宽度,height,定义画布的高度,它们值都是数字。
再次打开 svg-demo.html 文件,在图片下方添加 br 标签。再添加一个 svg 标签,给 svg 定义属性 width 等于 800,height 等于 600。保存。
回到浏览器,刷新,按键盘 F12,打开开发者工具,在 elements 页签下,点击 svg 元素,我们看到,一个800 乘 600 的画布就做好了。
文章配套视频链接「链接」
- 上一篇: 前端网页设计必逛的六个宝藏网站(非常值得收藏)
- 下一篇: 从微机课中学习PowerPoint
猜你喜欢
- 2025-01-20 图片无限放大也不会模糊的秘密,矢量图的那些事
- 2025-01-20 Office 自定义功能区开发中自定义按钮的图标
- 2025-01-20 从微机课中学习PowerPoint
- 2025-01-20 前端网页设计必逛的六个宝藏网站(非常值得收藏)
- 2025-01-20 iconfont,像使用字体一样使用图标
- 2025-01-20 常用的PPT素材网站分享
- 2025-01-20 同事花三个小时的工作量,我靠这些PPT辅助神器,10分钟就完成了
- 2025-01-20 想要制作微课吗?今天给你微课制作必备工具
- 2025-01-20 实用 |“腾讯运营汪”分享10款高阶运营工具!
- 2025-01-20 6个不为人知的PPT素材网站,每个都是宝藏,送给正在努力的你
- 02-21走进git时代, 你该怎么玩?_gits
- 02-21GitHub是什么?它可不仅仅是云中的Git版本控制器
- 02-21Git常用操作总结_git基本用法
- 02-21为什么互联网巨头使用Git而放弃SVN?(含核心命令与原理)
- 02-21Git 高级用法,喜欢就拿去用_git基本用法
- 02-21Git常用命令和Git团队使用规范指南
- 02-21总结几个常用的Git命令的使用方法
- 02-21Git工作原理和常用指令_git原理详解
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)