基本示例
最基本的列表组是一个带有列表项和适当类的无序列表。可以根据下面的选项,或根据需要使用你自己的 CSS 在此基础上进行扩展。
- 一件物品
- 第二项
- 第三项
- 第四项
- 还有第五个
<ul class="list-group">
<li class="list-group-item">An item</li>
<li class="list-group-item">A second item</li>
<li class="list-group-item">A third item</li>
<li class="list-group-item">A fourth item</li>
<li class="list-group-item">And a fifth one</li>
</ul>活动项目
将 .active 添加到 .list-group-item 以指示当前活动选择。
- 一个主动物品
- 第二项
- 第三项
- 第四项
- 还有第五个
<ul class="list-group">
<li class="list-group-item active" aria-current="true">An active item</li>
<li class="list-group-item">A second item</li>
<li class="list-group-item">A third item</li>
<li class="list-group-item">A fourth item</li>
<li class="list-group-item">And a fifth one</li>
</ul>链接和按钮
使用 <a> 或 <button> 来创建具有悬停、禁用和活动状态的 可操作 列表组项目,方法是添加 .list-group-item-action。我们将这些伪类分开,以确保由非交互元素(如 <li> 或 <div>)组成的列表组不会提供点击或轻触提示。
制造 .list-group-item-action 实例 出现 通过添加禁用 .disabled,和 aria-disabled="true" 通知辅助技术该元素已被禁用。你可能需要额外的 JavaScript 来完全禁用链接和按钮。
请确保不要在这里使用标准的.btn类。
<div class="list-group">
<a href="#" class="list-group-item list-group-item-action active" aria-current="true">
The current link item
</a>
<a href="#" class="list-group-item list-group-item-action">A second link item</a>
<a href="#" class="list-group-item list-group-item-action">A third link item</a>
<a href="#" class="list-group-item list-group-item-action">A fourth link item</a>
<a href="#" class="list-group-item list-group-item-action disabled" aria-disabled="true">A disabled link item</a>
</div>使用<button>时,你也可以使用disabled属性,而不是.disabled类。不幸的是,<a>不支持disabled属性。
<div class="list-group">
<button type="button" class="list-group-item list-group-item-action active" aria-current="true">
The current button
</button>
<button type="button" class="list-group-item list-group-item-action">A second button item</button>
<button type="button" class="list-group-item list-group-item-action">A third button item</button>
<button type="button" class="list-group-item list-group-item-action">A fourth button item</button>
<button type="button" class="list-group-item list-group-item-action" disabled>A disabled button item</button>
</div>冲洗
添加 .list-group-flush 去掉一些边框和圆角,以便在父容器中(例如卡片)将列表组项目渲染为边到边。
- 一件物品
- 第二项
- 第三项
- 第四项
- 还有第五个
<ul class="list-group list-group-flush">
<li class="list-group-item">An item</li>
<li class="list-group-item">A second item</li>
<li class="list-group-item">A third item</li>
<li class="list-group-item">A fourth item</li>
<li class="list-group-item">And a fifth one</li>
</ul>编号
添加 .list-group-numbered 修饰类(并可选择使用 <ol> 元素)以选择编号列表组项目。数字通过 CSS 生成(相对于 <ol> 默认的浏览器样式),以便在列表组项目中更好地放置,并允许更好的自定义。
数字由 counter-reset 在 <ol> 上生成,然后使用 ::before 伪元素在 <li> 上进行样式设置和放置,并带有 counter-increment 和 content。
- 列表项
- 列表项
- 列表项
<ol class="list-group list-group-numbered">
<li class="list-group-item">A list item</li>
<li class="list-group-item">A list item</li>
<li class="list-group-item">A list item</li>
</ol>这些也非常适合自定义内容。
- 14副标题列表项内容
- 14副标题列表项内容
- 14副标题列表项内容
<ol class="list-group list-group-numbered">
<li class="list-group-item d-flex justify-content-between align-items-start">
<div class="ms-2 me-auto">
<div class="fw-bold">Subheading</div>
Content for list item
</div>
<span class="badge theme-primary">14</span>
</li>
<li class="list-group-item d-flex justify-content-between align-items-start">
<div class="ms-2 me-auto">
<div class="fw-bold">Subheading</div>
Content for list item
</div>
<span class="badge theme-primary">14</span>
</li>
<li class="list-group-item d-flex justify-content-between align-items-start">
<div class="ms-2 me-auto">
<div class="fw-bold">Subheading</div>
Content for list item
</div>
<span class="badge theme-primary">14</span>
</li>
</ol>水平
添加 .list-group-horizontal 可以将列表组项目的布局从垂直变为在所有容器尺寸下水平。或者,选择响应式变体 .{sm|md|lg|xl|2xl}:list-group-horizontal 以在该断点的宽度开始时将列表组设置为水平。
响应式变体使用 容器查询,因此请将列表组包装在查询容器中——向父元素添加 .contains-inline 工具——以使其生效。目前 水平列表组不能与 flush 列表组结合使用。
专业提示:想要水平时列表组项目等宽吗?在每个列表组项目中添加 .flex-fill。
- 一件物品
- 第二项
- 第三项
- 一件物品
- 第二项
- 第三项
- 一件物品
- 第二项
- 第三项
- 一件物品
- 第二项
- 第三项
- 一件物品
- 第二项
- 第三项
- 一件物品
- 第二项
- 第三项
<div class="contains-inline">
<ul class="list-group list-group-horizontal">
<li class="list-group-item">An item</li>
<li class="list-group-item">A second item</li>
<li class="list-group-item">A third item</li>
</ul>
</div>
<div class="contains-inline">
<ul class="list-group sm:list-group-horizontal">
<li class="list-group-item">An item</li>
<li class="list-group-item">A second item</li>
<li class="list-group-item">A third item</li>
</ul>
</div>
<div class="contains-inline">
<ul class="list-group md:list-group-horizontal">
<li class="list-group-item">An item</li>
<li class="list-group-item">A second item</li>
<li class="list-group-item">A third item</li>
</ul>
</div>
<div class="contains-inline">
<ul class="list-group lg:list-group-horizontal">
<li class="list-group-item">An item</li>
<li class="list-group-item">A second item</li>
<li class="list-group-item">A third item</li>
</ul>
</div>
<div class="contains-inline">
<ul class="list-group xl:list-group-horizontal">
<li class="list-group-item">An item</li>
<li class="list-group-item">A second item</li>
<li class="list-group-item">A third item</li>
</ul>
</div>
<div class="contains-inline">
<ul class="list-group 2xl:list-group-horizontal">
<li class="list-group-item">An item</li>
<li class="list-group-item">A second item</li>
<li class="list-group-item">A third item</li>
</ul>
</div>拖动手柄以调整下面容器的大小,并观察列表组在容器(而非视口)跨越 md 断点时在垂直和水平布局之间切换。
- 一件物品
- 第二项
- 第三项
<div class="contains-inline">
<ul class="list-group md:list-group-horizontal">
<li class="list-group-item">An item</li>
<li class="list-group-item">A second item</li>
<li class="list-group-item">A third item</li>
</ul>
</div>变体
使用上下文类为列表项设置有状态的背景和颜色样式。
- 一个简单的默认列表组项
- 一个简单的主要列表组项
- 一个简单的重音列表组项
- 一个简单的成功列表组项
- 一个简单的危险清单组项目
- 一个简单的警告列表组项
- 一个简单的信息列表组项
- 一个简单的反向列表组项
- 一个简单的二级列表组项目
<ul class="list-group">
<li class="list-group-item">A simple default list group item</li>
<li class="list-group-item theme-primary">A simple primary list group item</li>
<li class="list-group-item theme-accent">A simple accent list group item</li>
<li class="list-group-item theme-success">A simple success list group item</li>
<li class="list-group-item theme-danger">A simple danger list group item</li>
<li class="list-group-item theme-warning">A simple warning list group item</li>
<li class="list-group-item theme-info">A simple info list group item</li>
<li class="list-group-item theme-inverse">A simple inverse list group item</li>
<li class="list-group-item theme-secondary">A simple secondary list group item</li>
</ul>用于链接和按钮
上下文类也适用于.list-group-item-action的<a>和<button>元素。请注意这里添加了悬停样式,而在前一个示例中没有出现。同样支持.active状态;将其应用于上下文列表组项以指示活动选择。
<div class="list-group">
<a href="#" class="list-group-item list-group-item-action">A simple default list group item</a>
<a href="#" class="list-group-item list-group-item-action theme-primary">A simple primary list group item</a>
<a href="#" class="list-group-item list-group-item-action theme-accent">A simple accent list group item</a>
<a href="#" class="list-group-item list-group-item-action theme-success">A simple success list group item</a>
<a href="#" class="list-group-item list-group-item-action theme-danger">A simple danger list group item</a>
<a href="#" class="list-group-item list-group-item-action theme-warning">A simple warning list group item</a>
<a href="#" class="list-group-item list-group-item-action theme-info">A simple info list group item</a>
<a href="#" class="list-group-item list-group-item-action theme-inverse">A simple inverse list group item</a>
<a href="#" class="list-group-item list-group-item-action theme-secondary">A simple secondary list group item</a>
</div>可访问性提示:使用颜色传达含义
仅使用颜色来增加意义只提供视觉提示,这不会传达给使用辅助技术(如屏幕阅读器)的用户。请确保意义从内容本身即可明显体现(例如,可见的文本以及 足够的 颜色对比) 或通过替代方式包含,例如通过隐藏的附加文本 .visually-hidden 班级
带徽章
向任何列表组项目添加徽章,以显示未读计数、活动等,借助一些工具类。
- 列表项 14
- 第二个列表项 2
- 第三个列表项 1
<ul class="list-group">
<li class="list-group-item d-flex justify-content-between align-items-center">
A list item
<span class="badge theme-primary">14</span>
</li>
<li class="list-group-item d-flex justify-content-between align-items-center">
A second list item
<span class="badge theme-primary">2</span>
</li>
<li class="list-group-item d-flex justify-content-between align-items-center">
A third list item
<span class="badge theme-primary">1</span>
</li>
</ul>自定义内容
几乎可以在其中添加任何 HTML,即使是像下面这样的链接列表组,也可以借助 Flexbox 工具 实现。
<div class="list-group">
<a href="#" class="list-group-item list-group-item-action active" aria-current="true">
<div class="d-flex w-100 justify-content-between">
<h5 class="mb-1">List group item heading</h5>
<small>3 days ago</small>
</div>
<p class="mb-1">Some placeholder content in a paragraph.</p>
<small>And some small print.</small>
</a>
<a href="#" class="list-group-item list-group-item-action">
<div class="d-flex w-100 justify-content-between">
<h5 class="mb-1">List group item heading</h5>
<small class="fg-2">3 days ago</small>
</div>
<p class="mb-1">Some placeholder content in a paragraph.</p>
<small class="fg-2">And some muted small print.</small>
</a>
<a href="#" class="list-group-item list-group-item-action">
<div class="d-flex w-100 justify-content-between">
<h5 class="mb-1">List group item heading</h5>
<small class="fg-2">3 days ago</small>
</div>
<p class="mb-1">Some placeholder content in a paragraph.</p>
<small class="fg-2">And some muted small print.</small>
</a>
</div>复选框和单选按钮
将 Bootstrap 的复选框和单选按钮放在列表组项中,并根据需要进行自定义。你可以在没有 <label> 的情况下使用它们,但请记得为了可访问性包含 aria-label 属性和值。
<ul class="list-group">
<li class="list-group-item">
<div class="form-field">
<input type="checkbox" value="" id="firstCheckbox" class="check">
<label for="firstCheckbox">First checkbox</label>
</div>
</li>
<li class="list-group-item">
<div class="form-field">
<input type="checkbox" value="" id="secondCheckbox" class="check">
<label for="secondCheckbox">Second checkbox</label>
</div>
</li>
<li class="list-group-item">
<div class="form-field">
<input type="checkbox" value="" id="thirdCheckbox" class="check">
<label for="thirdCheckbox">Third checkbox</label>
</div>
</li>
</ul><ul class="list-group">
<li class="list-group-item">
<div class="form-field">
<input type="radio" name="listGroupRadio" value="" id="firstRadio" class="radio" checked>
<label for="firstRadio">First radio</label>
</div>
</li>
<li class="list-group-item">
<div class="form-field">
<input type="radio" name="listGroupRadio" value="" id="secondRadio" class="radio">
<label for="secondRadio">Second radio</label>
</div>
</li>
<li class="list-group-item">
<div class="form-field">
<input type="radio" name="listGroupRadio" value="" id="thirdRadio" class="radio">
<label for="thirdRadio">Third radio</label>
</div>
</li>
</ul>你可以使用 .stretched-link 开 <label>使整个列表组项可点击。
<ul class="list-group">
<li class="list-group-item">
<div class="form-field">
<input type="checkbox" value="" id="firstCheckboxStretched" class="check">
<label class="stretched-link" for="firstCheckboxStretched">First checkbox</label>
</div>
</li>
<li class="list-group-item">
<div class="form-field">
<input type="checkbox" value="" id="secondCheckboxStretched" class="check">
<label class="stretched-link" for="secondCheckboxStretched">Second checkbox</label>
</div>
</li>
<li class="list-group-item">
<div class="form-field">
<input type="checkbox" value="" id="thirdCheckboxStretched" class="check">
<label class="stretched-link" for="thirdCheckboxStretched">Third checkbox</label>
</div>
</li>
</ul>CSS
变量
列表组在.list-group上使用本地 CSS 变量进行实时自定义。CSS 变量的值是从每个组件独有的 Sass map生成,并应用于上述类。
// stylelint-disable-next-line scss/dollar-variable-default
$list-group-tokens: defaults(
(
--list-group-color: var(--fg-body),
--list-group-bg: var(--bg-body),
--list-group-border-color: var(--border-color),
--list-group-border-width: var(--border-width),
--list-group-border-radius: var(--radius-5),
--list-group-item-padding-x: var(--spacer),
--list-group-item-padding-y: var(--spacer-2),
--list-group-action-color: var(--fg-2),
--list-group-action-hover-color: var(--fg-1),
--list-group-action-hover-bg: var(--bg-1),
--list-group-action-active-color: var(--fg-body),
--list-group-action-active-bg: var(--bg-2),
--list-group-disabled-color: var(--fg-3),
--list-group-disabled-bg: var(--bg-body),
--list-group-active-color: var(--primary-contrast),
--list-group-active-bg: var(--primary-bg),
--list-group-active-border-color: var(--primary-bg),
),
$list-group-tokens
);
JavaScript 行为
使用 标签页插件 创建可切换的列表组面板。