in English

Danh sách nhóm

Nhóm danh sách là một thành phần linh hoạt và mạnh mẽ để hiển thị một loạt nội dung. Sửa đổi và mở rộng chúng để hỗ trợ bất kỳ nội dung nào bên trong.

Ví dụ cơ bản

Nhóm danh sách cơ bản nhất là một danh sách không có thứ tự với các mục danh sách và các lớp thích hợp. Xây dựng dựa trên nó với các tùy chọn theo sau hoặc với CSS của riêng bạn nếu cần.

  • Một món đồ
  • Một mặt hàng thứ hai
  • Một mặt hàng thứ ba
  • Một mục thứ tư
  • Và một thứ năm
<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>

Các mặt hàng đang hoạt động

Thêm .activevào a .list-group-itemđể cho biết lựa chọn đang hoạt động hiện tại.

  • Một mục đang hoạt động
  • Một mặt hàng thứ hai
  • Một mặt hàng thứ ba
  • Một mục thứ tư
  • Và một thứ năm
<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>

Các mặt hàng bị vô hiệu hóa

Thêm .disabledvào a .list-group-itemđể làm cho nó có vẻ như bị vô hiệu hóa. Lưu ý rằng một số phần tử có .disabledcũng sẽ yêu cầu JavaScript tùy chỉnh để vô hiệu hóa hoàn toàn các sự kiện nhấp chuột của chúng (ví dụ: liên kết).

  • Một mặt hàng bị vô hiệu hóa
  • Một mặt hàng thứ hai
  • Một mặt hàng thứ ba
  • Một mục thứ tư
  • Và một thứ năm
<ul class="list-group">
  <li class="list-group-item disabled" aria-disabled="true">A disabled 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>

Sử dụng <a>các s hoặc <button>s để tạo các mục trong nhóm danh sách có thể hành động với các trạng thái di chuột, tắt và hoạt động bằng cách thêm .list-group-item-action. Chúng tôi phân tách các lớp giả này để đảm bảo các nhóm danh sách được tạo từ các phần tử không tương tác (như <li>hoặc <div>các) không cung cấp khả năng chi trả bằng nhấp chuột hoặc nhấn.

Đảm bảo không sử dụng các .btnlớp tiêu chuẩn ở đây .

<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 class="list-group-item list-group-item-action disabled">A disabled link item</a>
</div>

Với <button>s, bạn cũng có thể sử dụng disabledthuộc tính thay vì .disabledlớp. Đáng buồn <a>là không hỗ trợ thuộc tính bị vô hiệu hóa.

<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 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>

Tuôn ra

Thêm .list-group-flushđể loại bỏ một số đường viền và các góc tròn để hiển thị danh sách các mục nhóm cạnh nhau trong vùng chứa mẹ (ví dụ: thẻ).

  • Một món đồ
  • Một mặt hàng thứ hai
  • Một mặt hàng thứ ba
  • Một mục thứ tư
  • Và một thứ năm
<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>

Nằm ngang

Thêm .list-group-horizontalđể thay đổi bố cục của các mục nhóm danh sách từ dọc sang ngang trên tất cả các điểm ngắt. Ngoài ra, hãy chọn một biến thể .list-group-horizontal-{sm|md|lg|xl}đáp ứng để tạo nhóm danh sách theo chiều ngang bắt đầu từ điểm ngắt đó min-width. Hiện tại, nhóm danh sách ngang không thể được kết hợp với nhóm danh sách phẳng.

Mẹo: Muốn các mục nhóm danh sách có chiều rộng bằng nhau khi nằm ngang? Thêm .flex-fillvào từng mục nhóm danh sách.

  • Một món đồ
  • Một mặt hàng thứ hai
  • Một mặt hàng thứ ba
  • Một món đồ
  • Một mặt hàng thứ hai
  • Một mặt hàng thứ ba
  • Một món đồ
  • Một mặt hàng thứ hai
  • Một mặt hàng thứ ba
  • Một món đồ
  • Một mặt hàng thứ hai
  • Một mặt hàng thứ ba
  • Một món đồ
  • Một mặt hàng thứ hai
  • Một mặt hàng thứ ba
<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>
<ul class="list-group list-group-horizontal-sm">
  <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>
<ul class="list-group list-group-horizontal-md">
  <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>
<ul class="list-group list-group-horizontal-lg">
  <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>
<ul class="list-group list-group-horizontal-xl">
  <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>

Các lớp theo ngữ cảnh

Sử dụng các lớp ngữ cảnh để tạo kiểu danh sách các mục với nền và màu sắc trạng thái.

  • Một mục nhóm danh sách mặc định đơn giản
  • Một mục nhóm danh sách chính đơn giản
  • Một mục nhóm danh sách phụ đơn giản
  • Một mục nhóm danh sách thành công đơn giản
  • Một mục nhóm danh sách nguy hiểm đơn giản
  • Một mục nhóm danh sách cảnh báo đơn giản
  • Một mục nhóm danh sách thông tin đơn giản
  • Một mục nhóm danh sách đơn giản
  • Một mục nhóm danh sách tối đơn giản
<ul class="list-group">
  <li class="list-group-item">A simple default list group item</li>

  <li class="list-group-item list-group-item-primary">A simple primary list group item</li>
  <li class="list-group-item list-group-item-secondary">A simple secondary list group item</li>
  <li class="list-group-item list-group-item-success">A simple success list group item</li>
  <li class="list-group-item list-group-item-danger">A simple danger list group item</li>
  <li class="list-group-item list-group-item-warning">A simple warning list group item</li>
  <li class="list-group-item list-group-item-info">A simple info list group item</li>
  <li class="list-group-item list-group-item-light">A simple light list group item</li>
  <li class="list-group-item list-group-item-dark">A simple dark list group item</li>
</ul>

Các lớp theo ngữ cảnh cũng hoạt động với .list-group-item-action. Lưu ý rằng việc bổ sung các kiểu di chuột ở đây không có trong ví dụ trước. Cũng được hỗ trợ là .activenhà nước; áp dụng nó để chỉ ra một lựa chọn đang hoạt động trên một mục nhóm danh sách theo ngữ cảnh.

<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 list-group-item-primary">A simple primary list group item</a>
  <a href="#" class="list-group-item list-group-item-action list-group-item-secondary">A simple secondary list group item</a>
  <a href="#" class="list-group-item list-group-item-action list-group-item-success">A simple success list group item</a>
  <a href="#" class="list-group-item list-group-item-action list-group-item-danger">A simple danger list group item</a>
  <a href="#" class="list-group-item list-group-item-action list-group-item-warning">A simple warning list group item</a>
  <a href="#" class="list-group-item list-group-item-action list-group-item-info">A simple info list group item</a>
  <a href="#" class="list-group-item list-group-item-action list-group-item-light">A simple light list group item</a>
  <a href="#" class="list-group-item list-group-item-action list-group-item-dark">A simple dark list group item</a>
</div>
Truyền đạt ý nghĩa cho các công nghệ hỗ trợ

Việc sử dụng màu sắc để thêm ý nghĩa chỉ cung cấp một dấu hiệu trực quan, điều này sẽ không được chuyển tải đến người dùng công nghệ hỗ trợ - chẳng hạn như trình đọc màn hình. Đảm bảo rằng thông tin được biểu thị bằng màu sắc hiển thị rõ ràng từ chính nội dung (ví dụ: văn bản hiển thị) hoặc được đưa vào thông qua các phương tiện thay thế, chẳng hạn như văn bản bổ sung bị ẩn với .sr-onlylớp.

Có huy hiệu

Thêm huy hiệu vào bất kỳ mục nhóm danh sách nào để hiển thị số lượng chưa đọc, hoạt động và hơn thế nữa với sự trợ giúp của một số tiện ích .

  • Một mục danh sách14
  • Một mục danh sách thứ hai2
  • Mục danh sách thứ ba1
<ul class="list-group">
  <li class="list-group-item d-flex justify-content-between align-items-center">
    A list item
    <span class="badge badge-primary badge-pill">14</span>
  </li>
  <li class="list-group-item d-flex justify-content-between align-items-center">
    A second list item
    <span class="badge badge-primary badge-pill">2</span>
  </li>
  <li class="list-group-item d-flex justify-content-between align-items-center">
    A third list item
    <span class="badge badge-primary badge-pill">1</span>
  </li>
</ul>

Nội dung tùy chỉnh

Thêm gần như bất kỳ HTML nào bên trong, ngay cả đối với các nhóm danh sách được liên kết như bên dưới, với sự trợ giúp của các tiện ích flexbox .

<div class="list-group">
  <a href="#" class="list-group-item list-group-item-action active">
    <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="text-muted">3 days ago</small>
    </div>
    <p class="mb-1">Some placeholder content in a paragraph.</p>
    <small class="text-muted">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="text-muted">3 days ago</small>
    </div>
    <p class="mb-1">Some placeholder content in a paragraph.</p>
    <small class="text-muted">And some muted small print.</small>
  </a>
</div>

Hành vi JavaScript

Sử dụng plugin JavaScript tab — bao gồm nó riêng lẻ hoặc thông qua bootstrap.jstệp đã biên dịch — để mở rộng nhóm danh sách của chúng tôi nhằm tạo các ngăn có thể tab của nội dung cục bộ.

<div class="row">
  <div class="col-4">
    <div class="list-group" id="list-tab" role="tablist">
      <a class="list-group-item list-group-item-action active" id="list-home-list" data-toggle="list" href="#list-home" role="tab" aria-controls="home">Home</a>
      <a class="list-group-item list-group-item-action" id="list-profile-list" data-toggle="list" href="#list-profile" role="tab" aria-controls="profile">Profile</a>
      <a class="list-group-item list-group-item-action" id="list-messages-list" data-toggle="list" href="#list-messages" role="tab" aria-controls="messages">Messages</a>
      <a class="list-group-item list-group-item-action" id="list-settings-list" data-toggle="list" href="#list-settings" role="tab" aria-controls="settings">Settings</a>
    </div>
  </div>
  <div class="col-8">
    <div class="tab-content" id="nav-tabContent">
      <div class="tab-pane fade show active" id="list-home" role="tabpanel" aria-labelledby="list-home-list">...</div>
      <div class="tab-pane fade" id="list-profile" role="tabpanel" aria-labelledby="list-profile-list">...</div>
      <div class="tab-pane fade" id="list-messages" role="tabpanel" aria-labelledby="list-messages-list">...</div>
      <div class="tab-pane fade" id="list-settings" role="tabpanel" aria-labelledby="list-settings-list">...</div>
    </div>
  </div>
</div>

Sử dụng thuộc tính dữ liệu

Bạn có thể kích hoạt điều hướng nhóm danh sách mà không cần viết bất kỳ JavaScript nào bằng cách chỉ định data-toggle="list"hoặc trên một phần tử. Sử dụng các thuộc tính dữ liệu này trên .list-group-item.

<div role="tabpanel">
  <!-- List group -->
  <div class="list-group" id="myList" role="tablist">
    <a class="list-group-item list-group-item-action active" data-toggle="list" href="#home" role="tab">Home</a>
    <a class="list-group-item list-group-item-action" data-toggle="list" href="#profile" role="tab">Profile</a>
    <a class="list-group-item list-group-item-action" data-toggle="list" href="#messages" role="tab">Messages</a>
    <a class="list-group-item list-group-item-action" data-toggle="list" href="#settings" role="tab">Settings</a>
  </div>

  <!-- Tab panes -->
  <div class="tab-content">
    <div class="tab-pane active" id="home" role="tabpanel">...</div>
    <div class="tab-pane" id="profile" role="tabpanel">...</div>
    <div class="tab-pane" id="messages" role="tabpanel">...</div>
    <div class="tab-pane" id="settings" role="tabpanel">...</div>
  </div>
</div>

Qua JavaScript

Bật mục danh sách có thể tab qua JavaScript (mỗi mục danh sách cần được kích hoạt riêng lẻ):

$('#myList a').on('click', function (event) {
  event.preventDefault()
  $(this).tab('show')
})

Bạn có thể kích hoạt từng mục danh sách theo một số cách:

$('#myList a[href="#profile"]').tab('show') // Select tab by name
$('#myList a:first-child').tab('show') // Select first tab
$('#myList a:last-child').tab('show') // Select last tab
$('#myList a:nth-child(3)').tab('show') // Select third tab

Hiệu ứng mờ dần

Để làm cho bảng tab mờ dần, hãy thêm .fadevào từng tab .tab-pane. Ngăn tab đầu tiên cũng phải .showhiển thị nội dung ban đầu.

<div class="tab-content">
  <div class="tab-pane fade show active" id="home" role="tabpanel">...</div>
  <div class="tab-pane fade" id="profile" role="tabpanel">...</div>
  <div class="tab-pane fade" id="messages" role="tabpanel">...</div>
  <div class="tab-pane fade" id="settings" role="tabpanel">...</div>
</div>

Phương pháp

tab $ ().

Kích hoạt phần tử mục danh sách và vùng chứa nội dung. Tab phải có một data-targethoặc một hrefnhắm mục tiêu một nút vùng chứa trong DOM.

<div class="list-group" id="myList" role="tablist">
  <a class="list-group-item list-group-item-action active" data-toggle="list" href="#home" role="tab">Home</a>
  <a class="list-group-item list-group-item-action" data-toggle="list" href="#profile" role="tab">Profile</a>
  <a class="list-group-item list-group-item-action" data-toggle="list" href="#messages" role="tab">Messages</a>
  <a class="list-group-item list-group-item-action" data-toggle="list" href="#settings" role="tab">Settings</a>
</div>

<div class="tab-content">
  <div class="tab-pane active" id="home" role="tabpanel">...</div>
  <div class="tab-pane" id="profile" role="tabpanel">...</div>
  <div class="tab-pane" id="messages" role="tabpanel">...</div>
  <div class="tab-pane" id="settings" role="tabpanel">...</div>
</div>

<script>
  $(function () {
    $('#myList a:last-child').tab('show')
  })
</script>

.tab ('show')

Chọn mục danh sách đã cho và hiển thị ngăn liên quan của nó. Bất kỳ mục danh sách nào khác đã được chọn trước đó sẽ trở thành không được chọn và ngăn liên kết của nó sẽ bị ẩn. Trả về trình gọi trước khi ngăn tab thực sự được hiển thị (ví dụ: trước khi shown.bs.tabsự kiện xảy ra).

$('#someListItem').tab('show')

Sự kiện

Khi hiển thị một tab mới, các sự kiện sẽ kích hoạt theo thứ tự sau:

  1. hide.bs.tab(trên tab hoạt động hiện tại)
  2. show.bs.tab(trên tab được hiển thị)
  3. hidden.bs.tab(trên tab hoạt động trước đó, tab tương tự như cho hide.bs.tabsự kiện)
  4. shown.bs.tab(trên tab vừa hiển thị mới hoạt động, tab tương tự như cho show.bs.tabsự kiện)

Nếu không có tab nào hoạt động, sự kiện hide.bs.tabhidden.bs.tabsẽ không được kích hoạt.

Loại sự kiện Sự mô tả
show.bs.tab Sự kiện này kích hoạt trên chương trình tab, nhưng trước khi tab mới được hiển thị. Sử dụng event.targetevent.relatedTargetđể nhắm mục tiêu tab đang hoạt động và tab đang hoạt động trước đó (nếu có) tương ứng.
show.bs.tab Sự kiện này kích hoạt trên tab hiển thị sau khi tab được hiển thị. Sử dụng event.targetevent.relatedTargetđể nhắm mục tiêu tab đang hoạt động và tab đang hoạt động trước đó (nếu có) tương ứng.
hide.bs.tab Sự kiện này kích hoạt khi một tab mới được hiển thị (và do đó tab đang hoạt động trước đó sẽ bị ẩn). Sử dụng event.targetevent.relatedTargetđể nhắm mục tiêu tab đang hoạt động hiện tại và tab sắp hoạt động mới, tương ứng.
hidden.bs.tab Sự kiện này kích hoạt sau khi một tab mới được hiển thị (và do đó tab hoạt động trước đó bị ẩn). Sử dụng event.targetevent.relatedTargetđể nhắm mục tiêu tab hoạt động trước đó và tab hoạt động mới, tương ứng.
$('a[data-toggle="list"]').on('shown.bs.tab', function (event) {
  event.target // newly activated tab
  event.relatedTarget // previous active tab
})