layui图标字体怎么引入自定义SVG

胖磊吖_3943

胖磊吖_3943

2026-09-04

1005人浏览

原创

layui-icon不支持直接引入svg文件,因其基于字体图标体系;自定义svg图标需手动拼接字符串或编译为字体文件注入;函数式templet中返回svg必须确保symbol已提前注入dom。

layui图标字体怎么引入自定义svg

layui-icon 不能直接引入 SVG 文件

layui 的 layui-icon 是字体图标体系,底层靠 @font-face 加载 .woff/.ttf 字体文件,不支持把单个 .svg 文件“塞进去”就生效。你扔一个 my-icon.svg 到项目目录、再改 CSS 引用路径,图标一定不会显示——字体图标和 SVG 文件是两类完全不同的渲染机制。

想用自定义 SVG 图标,只有两条路可走

第一是「绕过 layui-icon,手动拼 SVG 字符串」,第二是「把 SVG 编译成字体文件,注入到 layui-icon 字体栈」。前者快但受限多,后者稳但要构建步骤。

  • 函数式 templet 中返回未转义的 <svg><use xlink:href="#my-icon"></use></svg> —— 必须确保该 <svg></svg> 定义(含 <defs></defs>)已提前注入 顶部,且不能异步加载
  • 用 iconfont.cn 或 IcoMoon 把你的 SVG 导出为字体包(.woff + .css),把新 CSS 放在 layui.css 之后引入,并统一使用独立前缀如 icon-my-export,避免和 .layui-icon 冲突
  • 别试图覆盖 layui-icon 的 @font-face 声明——2.8+ 版本已内联 SVG 字体数据,CSS 层面覆盖无效

templet 里写 SVG 容易踩的坑

常见错误不是代码写错,而是时机或结构不对:

深蓝色网站后台管理系统layui框架模板-AdminPro
深蓝色网站后台管理系统layui框架模板-AdminPro

一款深蓝色网站后台管理系统layui框架模板

下载
  • templet: '<svg><use href="#x"></use></svg>' → 被 layui.util.escape() 转义成纯文本,必须改成函数式:templet: function(d) { return '<svg><use href="#x"></use></svg>'; }
  • <use href="#x"></use> 指向的 <symbol id="x"></symbol> 没提前注入 DOM → 渲染为空白,建议在 开头用 document.body.insertAdjacentHTML('afterbegin', svgSpriteString)
  • 在 templet 里调 fetch() 动态拉 SVG 内容 → 渲染完成时内容还没回来,图标闪一下消失,绝对禁止

更推荐用 layui-icon 替代 SVG 的场景

如果你的图标只是单色、静态、不需要像素级描边控制(比如下载、编辑、刷新、删除),直接用 <i class="layui-icon layui-icon-download"></i> 更省事:

  • 不依赖 DOM 注入时机,不怕 escape(),不担心跨域或 404
  • 支持 font-size、color 直接缩放和着色,无需额外 CSS 控制 fill/stroke
  • 所有 layui 组件(table、form、layer)都原生兼容,不用 hack 渲染逻辑

真正需要 SVG 的,只发生在必须多色、带渐变、做 CSS 动画、或设计稿要求 1:1 路径对齐的时候——这种需求本身就不该交给字体图标解决。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
阿里icon
阿里icon

php中文网为大家提供阿里icon教程,阿里icon是指“Iconfont”,是由阿里巴巴矢量图标库提供的一种图标字体,包含了大量的中英文图标和符号。php中文网还为大家带来阿里icon的相关下载资源、相关文章等内容,供大家免费下载使用。

2023.06.15

1154

3

LLVM自定义Pass怎么写
LLVM自定义Pass怎么写

本专题聚焦LLVM自定义Pass开发,整理Pass类结构、run()方法、PreservedAnalyses、CMake构建、插件注册、-load-pass-plugin加载和测试用例编写流程。

2026.09.30

80

10

LLVM RISC-V参数配置教程
LLVM RISC-V参数配置教程

本专题介绍LLVM对RISC-V基础ISA和扩展的支持方式,涵盖RV32、RV64、标准扩展、实验性扩展、厂商扩展、-menable-experimental-extensions和版本差异。

2026.09.30

80

14

LLVM IR中间表示入门指南
LLVM IR中间表示入门指南

本专题整理LLVM IR的核心概念,包括中间表示作用、模块结构、函数、基本块、SSA形式、类型系统和常见语法,帮助新手理解LLVM编译流程中的关键层。

2026.09.30

40

12

PDF转图片方法
PDF转图片方法

需要把 PDF 页面用于上传、预览、分享或图片归档时,PDF 转图片方法专题整理 JPG/PNG 格式选择、逐页导出、清晰度设置、批量下载和结果检查等流程,帮助用户稳定完成 PDF 图片化处理。

2026.09.30

40

26

PixTV AI视频生成与无限画布创作
PixTV AI视频生成与无限画布创作

PixTV专题整理AI视频与视觉内容创作相关功能使用教程,涵盖AI生图、视频生成、无限画布、多模型创作、素材管理、声音音乐及视频剪辑等功能,帮助用户快速掌握PixTV从创意到成片的完整制作方法。

2026.09.29

60

15

Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

2026.09.23

280

15

Buffalo框架路由与请求处理实操指南
Buffalo框架路由与请求处理实操指南

本专题讲解Buffalo框架路由与请求处理机制,涵盖路由注册与分组、资源路由、Handler编写规范、Context上下文方法、参数绑定、中间件编写挂载、Session与Cookie读写、Flash消息及错误页面定制方法。

2026.09.23

160

15

Buffalo框架零基础入门教程
Buffalo框架零基础入门教程

本专题整理Buffalo框架入门内容,涵盖Go环境准备、buffalo CLI安装、新项目生成、目录结构说明、dev热加载启动、数据库连接配置与常见报错排查,帮助新手按约定优于配置的思路跑通第一个Buffalo框架应用。

2026.09.23

120

15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
ThinkPHP配置开发与CMS后台实战
ThinkPHP配置开发与CMS后台实战

共87课时 | 12.7万人学习

第二十三期_综合实战
第二十三期_综合实战

共89课时 | 10.9万人学习

Layui 快速入门精讲
Layui 快速入门精讲

共5课时 | 1.6万人学习