layui未内置步骤条组件,但可通过自定义HTML结构(.layui-step容器+data-status状态属性)、layui图标及CSS实现横向步骤条,支持动态JS状态更新。

layui 本身没有内置的“步骤条(Step)”组件,但可以通过 layui 的基础样式 + HTML 结构 + 少量自定义 CSS 快速实现横向步骤条效果。Element UI 是另一个独立的 Vue 组件库,和 layui 无关,不能直接在 layui 项目中使用 Element 的 step 组件。
用 layui 实现横向步骤条(纯 HTML + CSS + layui 图标)
核心思路:利用 layui 的 .layui-step(需手动定义)或基于 .layui-nav / .layui-tab-title 的语义化结构,配合图标( ✔ 成功、 ● 当前、 ○ 未开始)和状态类控制视觉效果。
推荐写法(轻量、兼容 layui 2.x):
- 用 包裹步骤项
- 每个步骤用
表示- 用
data-status="wait|process|finish"控制状态,再通过 CSS 匹配- 图标用 layui 字体图标(
iconfont),无需额外引入HTML 结构示例
复制即用(支持 3–5 步):
<div class="layui-step" id="demoStep"> <div class="layui-step-item" data-status="finish"> <i class="layui-icon"></i> <div class="layui-step-text">填写信息</div> </div> <div class="layui-step-item" data-status="process"> <i class="layui-icon"></i> <div class="layui-step-text">验证身份</div> </div> <div class="layui-step-item" data-status="wait"> <i class="layui-icon"></i> <div class="layui-step-text">完成提交</div> </div> </div>配套 CSS 样式(建议加在页面 style 或全局 CSS 中)
保证横向排列、连线、间距和状态样式:
.layui-step { display: flex; justify-content: space-between; position: relative; padding: 0 20px; margin: 30px 0; } .layui-step::before { content: ''; position: absolute; top: 24px; left: 0; right: 0; height: 2px; background-color: #e6e6e6; z-index: 1; } .layui-step-item { text-align: center; position: relative; z-index: 2; width: 80px; } .layui-step-item .layui-icon { display: block; width: 48px; height: 48px; line-height: 48px; margin: 0 auto 10px; font-size: 20px; border-radius: 50%; color: #fff; } .layui-step-item[data-status="finish"] .layui-icon { background-color: #5FB878; } .layui-step-item[data-status="process"] .layui-icon { background-color: #1E9FFF; } .layui-step-item[data-status="wait"] .layui-icon { background-color: #eee; color: #999; } .layui-step-text { font-size: 14px; color: #666; } .layui-step-item[data-status="finish"] .layui-step-text, .layui-step-item[data-status="process"] .layui-step-text { color: #333; }动态更新步骤状态(JS 控制)
例如用户点击“下一步”,调用函数切换状态:
function updateStep(index) { var items = document.querySelectorAll('.layui-step-item'); items.forEach((item, i) => { item.setAttribute('data-status', i <p>不复杂但容易忽略:确保图标字体正常加载(layui 2.8+ 默认已内置),且容器有足够宽度避免换行;移动端建议加 <code>@media</code> 适配为垂直堆叠(可选)。</p> - 每个步骤用











