Layui表格合计行如何自定义背景颜色和字体

冬明同学_4836

冬明同学_4836

2026-06-17

601人浏览

原创

Layui合计行样式只能通过CSS覆盖或done回调动态设置,推荐使用高优先级CSS选择器如.layui-table-total tr和.layui-table-total tr td并加!important;templet方式可实现单列条件着色。

合计行 background-color 和 color 无法用 totalRowStyle 控制

layui 的 totalrow 不提供类似 rowstyle 或 cellstyle 的样式回调,它只负责渲染合计值,不暴露样式钩子。你写 totalrowstyle: function() {...} 是无效的——这个配置项根本不存在。

真实生效的方式只有两种:CSS 覆盖,或在 done 回调里手动加 style/class。但后者有严重隐患:分页、排序、reload 后合计行 DOM 会被重建,样式丢失。

  • 必须用高优先级 CSS 选择器精准命中合计行的 <tr>,例如:<code>.layui-table-total tr 或更具体的 #myTable .layui-table-total tr
  • 合计行固定带有 class layui-table-total,其内部 tr 没有额外 class,所以不能靠 :nth-child 区分多行合计(Layui 目前只支持单行合计)
  • 避免用 !important,除非你确认 Layui 某个版本给 .layui-table-total tr 写了带 !important 的内联样式(2.8+ 版本未见)
  • 推荐 CSS 写法:直接作用于合计行 tr 和 td

    合计行结构是 <tbody class="layui-table-total"><tr> <td>合计</td> <td>123</td> </tr></tbody>,所以样式要写在 tr 和 td 上,而不是 th。

    示例(深蓝底 + 白字 + 加粗):

    .layui-table-total tr {
      background-color: #1890ff !important;
    }
    .layui-table-total tr td {
      background-color: #1890ff !important;
      color: #fff !important;
      font-weight: bold;
    }
    • 必须加 !important:因为 Layui 会给 td 设置默认背景色(通常是白色),且部分版本会内联写死 style="background-color: #fff"
    • 不要只设 tr 背景:某些浏览器下 tr 的背景会被 td 覆盖,必须同时设 td
    • 字体颜色和加粗必须写在 td 上,tr 不继承 color

    用 done 回调动态加样式?风险极高,仅限简单场景

    如果合计逻辑依赖后端返回的某个字段(比如 “是否超预算”),需要条件式着色,那只能在 done 里操作。但要注意:每次 reload、分页、搜索都会触发 done,你得确保重复执行不报错、不叠加样式。

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

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

    下载
    • 先清掉旧样式:that.find('.layui-table-total tr').removeAttr('style').find('td').removeAttr('style')
    • 再根据 res.total 或 res.data 判断条件,例如:if (res.total?.amount > 100000) { $tr.css('background-color', '#fff3cd') }
    • 别用 addClass:Layui 没为合计行预设对应 CSS 类,加了也没用;必须用 css() 直接写内联样式
    • 此方式在虚拟滚动开启时可能失效,因合计行未必在视口内,find 可能找不到

    合计单元格单独设色?用 templet + 条件判断

    如果你只想改某一个合计单元格(比如只让“金额”列合计变红),最稳的方式不是动整行,而是用 templet 替换该列合计内容,并包裹带样式的 <div>。 <p>例如:</p> <pre class="brush:php;toolbar:false;">{ field: 'amount', title: '金额', totalRow: true, templet: function(d) { if (d.type === 'total') { return '&lt;div style=&quot;color: #f5222d; font-weight: bold;&quot;&gt;' + d.amount + '&lt;/div&gt;'; } return d.amount; } }</pre> <ul> <li> <code>d.type === 'total' 是识别合计单元格的唯一可靠方式(Layui 2.8+ 支持)

  • 别用 d.amount === undefined 或 typeof d.amount === 'string' 判断,这些不稳定
  • 此法只影响该列,不影响其他合计列,自由度最高
  • 注意:templet 返回的是 HTML 字符串, 和 <code>> 必须实体化或用模板字符串

真正麻烦的点在于:合计行没有独立生命周期,它被当作普通数据渲染,又没提供样式 API。所以要么全盘 CSS 覆盖(适合统一风格),要么每个合计列自己用 templet 精控(适合差异化需求)。想两头兼顾?目前没捷径。

相关文章

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

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

下载

相关标签:

layui

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

相关专题

更多
python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

2283

5

前端如何实现即时通讯
前端如何实现即时通讯

实现即时通讯的方法有WebSocket、Long Polling、Server-Sent Events、WebRTC等等。详细介绍:1、WebSocket,它可以在客户端和服务器之间建立持久连接,实现实时的双向通信,前端可以使用 WebSocket API来创建WebSocket连接,并通过发送和接收消息来实现即时通讯;2、Long Polling,是一种模拟实时通信的技术等等。

2023.10.09

4943

6

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

2024.03.19

6030

13

php和前端的关联介绍
php和前端的关联介绍

php既可以作为前端语言,也可以作为后端语言。想了解更多php和前端的相关内容,可以阅读本专题下面的文章。

2024.03.22

5538

10

前端外包工作内容有哪些
前端外包工作内容有哪些

前端外包工作内容包括:1. 网站和应用程序开发;2. 用户界面和交互设计;3. 用户体验优化;4. 设计和视觉开发;5. 跨浏览器兼容性;6. 性能优化;7. 维护和更新;8. 项目管理和沟通。想了解更多前端的相关内容,可以阅读本专题下面的文章。

2024.05.22

783

5

css3教程
css3教程

php中文网为大家提供css3教程合集,CSS3的语法是建立在CSS原先版本基础上的,它允许使用者在标签中指定特定的HTML元素而不必使用多余的class、ID或JavaScript。php中文网还为大家带来css3的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

2023.06.14

1800

10

有哪些css3渐变属性
有哪些css3渐变属性

css3中渐变属性有linear-gradient、radial-gradient、conic-gradient、repeating-linear-gradient、repeating-radial-gradient等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.11.01

2526

5

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

热门下载

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

精品课程

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

共87课时 | 12.7万人学习

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

共89课时 | 10.9万人学习

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

共5课时 | 1.6万人学习