首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Vite项目当中SVG标的配置及图标全局组件封装

为什么要使用 SVG 图标? 在开发项目的时候经常会用到svg矢量,而且我们使用SVG以后,页面上加载不再是图片资源,这对页面性能来说是个很大提升,而且我们SVG文件比img要小很多。...,属性值务必 #icon-图标名字 use标签fill 属性性可以设置图标的颜色(如何设置失败,检查你复制这个 svg 图标代码中是否有这个 fill 属性,如果有就将其移除掉,就可以使用了) 如果需要调整图标的大小...,那么就需要在 svg 标签上添加 style 就可以了 是App根组件 可以看到,在项目中可以使用 SVG 图标了,但是有一点不好就是这样用起来有点麻烦,这个时候我们就可以进行ICON...component / SvgIcon / index.vue 这里是组件一个简单封装: <use :xlink

8600

如何在Vue项目中更优雅地使用svg

最近看项目视频时候对里面使用 svg 方式感到很好奇,于是去网上查了一下,发现 svg 竟然也有类似于 css 雪碧图一样用法,也就是 svg-sprite(孤陋寡闻了),而且配合插件后能够以组件化方式使用... css 雪碧图中是把多个背景图片放在一张大图片中,而 svg 雪碧则是把多个 symbol 放在一个大 svg 中,每个 symbol 代表了一个图标,以后每次想要使用图标...,只需要写这么一段代码即可: 但是这里有两个问题: 从图标库(比如阿里 iconfont)下载下来通常是....svg 文件,如何根据多个单独 .svg 文件生成 svg 雪碧?...iconName 和 iconColor 确定图标的类型和颜色。

12.3K21
您找到你想要的搜索结果了吗?
是的
没有找到

如何在VUE项目中引入SVG图标

可无穷缩放:由于SVG为矢量,故可在图像质量不损失环境下进行无限缩放,此对于开发高DPI(即“屏幕像素密度”)显示装置,例如Retina屏网页应用,大有裨益。...然而,SVG并非在所有情形下皆为最佳选择。对于一些复杂度较高及色彩丰富图像,例如照片,使用位图可能更为恰当。因此,在每个具体项目中,皆需依据实际需求而决定使用何者。 具体过程 一....其成立之目的,正是为了使吾等在项目中使用 SVG 图标能变得更为便捷。 name: 'SvgIcon' 此组件接受两属性,名若iconClass及className。...className 属性 用以定制 SVG 图标之样式;className 之值,将被加至图标的 CSS 类名中,使得吾等可于外部定义及施用 CSS 样式也。.../svg' 目录下以 '.svg' 结尾文件 const req = require.context('.

29010

【vite+vue3+Ts+element-plus】肩并肩带你写后台管理之自动引入(vue、element-plus)和自定义图标

element-plus图标啦,注意是,我们使用名字需要这样格式i-ep-name,例如 // 官方文档点击复制代码 // 需要修改为...这个项目因为考虑过要开源,所以图标的可扩展性一定要搞好,于是就想到了使用svg图标,但是一个个引入又比较麻烦,就想看看有没有什么更好解决方法,于是乎想起了花裤衩大佬手摸手系列,在手摸手,带你优雅使用...首先我们创建文件夹assets/icons/svg,用来存放我们下载svg 之后再创建一个assets/icons/.ts,用来返回所有图标的名字,我们在菜单管理里选择图标需要用到。...,因为从iconfont下载svg图标就算不选择颜色,也会自带默认颜色,而有默认颜色svg图标无法设置颜色。...', SvgIcon) 之后我们就可以在页面中进行使用了 .menu-icon { font-size

2.3K20

设计师使用SVG必读文章

设计师主要是利用AI,和Sketch进行SVGiconSVG拓扑绘制。 但是,单纯依靠软件一键导出SVG图形,会因为每位设计师绘制导出方法不同,在实际使用中出现或多或少应用问题。...它们差别在于CSS编写位置。在单个SVG时候,2种方式都是健康,可是如果业务中使用SVG雪碧,那1就存在大大隐患。...[图片] [图片] 很多设计师常迷茫问题:“ 为什么导出SVG图片好好,但是被UI开发同学引用时候,就出错了呢?”...F.缩小和响应 缩小:压缩SVG代码,删除不必要空格,来减小SVG图片体积。因为我们Maxim工具上传自动会做一次这样压缩,所以在日常导出不需要依靠AI简易压缩了。...来自 不留名同学  实践经验补充: “在新版AI 2018输出svg标的时候,新增了通过另存为就可以导出SVG方式,SVG设置不会自动保存上次勾选设置,每次都会回退成系统默认设置。”

5.5K61

Vue项目中优雅使用icon

img图标的资源请求,这是它最大缺点 雪碧(css sprites) 后来我们为了优化资源请求开始使用CSS雪碧(css sprites) CSS Sprites在国内很多人叫css精灵/css雪碧...,主要是解决unicode书写不直观,语意不明确问题。...,symbol这中使用方式就是本文正题了,其实之前是一直都使用font-class这种方式(大家估计用这个也很多),但是它有点麻烦,因为每次迭代项目,修改或者添加图标都要去重新下载一份新包...现在我们就可以在你想使用标的位置使用了,使用方式如下 在main.js中引入(全局引入)要使用图标文件 import "@/icons/svg/qq.svg"; 模版中使用 <use...最后就是我们使用了,在main.js文件引入icons/index.js import "@/icons/index.js"; 再来看看我们使用标的方法,组件中: <svg-icon

2.1K20

解锁SVG新姿势:ChatGPT绘制图标+SVG Symbol自动导入

2 目标 不知道诸位读者们有没有自己找icon经历: 先找到对应图片并下载 将文件移动到项目并改名 在需要使用地方导入并通过img标签使用 私以为,第一步,第二步,第三步都不喜欢。...有没有一种合适方式,让可以直接通过IDE新建文件,不再需要下载,同时使用时候不再需要导入? 这或许是有的,本文旨在完成该目标。...); }; 在上面的代码中,我们使用SvgIcon组件来渲染SVG图标,其中,name属性用于指定需要渲染标的名称。...至此,我们已经完成了将SVG图标转换为SVG Symbol,并自动导入流程。现在,我们可以直接在代码中使用SVG图标了,而不需要导入文件。 4.2.4 性能考虑 值得注意是,该方法存在一定问题。...由于我们全量引用了图标,会导致在所有页面,都会导入所有icon,原因是我们在svg-sprite.ts文件中做了自动化导入,我们亦可通过单行导入方式来避免全量引入,目前在思考有没有什么更好方案解决该问题

3.2K10

在 Vue 项目中更优雅使用 icon

前言 在 Web 开发中,我们经常会用到 icon,icon 使用经历了从图片到字体,再到 svg 演变过程,也产生出相应 icon 库,如雪碧、Font Awesome、Iconfont 等等...随着前端发展,icon 使用方案落在了 svg 上,svg 有着矢量优势,可以无限放大而不失真,而且 svg 本身就是一种 XML 文件,可以直接在 HTML 中使用,也可以通过 CSS 进行样式控制...,但是在 Vue 项目中使用 svg ,我们会遇到一些问题,本文将介绍如何在 Vue 项目中更优雅使用 svg icon。...大小 图标可从 iconfont 项目中下载或者由 UI 切,同一个项目中使用 Svg Icon 图标建议统一大小规格,比如 128*128。...参考资料 手摸手,带你优雅使用 icon 未来必热:SVG Sprites 技术介绍 SVG 精简压缩工具 svgo 简介和初体验 svg-sprite-loader svgo svgo-loader

43040

前端项目搭建实战(Vue)

/views/Login.vue'), },];const router = new VueRouter({ routes,});同时我们需要对路由做一定控制,比如未登录只允许访问登录页,以及对页面跳转做一些样式上优化...,当角色为 admin ,第一行不显示学生可以看到: 是{{ role }}大家可以看到: 是全局注册该组件Vue.component('SvgIcon', SvgIcon);这样我们就可以通过 SvgIcon 访问内存中存在...svg 图标了,我们还需要做就是将 svg 文件加载到内存中, svg-sprite-loader 官方解释是:一个用于创建 svg 雪碧 Webpack 加载器。...通俗讲:svg-sprite-loader 会把你引入 svg 塞到一个个 symbol 中,合成一个大 svg,最后将这个大 svg 放入 body 中。

1.8K73

如何在Vite中处理各种静态资源?

本文将与你就这两方面的问题展开探讨,结合 Vite 自身能力及其生态,来解决项目中静态资源处理各个疑难点,同时也能继续完善目前 Vite 脚手架工程。...图片加载图片是项目中最常用静态资源之一,本身包括了非常多格式,诸如 png、jpeg、webp、avif、gif,当然,也包括经常用作图标的 svg 格式。...HTTP2 多路复用设计可以解决大量 HTTP 请求导致网络加载性能问题,因此雪碧技术在 HTTP2 并没有明显优化效果,这个技术更适合在传统 HTTP 1.1 场景下使用(比如本地 Dev...这种合并图标的方案也叫雪碧,我们可以通过vite-plugin-svg-icons来实现这个方案,首先安装一下这个插件:pnpm i vite-plugin-svg-icons -D接着在 Vite...,发现雪碧已经生成雪碧包含了所有图标的具体内容,而对于页面每个具体图标,则通过 use 属性来引用雪碧对应内容如此一来,我们就能将所有的 svg 内容都内联到 HTML 中,省去了大量 svg

1.5K30

css3attr函数使用,加载unicode图标

正文开始... css加载图标 这是我们项目中最常用一种方式 在自己iconfont[1]仓库中添加了几个图标 打开前阵子开源一个移动端项目topfreeApplication[2] 我们在.../pages/home/component/Search.vue组件中也看到我使用一个svg-icon二次组件加载图标的 svg-icon注册成一个全局组件 <!...class,但同时也多了一个自定义属性unicode="",这是一个很有用属性,通常我们需要动态更换图标,我们就可以把这个unicode写在标签上,那怎么才能显示呢?...css中attr函数成功解决了图标加载问题 我们看看attr这个属性可以在我们项目中怎么用,在哪些场景可以用?...因此我们就用css中attr结合js实现了一个计数器功能,关于cssattr还有更多待挖掘功能,在动态改变图标等,attr是一种不错选择方案 总结 加载阿里矢量图标除了使用class与svg,我们也可以使用

1.4K30

Vite Plugin Just so so

之前使用svg方式 const svgSrc from "@/assets/svg/xx.svg"; const SvgIcon = () => { return <svg {...attribute...之后使用svg方式 不知道,大家之前用过Image Sprites[1],也就是我们常说「雪碧」。...SVG 是矢量一种 我们从维基百科中寻找关于矢量[2]信息。 从上面的信息,我们可以得知。矢量使用「数学公式」生成,这些公式转化为在网格上对齐点、线和曲线。...基于这些特性,我们如果考虑网络性能并且图像还原度不是很高的话,我们一般首选SVG(可缩放矢量)。 矢量图形常见于 SVG、WMF、EPS、PDF、CDR 或 AI 类型图形文件格式。...为什么使用SVG文件 尽管SVG不太灵活。但是,SVG是一系列其他情况绝佳选择: Logo设计。由于我们可能会在pc端和移动端重复使用Logo,使用SVG解决了潜在可伸缩性问题。 插图。

8910

Web图标的工程化方案

iconfont就是图标字体,我们可以像使用普通字体一样使用它,只要适合字体相关CSS属性都适合字体图标,使用font-size和color就可以轻松控制图标的大小和颜色。...优势: 能够容易地改变图标的颜色,尺寸 矢量不失真 兼容所有流行浏览器,在h5和app上都能使用 替换图标和新增图标也非常简单,也不需要考虑图标合并问题 劣势: 只支持单色图标 字体渲染,低倍屏下容易出现锯齿...svg其实很早就出现了,只不过由于兼容性问题,早前并没有很好地发挥出它价值,但随着IE6/7/8退出舞台, android 4.x 开始,很多网站都开始使用svg作为图标方案 。...优势: 能够容易地改变图标的颜色,尺寸 支持彩色图标 矢量不失真 可读性好,有利于SEO与无障碍 渲染效果好,不会有锯齿 劣势: 体积相对于iconfont较大 引入方式 使用img、object、embed...标签或者作为background背景直接引用svg,或者可以合并成雪碧,这种方式与png雪碧使用方法一样。

1K10

更加优雅使用Icon

几年前写过一篇文章叫 Vue 项目中优雅使用 icon ,主要介绍了当时项目中主流几种图标使用方式,比如 Img 图标、CSS 雪碧、字体图标(Icon Font)、SVG 图标(SVG Icon...SVG Icon ,然后再写一个 Vue 组件 统一去加载它,在每次需要使用图标就去下载一个 SVG 图标到 Icon 模块中,使用组件并传入...没有办法,该升级还得升级,那就改吧,改完了之后问题就出现了,如果我们还使用之前 去加载自定义图标,那就出现了一种尴尬情况,同是 SVG 图标,同一个项目,两种使用方式。。。...那我们就再简单对比一下几种 Icon 使用方式,当然,Img 和 CSS 雪碧就不说了,因为现在最常用都是矢量图标,所以我们简单对比下当下最常用字体图标和 SVG标的优缺。...src/assets/svg/home/jihua.svg src/assets/svg/about/kefu.svg 上面是两个图标,接下来我们来配置自定义图标的加载。

5.7K30

127. 精读《React Conf 2019 - Day1》

> ); } 结合上面提到主题方案,就可以控制 svg 主题颜色。...="blue red" /> // 效果一定是 red,因为 css-in-js 在最终编排 class ,虽然两种样式都存在,但书写顺序导致最后一个优先级最高, // 合并时候就会舍弃失效那个...这也从某种意义上说明了 iconFont 注定被淘汰,因为字体文件目前无法按需加载,只有全部使用 SVG标的项目才能使用这种优化。...会有专人 Review 该 Pull Request,当两人以上通过该 Pull Request ,你翻译将被合并到仓库中。 删除你所创建分支(如继续参与,参考同步流程)。...相比其他前端大会非常多干货来说,React Conf 虽然显得主题比较杂,但这正是人文情怀体现,相信只有带着更高使命愿景,真诚帮助他人技术团队才可以走得更远。

1.7K20

网站图标开发指南

html> 在刚开始写页面的时候就是这样做,感觉 so easy,直到业务变得越来越复杂,就不得不思考以下几个问题: 图标需要适配多个客户端 图标太多需要优化 图标需要动态修改颜色 对于适配多个客户端问题...: -56px 0px; } .icon3 { background-position: 0px 0px; } 可以看到,使用雪碧布局,所有的图片都使用了同一张大,然后使用背景去定位,以区分不同小图标...总结一下字体图标的特点: 字体图标是矢量,即使放大也不会变模糊。 字体图标可以通过 CSS 样式进行控制,使用更加灵活。 字体文件一般比较大,但可以将不用字体删掉。...当我们匹配到对应区域,就能进行对应颜色修改了,一张多色 SVG 也就做好了。 ?...总结一下 SVG标的特点: 支持动态修改多个区域颜色 支持渐变色 矢量,放大也不会变模糊 思考与总结 本文介绍了 3 种小图标的使用方式,这里做一个简单回顾。

1.7K30
领券