资讯详情

DaisyUI Steps 步骤条组件完全指南:从横向/纵向布局到自定义图标与配色

📅 2026/9/9 21:18:57 | 华诺云谱 👁 阅读
DaisyUI Steps 步骤条组件完全指南:从横向/纵向布局到自定义图标与配色
DaisyUI Steps 步骤条组件完全指南从横向/纵向布局到自定义图标与配色【免费下载链接】daisyui The most popular, free and open-source Tailwind CSS component library项目地址: https://gitcode.com/GitHub_Trending/da/daisyui导读DaisyUI 的Steps组件用于以步骤节点的形式呈现一个流程中的多个阶段例如注册流程、购物结算、任务向导等。这篇指南将带你完整掌握它的用法从最基础的横向步骤条、纵向布局到响应式切换、自定义步骤图标step-icon、通过data-content展示任意符号内容再到用 8 种语义化颜色step-*为流程节点着色以及配合滚动容器处理超长步骤列表。文末还会结合仓库源码深入讲解该组件的 CSS 实现原理与它背后的命名空间前缀机制让你既能拿来即用也能读懂原理。本文主要依据 Steps 官方文档/components/steps/page.md) 与 steps.css 源码 编写。Steps 组件是什么Steps 组件用于展示流程中的步骤列表。它的 HTML 骨架非常简单一个容器ul classsteps内部每个li classstep就是一步。核心类名体系可以从前置元数据frontmatter中的 classnames 定义完整看到分类类名说明component组件容器steps多个步骤节点的容器part组成部分step单个步骤节点part组成部分step-icon步骤节点内的自定义图标color颜色修饰step-neutralneutral 语义色color颜色修饰step-primaryprimary 语义色color颜色修饰step-secondarysecondary 语义色color颜色修饰step-accentaccent 语义色color颜色修饰step-infoinfo 语义色color颜色修饰step-successsuccess 语义色color颜色修饰step-warningwarning 语义色color颜色修饰step-errorerror 语义色direction方向修饰steps-vertical纵向布局direction方向修饰steps-horizontal横向布局默认也就是说把方向类名加在steps容器上把颜色类名加在具体的每个step节点上。说明官方文档示例中的类名以$$为占位符例如$$steps。这是文档站用来根据用户当前配置的前缀动态替换的写法——prefixClassNames 的实现会将$$替换为用户实际设置的类名前缀。若未配置前缀实际类名就是steps、step、step-primary这样。下文所有示例均以无前缀的类名给出若你在 daisyui 配置中启用了prefix请自行在前面加上对应前缀。横向步骤条默认方向Steps 默认就是横向布局直接写出ul.steps加多个li.step即可。step-primary用于标记已完成/当前处于主色调的步骤ul classsteps li classstep step-primaryRegister/li li classstep step-primaryChoose plan/li li classstepPurchase/li li classstepReceive Product/li /ul效果上已标记step-primary的前两步与连接线会以主题 primary 色高亮未标记的后续步骤显示默认灰色即 base-300 背景。纵向步骤条在ul上额外添加steps-vertical即可把排列方向改为从上到下ul classsteps steps-vertical li classstep step-primaryRegister/li li classstep step-primaryChoose plan/li li classstepPurchase/li li classstepReceive Product/li /ul从源码看.steps-vertical的布局实现会把grid-auto-rows设为1fr、流动方向改为grid-flow-row并且每个.step的网格变成图标列 文字行的纵向结构grid-template-columns: 40px 1fr连接线段也相应改为竖向的h-full w-2。响应式步骤条小屏纵向、大屏横向利用 Tailwind 的响应式前缀可以做到手机上竖排、桌面横排。lg:steps-horizontal表示在lg及以上断点切回横向布局ul classsteps steps-vertical lg:steps-horizontal li classstep step-primaryRegister/li li classstep step-primaryChoose plan/li li classstepPurchase/li li classstepReceive Product/li /ul因为steps-vertical与steps-horizontal本质上都是独立的工具类而非互相覆盖的固定状态所以你可以放心地用 Tailwind 断点前缀组合出默认竖排、大屏横排这类自适应模式。注意竖排容器还可以继续套用其他布局工具来调节宽度与对齐。在步骤内放入自定义图标step-icon如果不想用默认的编号圆点可以在li内部放一个span classstep-icon其内容可以是一个 emoji、图标字体或 SVG。存在step-icon时CSS 会自动用你提供的图标替代默认的序号圆点源码中的选择器是.step .step-icon并且.step:not(:has(.step-icon)):after才会生成默认编号。ul classsteps li classstep step-neutral span classstep-icon/spanStep 1 /li li classstep step-neutral span classstep-icon/spanStep 2 /li li classstep span classstep-icon/spanStep 3 /li /ul用>ul classsteps li>ul classsteps li classstep step-infoFly to moon/li li classstep step-infoShrink the moon/li li classstep step-infoGrab the moon/li li classstep step-error>.step-primary { .step-primary:before, :after, .step-icon { --step-bg: var(--color-primary); --step-fg: var(--color-primary-content); } }其中--step-bg背景色即圆点与线段颜色与--step-fg前景内容色即圆点内数字/图标颜色会在基础.step规则中被消费未着色步骤的默认值是--step-bg: var(--color-base-300)与--step-fg: var(--color-base-content)。配合滚动容器展示超长步骤列表当步骤非常多时默认的.steps本身就是inline-grid grid-flow-col并带有overflow-x-auto即内容超宽时可以横向滚动。如果希望滚动发生在步骤条外层可以把它包在一个带overflow-x-auto的容器里让步骤条的宽度自然撑开而不被压缩长流程也能保持每个节点均分宽度div classoverflow-x-auto ul classsteps li classstepstart/li li classstep step-secondary2/li li classstep step-secondary3/li li classstep step-secondary4/li li classstep5/li li classstep step-accent6/li li classstep step-accent7/li li classstep8/li li classstep step-error9/li li classstep step-error10/li li classstep11/li li classstep12/li li classstep step-warning13/li li classstep step-warning14/li li classstep15/li li classstep step-neutral16/li li classstep step-neutral17/li li classstep step-neutral18/li li classstep step-neutral19/li li classstep step-neutral20/li li classstep step-neutral21/li li classstep step-neutral22/li li classstep step-neutral23/li li classstep step-neutralend/li /ul /div这里的start/end是纯文本内容颜色类名只决定圆点与连线的配色未着色的.step如 1、5、8、11、12、15保持默认灰色形成进行中/已完成/未开始的直观区隔。从源码理解 Steps 的渲染原理要深入理解 Steps 的行为可以直接阅读 packages/daisyui/src/components/steps.css。要点如下容器即网格基础.steps使用inline-grid grid-flow-col排成一行grid-auto-columns: 1fr保证每个步骤均分宽度并通过counter-reset: step在容器上初始化步骤计数器。编号圆点由计数器与伪元素生成每个.step是一个两行网格grid-template-rows: 40px 1frmin-width: 4rem默认情况下用:after伪元素显示counter(step)递增的序号并绘制成h-8 w-8的圆形用::before伪元素绘制连接线段。由于设置了margin-inline-start: -100%线段会向左延伸到与上一步衔接而:first-child:before会被置空因此第一步没有左侧多余线段。颜色通过 CSS 变量注入颜色类只负责改写--step-bg/--step-fg两个变量圆点、线段、图标的实际着色都引用这两个变量因此新增颜色语义只需加一层规则。RTL 适配源码中在横向与纵向规则里都带有[dirrtl] :before的覆盖用于翻转线段位移方向说明该组件原生支持从右到左的文字排版场景。图层体系源码使用layer daisyui.l1.l2.l3与layer daisyui.l1.l2这样的嵌套层组织优先级保证基础布局与颜色修饰在不同上下文里都能被有序覆盖。如果你是在 Agent / Skill 场景下快速查询 Steps 的用法也可以参考 skills/daisyui/components/steps.md它用极简的类名清单 语法骨架 使用规则形式总结了这个组件默认横向、加steps-vertical变纵向方向类加在steps上、颜色类加在每个step上用step-icon放自定义图标用data-content{value}展示自定义数据。总结Steps 组件覆盖了流程展示的绝大多数诉求横向/纵向/响应式三种排布方式、emoji 或 SVG 自定义图标、data-content轻量替换圆点符号、8 种语义色任意组合以及超长列表的滚动处理。配合源码中 CSS 变量与计数器伪元素的设计你甚至可以在不改组件的前提下通过主题色扩展出自己品牌化的步骤条风格。【免费下载链接】daisyui The most popular, free and open-source Tailwind CSS component library项目地址: https://gitcode.com/GitHub_Trending/da/daisyui创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。