当前位置: 首页 > news >正文

小型企业做网站的价格图片主题wordpress

小型企业做网站的价格,图片主题wordpress,目前电商平台有哪些,工商登记注册网unocss/preset-icons 是 UnoCSS 提供的图标预设,支持从 本地和在线图标库 加载图标,本文介绍本地图标库的使用 从 https://blog.csdn.net/u013737132/article/details/145499595 得知vite-plugin-svg-icons 插件停止维护,依赖过时&#xff0c…

@unocss/preset-icons 是 UnoCSS 提供的图标预设,支持从 本地和在线图标库 加载图标,本文介绍本地图标库的使用

从 https://blog.csdn.net/u013737132/article/details/145499595 得知vite-plugin-svg-icons 插件停止维护,依赖过时,便整理替代品

准备svg文件

src/assets/icons下随意创建文件夹custom,menu

从网络上下载svg文件复制到两个文件夹下

安装依赖

pnpm add -D unocss @iconify/utils glob

配置文件

vite.config.ts

...
import vue from '@vitejs/plugin-vue'
// 导入Unocss插件
import Unocss from 'unocss/vite'
...
export default defineConfig({plugins: [vue(),// 注册Unocss插件Unocss(),]
})

uno.config.ts

import { defineConfig, presetIcons, presetWind3 } from "unocss";
import { FileSystemIconLoader } from "@iconify/utils/lib/loader/node-loaders";
import { globSync } from 'glob'
import path from 'node:path'/*** 获取 src/assets/icons/ 目录下的所有 svg图标文件* 实际只适用 icons的下一级目录,再下级目录不支持*/
const iconsDirPattern = "./src/assets/icons/**/*.svg";
const files = globSync(iconsDirPattern, { nodir: true }) // nodir:true 不匹配目录,只匹配文件
// 读取本地 SVG 目录,获取所有 svg 图标,并按照文件夹分类
/*** 返回数据格式* {*   menu: [ 'i-menu:home' ],*   custom: [*     'i-custom:welcome',*     'i-custom:refresh',*     'i-custom:phone',*     'i-custom:logout',*     'i-custom:lock',*     'i-custom:loading',*     'i-custom:juejin',*     'i-custom:home',*     'i-custom:full-screen',*     'i-custom:exit-full',*     'i-custom:copyright'*   ]* }*/
function getIcons() {const icons = {}files.forEach((filePath) => {const fileName = path.basename(filePath) // 获取文件名,包括后缀const fileNameWithoutExt = path.parse(fileName).name // 获取去除后缀的文件名const folderName = path.basename(path.dirname(filePath)) // 获取文件夹名if (!icons[folderName]) {icons[folderName] = []}icons[folderName].push(`i-${folderName}:${fileNameWithoutExt}`)})return icons
}
const icons = getIcons()
/*** 读取本地 SVG 目录,获取所有 svg 图标,并按照文件夹分类* 返回数据格式* collections {*   menu: [AsyncFunction (anonymous)],*   custom: [AsyncFunction (anonymous)]* }*/
const collections = Object.fromEntries(Object.keys(icons).map(item => [item,FileSystemIconLoader(`src/assets/icons/${item}`, (svg) => {return svg.includes('fill="')? svg: svg.replace(/^<svg /, '<svg fill="currentColor" ');})
]))/*** 使用安全列表,在UnoCSS中使用动态生成的className名称* 提前声明那些动态生成的类名,以确保它们在最终的CSS中被包含* 返回数据格式* [*   'i-menu:home',*   'i-custom:welcome',*   'i-custom:refresh',*   'i-custom:phone',*   'i-custom:logout',*   'i-custom:lock',*   'i-custom:loading',*   'i-custom:juejin',*   'i-custom:home',*   'i-custom:full-screen',*   'i-custom:exit-full',*   'i-custom:copyright'* ]*/
const generateSafeList = () => {return Object.keys(icons).flatMap((item) => icons[item])
};export default defineConfig({presets: [// https://unocss.dev/presets/wind3presetWind3(),// 预设图标presetIcons({warn: true,prefix: ['i-'],// 设置全局图标默认属性extraProperties: {width: "1em",height: "1em",display: "inline-block",},// 注册本地 svg 图标集合collections,}),],safelist: generateSafeList(), // 动态生成 `safelist`
});

使用图标

<template><div class="home"><h2>home</h2>测试preset-icons<i class="i-custom:exit-full text-#0033cc text-2xl" /><i class="i-menu:refresh" /><i class="i-custom:juejin text-red text-[50px]" /><i class="i-custom:lock hover:text-sky " /></div>
</template><script setup lang="ts">
</script><style scoped></style>

i-: 固定前缀

menucustom: 文件夹名

exit-fullrefresh等: svg文件名

http://www.dtcms.com/a/508530.html

相关文章:

  • 【C/C++】进程
  • 如何让我们的网站新闻被百度新闻收录网站现在用h5做的吗
  • composer安装 laravel 指定版本
  • 手机购物网站建设网站后期维护包括
  • 服装 多语言 网站源码兰州网站建设和推广
  • ipad可以做网站吗忻州市住房城乡建设局网站
  • 中医养生篇
  • 响应式网站建设好么网站开发产品经理招聘
  • 北京哪家公司做网站自备服务器做网站
  • 技能短板导致任务停滞,该如何补救
  • POSIX 可移植操作系统接口规范
  • 公司网站开发费用济南兴田德润o评价沣东新城开发建设集团有限公司网站
  • 重庆网站建设子沃科技外贸网站建设优化
  • 制作网站的走马灯怎么做html网站模板怎么用
  • React Native开发有哪些优势和劣势?
  • 电商类网站开发合同书设计工作室 网站
  • 东莞网站制作与网站建设东莞关键词优化效果
  • MATLAB疑难诊疗:从调试到优化的全攻略
  • Linux Shell 中的 join 命令:高效关联数据的实用工具
  • 网站知识架构网站书店架构书怎么做
  • 建立网站的目的和功能成都到西安动车
  • Redis 数据类型与使用场景
  • 网站关键词快速排名工具中国手机网站大全
  • Android-Compose 列表组件详解
  • 基于MATLAB的标准化降水蒸散指数(SPEI)实现
  • 网站建设与推广推荐做关于车的网站好
  • 【NestJS】中间件与管道:请求处理双雄对决
  • 网站设计做微信发现界面济宁500元做网站
  • 赣州网站制作深圳网站建设 设计创公司
  • 网站后台管理系统怎么上传wordpress计费查询