Layui如何实现动态给弹出层的标题添加动态图标

酷墨小哥_5216

酷墨小哥_5216

2026-07-19

462人浏览

原创

Layui弹出层标题插入图标需关闭默认title并用content自定义HTML结构,手动构建带layui-icon类的layui-layer-title容器。

弹出层标题里怎么插入图标

layui 的 layer.open() 默认只支持纯文本标题,想在标题里加图标(比如 ⚠️、✅ 或 font awesome 图标),不能靠 title 字符串硬拼——因为 layer 会自动对 html 转义,直接写 <i class="fa fa-info"></i> 会被当普通文本显示。

用 content 自定义整个弹层结构

真正可控的方式是放弃默认标题,改用 content 传入完整 HTML 片段,并手动构造带图标的标题栏。此时需关闭默认标题:title: false,再在内容里补上带图标的 <div class="layui-layer-title">。 <p>常见做法:</p> <ul> <li> <code>title: false 关闭原生标题

  • content 传一个 <div>,里面包含自定义标题行 + 主体内容 <li>图标可用 Unicode(如 <code>?)、内联 SVG 或已加载的字体图标(如 <i class="layui-icon layui-icon-success"></i>)
  • 注意:自定义标题需手动加 class="layui-layer-title" 才能复用 layer 原有样式
  • 示例:

    layer.open({
      type: 1,
      title: false,
      content: '<div>
    <div class="layui-layer-title">
    <i class="layui-icon layui-icon-alert"></i> 确认删除?</div>
    <div style="padding:20px;">该操作不可撤销</div>
    </div>',
      area: ['400px', 'auto']
    });
    

    动态图标依赖数据时怎么拼接

    如果图标要根据后端返回状态切换(比如 success / error / warn),别在字符串里硬写三目,容易漏转义或结构错乱。推荐先构建 DOM 片段再传入:

    • 用 JS 拼接字符串时,确保图标部分不被双引号/单引号截断,建议用模板字符串
    • 若图标来自变量(如 iconType = 'success'),映射关系提前定义好,避免运行时拼错 class
    • 不要在 content 里写 onclick 行内事件——layer 会销毁 DOM,事件丢失;改用 success 回调里绑定

    简例:

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

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

    下载
    const iconMap = {
      success: 'layui-icon-ok',
      error: 'layui-icon-close',
      warn: 'layui-icon-dialog'
    };
    const iconClass = iconMap[type] || 'layui-icon-help';
    
    layer.open({
      title: false,
      content: `
        <div>
          <div class="layui-layer-title">
            <i class="layui-icon ${iconClass}"></i> ${titleText}
          </div>
          <div class="layui-layer-content">${bodyHtml}</div>
        </div>
      `,
      success: function(layero) {
        // 此处可给内部按钮绑定事件
      }
    });
    

    为什么不用 skin 或 CSS 伪元素

    有人试过用 skin: 'my-skin' 配合 CSS ::before 给标题加图标,但实际行不通——因为 layer 生成的标题 DOM 是动态插入的,且 class 名固定为 layui-layer-title,但它的文本内容是纯 textNode,无法用伪元素“在文字前加图标”并保持对齐。更麻烦的是,不同 layer 类型(page、iframe)的标题结构不一致,伪元素容易错位或失效。

    所以绕开 layer 标题渲染逻辑,自己控 DOM 是最稳的路。唯一代价是多写几行 HTML 字符串,但换来的是完全可控和可维护。

    真正容易被忽略的点:自定义标题里如果用了 <i></i> 图标,务必确认对应图标字体(如 layui-icon)已在页面全局加载;否则图标位置只留空白方块,且控制台无报错。

    相关文章

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

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

    下载

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

    相关专题

    更多
    阿里icon
    阿里icon

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

    2023.06.15

    1254

    3

    Golangci-lint安装与入门教程
    Golangci-lint安装与入门教程

    本专题讲解Golangci-lint的安装、初始化、基础命令和首次代码检查,覆盖本地环境、Docker及多平台用法,帮助Go开发者快速上手。

    2026.10.22

    0

    15

    PHP2Shell高危漏洞修复教程
    PHP2Shell高危漏洞修复教程

    PHP2Shell漏洞是什么,哪些PHP版本和运行环境会受到影响,服务器应该如何检测与修复?本专题提供版本自查脚本、Linux与Docker升级命令、PHP-FPM和Apache排查步骤,以及修复验证、临时缓解和应急响应方案。

    2026.10.22

    0

    12

    剧云人物设定与关系管理教程
    剧云人物设定与关系管理教程

    本专题介绍剧云人物设定与关系管理,讲解角色小传、性格职业、人物目标、背景资料和关系网络的创建及维护方法。

    2026.10.22

    0

    16

    剧云故事大纲与分场规划教程
    剧云故事大纲与分场规划教程

    本专题讲解剧云梗概与多级大纲功能,覆盖全局、分集、分场结构生成,以及主线冲突、剧情节点和场次顺序调整。

    2026.10.22

    0

    15

    VibeKnow PPT讲解视频教程汇总
    VibeKnow PPT讲解视频教程汇总

    本专题介绍VibeKnow PPT讲解模式的素材准备、旁白生成、页面节奏、画面呈现与导出设置,适合课程和培训场景。

    2026.10.22

    0

    16

    VibeKnow PDF转视频教程合集
    VibeKnow PDF转视频教程合集

    本专题围绕VibeKnow的PDF转视频功能,讲解文件准备、内容解析、脚本生成、重点可视化及配音字幕检查方法。

    2026.10.22

    0

    12

    二狗PPT模板与视觉设计
    二狗PPT模板与视觉设计

    本专题介绍二狗PPT的职场模板、主题风格与页面版式,覆盖模板切换、色彩选择、内容匹配和正式汇报场景下的视觉优化方法。

    2026.10.22

    0

    13

    php漏洞修复方法
    php漏洞修复方法

    PHP漏洞聚合专题,持续整理PHP最新高危漏洞、CVE安全预警、受影响版本、自查命令及修复方案,覆盖PHP-FPM、Docker、Ubuntu与Linux服务器环境,帮助开发者快速完成漏洞排查、版本升级和安全加固。

    2026.10.22

    20

    31

    热门下载

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

    精品课程

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

    共87课时 | 13万人学习

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

    共89课时 | 11.2万人学习

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

    共5课时 | 1.6万人学习