Layui如何修改upload上传进度条的背景颜色和高度

云萱大大_7809

云萱大大_7809

2026-06-09

534人浏览

原创

layui upload 进度条背景色和高度需用带 .layui-upload-list 前缀的 css 强制覆盖,并加 !important;动态变色应通过预定义类名切换而非直接操作 style。

upload 进度条的背景色不能靠 lay-bg- 类直接生效

很多人试过在 layui-progress-bar 上加 layui-bg-red 或写 style="background-color: #ff6b6b",发现没用——因为 layui 的 upload 模块内部会动态重写该元素的 background-color(基于主色变量计算),外部样式容易被覆盖。真正起效的方式是覆盖其内联样式优先级更高的规则,或者改底层 css 变量(仅限 2.8+ 且你控制构建流程)。

更实际的做法:用 CSS 强制覆盖,定位到 upload 弹层里的进度条元素。它通常结构为:

<div class="layui-upload-list">
  <div class="layui-progress">
    <div class="layui-progress-bar" lay-percent="60%"></div>
  </div>
</div>

所以你可以这样写:

.layui-upload-list .layui-progress-bar {
  background-color: #4ecdc4 !important;
  height: 6px !important;
}

注意两点:
• 必须带 .layui-upload-list 前缀,否则可能影响页面其他进度条
• !important 是必要的,因为 upload 模块会在 JS 中直接设置 style.background

高度改不了?检查是否被父容器或 flex 布局压缩

设了 height: 8px 但看起来还是细得像头发,大概率是父级 .layui-progress 默认用了 line-height: 1 或 display: flex 对齐方式,把子元素压扁了。Layui 2.8+ 的进度条默认是 flex 布局,.layui-progress-bar 的 align-self 是 center,但若父容器没设明确高度,它就会塌缩。

稳妥解法是同时约束两层:

  • 给外层 .layui-progress 设最小高度:min-height: 8px
  • 给内层 .layui-progress-bar 设 height: 8px + align-self: stretch
  • 如果进度条文字(如“60%”)还显示着,顺手隐藏掉:.layui-progress-text { display: none; }

完整示例:

.layui-upload-list .layui-progress {
  min-height: 8px;
}
.layui-upload-list .layui-progress-bar {
  height: 8px !important;
  align-self: stretch !important;
  background-color: #4a9eff !important;
}
.layui-upload-list .layui-progress-text {
  display: none;
}

想全局统一改 upload 进度条样式?别动 layui.css,改入口页 CSS 就行

有人试图去改 layui.css 里的 .layui-progress-bar 规则,结果升级 Layui 后覆盖丢失。其实没必要——所有 upload 实例共享同一套 CSS 选择器,只要你在页面 里引入自定义样式,并确保它在 layui.css 之后加载,就能稳定覆盖。

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

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

下载

如果你用的是 CDN(比如 https://unpkg.com/layui@2.9.17/dist/css/layui.css),那就这么写:

<link rel="stylesheet" href="https://unpkg.com/layui@2.9.17/dist/css/layui.css"><style>
/* 放在这里,一定在 layui.css 后面 */
.layui-upload-list .layui-progress-bar {
  background-color: #5d8aa8 !important;
  height: 10px !important;
}
</style>

不用 JS 注入、不依赖模块加载顺序,干净利落。

动态切换颜色时,避免用 JS 频繁 setAttribute 改 style

有用户想根据上传状态(上传中 / 暂停 / 失败)实时变色,于是写 elem.style.backgroundColor = 'red'。这看似可行,但 upload 模块每 200ms 会调用一次进度刷新,JS 设置的内联样式会被它自己的更新逻辑覆盖,导致颜色闪一下就变回原样。

正确做法是提前定义好几套 CSS 类,用 className 切换:

.upload-progress-success { background-color: #4caf50 !important; }
.upload-progress-error   { background-color: #f44336 !important; }
.upload-progress-pause   { background-color: #ff9800 !important; }

然后在 upload 的回调里操作 DOM 类名:

upload.on('progress', function(obj){
  var percent = obj.percent;
  var bar = obj.elem.next('.layui-progress').find('.layui-progress-bar');
  bar.removeClass('upload-progress-success upload-progress-error upload-progress-pause');
  if (percent === 100) {
    bar.addClass('upload-progress-success');
  } else if (obj.status === 'error') {
    bar.addClass('upload-progress-error');
  }
});

类名切换不触发重排,也不和 upload 内部逻辑冲突,是最稳的动态方案。

真正麻烦的不是改颜色或高度,而是 upload 模块对进度条 DOM 的强控制权——它不暴露进度条元素引用,也不提供样式钩子。所有“覆盖”都得靠 CSS 优先级和时机卡位,稍不留神就被自己写的 JS 或 Layui 自身刷新干掉。

相关文章

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

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

下载

相关标签:

layui

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

相关专题

更多
css3教程
css3教程

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

2023.06.14

1820

10

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

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

2023.11.01

2586

5

FrankenPHP集成Laravel详细教程
FrankenPHP集成Laravel详细教程

本专题提供FrankenPHP集成Laravel的详细配置指南,全面解析运行原理、开发环境搭建、Caddyfile配置、Octane工作模式、数据库连接、队列任务、定时任务和生产环境优化,解决部署过程中常见的报错与兼容性问题。

2026.10.08

0

20

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

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

2026.09.30

120

10

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

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

2026.09.30

100

14

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

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

2026.09.30

80

12

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

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

2026.09.30

80

26

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

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

2026.09.29

100

15

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

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

2026.09.23

300

15

热门下载

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

精品课程

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

共87课时 | 12.8万人学习

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

共89课时 | 11万人学习

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

共5课时 | 1.6万人学习