in English

Lista grup

Grupy list są elastycznym i potężnym komponentem do wyświetlania serii treści. Modyfikuj i rozszerzaj je tak, aby obsługiwały niemal dowolną zawartość.

Podstawowy przykład

Najbardziej podstawową grupą list jest lista nieuporządkowana z elementami listy i odpowiednimi klasami. Zbuduj go za pomocą poniższych opcji lub w razie potrzeby za pomocą własnego kodu CSS.

  • Przedmiot
  • Druga pozycja
  • Trzeci element
  • Czwarty element
  • I piąty?
<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>

Aktywne przedmioty

Dodaj .activedo a .list-group-item, aby wskazać aktualnie aktywny wybór.

  • Aktywny przedmiot
  • Druga pozycja
  • Trzeci element
  • Czwarty element
  • I piąty?
<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>

Elementy wyłączone

Dodaj .disableddo a .list-group-item, aby wyglądało na wyłączone. Pamiętaj, że niektóre elementy z użyciem .disabledbędą również wymagać niestandardowego kodu JavaScript, aby całkowicie wyłączyć zdarzenia kliknięcia (np. linki).

  • Wyłączona pozycja
  • Druga pozycja
  • Trzeci element
  • Czwarty element
  • I piąty?
<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>

Użyj <a>s lub <button>s, aby utworzyć aktywne elementy grupy listy ze stanami najechania, wyłączonym i aktywnym, dodając .list-group-item-action. Oddzielamy te pseudoklasy, aby zapewnić, że grupy list składające się z nieinteraktywnych elementów (takich jak <li>s lub <div>s) nie zapewniają afordancji kliknięcia lub dotknięcia.

Upewnij się, że nie używasz tutaj standardowych .btnklas .

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

Dzięki <button>s możesz również użyć disabledatrybutu zamiast .disabledklasy. Niestety <a>s nie obsługują atrybutu wyłączonego.

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

Spłukać

Dodaj .list-group-flush, aby usunąć niektóre obramowania i zaokrąglone rogi, aby wyświetlać elementy grupy listy od krawędzi do krawędzi w kontenerze nadrzędnym (np. karty).

  • Przedmiot
  • Druga pozycja
  • Trzeci element
  • Czwarty element
  • I piąty?
<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>

Poziomy

Dodaj .list-group-horizontal, aby zmienić układ elementów grupy list z pionowego na poziomy we wszystkich punktach przerwania. Możesz też wybrać wariant elastyczny .list-group-horizontal-{sm|md|lg|xl}, aby pozioma grupa list zaczynała się od tego punktu przerwania min-width. Obecnie poziomych grup list nie można łączyć z grupami list wyrównanych.

ProTip: Chcesz, aby elementy grupy listy o równej szerokości były ustawione w pozycji poziomej? Dodaj .flex-filldo każdego elementu grupy listy.

  • Przedmiot
  • Druga pozycja
  • Trzeci element
  • Przedmiot
  • Druga pozycja
  • Trzeci element
  • Przedmiot
  • Druga pozycja
  • Trzeci element
  • Przedmiot
  • Druga pozycja
  • Trzeci element
  • Przedmiot
  • Druga pozycja
  • Trzeci element
<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>

Zajęcia kontekstowe

Użyj klas kontekstowych, aby stylizować elementy listy za pomocą stanowego tła i koloru.

  • Prosta domyślna pozycja grupy listy
  • Prosty element grupy listy podstawowej
  • Prosty element grupy listy wtórnej
  • Prosty element listy sukcesów
  • Prosta pozycja na liście niebezpieczeństw
  • Element grupy prostej listy ostrzeżeń
  • Prosty element grupy listy informacji
  • Prosty element grupy lekkiej listy
  • Prosty element z ciemnej listy
<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>

Klasy kontekstowe działają również z programem .list-group-item-action. Zwróć uwagę na dodanie stylów aktywowania, których nie ma w poprzednim przykładzie. Wspierane jest również .activepaństwo; zastosuj go, aby wskazać aktywny wybór w elemencie grupy kontekstowej listy.

<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>
Nadawanie znaczenia technologiom wspomagającym

Użycie koloru w celu dodania znaczenia zapewnia jedynie wizualne wskazanie, które nie zostanie przekazane użytkownikom technologii wspomagających – takich jak czytniki ekranu. Upewnij się, że informacje oznaczone kolorem są oczywiste z samej treści (np. widoczny tekst) lub są zawarte w inny sposób, np. dodatkowy tekst ukryty z .sr-onlyklasą.

Z odznakami

Dodaj odznaki do dowolnego elementu grupy listy, aby pokazać nieprzeczytane liczby, aktywność i inne elementy za pomocą niektórych narzędzi .

  • Pozycja na liście14
  • Druga pozycja na liście2
  • Trzecia pozycja na liście1
<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>

Treści niestandardowe

Dodaj prawie dowolny kod HTML, nawet dla połączonych grup list, takich jak ta poniżej, za pomocą narzędzi 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>

zachowanie JavaScript

Użyj wtyczki JavaScript karty — dołącz ją pojedynczo lub za pośrednictwem skompilowanego bootstrap.jspliku — aby rozszerzyć naszą grupę list o tworzenie paneli z kartami zawartości lokalnej.

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

Korzystanie z atrybutów danych

Możesz aktywować nawigację po grupach list bez pisania kodu JavaScript, po prostu określając data-toggle="list"lub na elemencie. Użyj tych atrybutów danych na .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>

Przez JavaScript

Włącz element listy z tabelami za pomocą JavaScript (każdy element listy musi być aktywowany osobno):

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

Poszczególne pozycje listy można aktywować na kilka sposobów:

$('#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

Efekt zanikania

Aby panel z zakładkami był widoczny, dodaj .fadedo każdego .tab-pane. Pierwszy panel z zakładkami musi również .showuwidaczniać początkową zawartość.

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

Metody

$().tab

Aktywuje element listy i kontener treści. Karta powinna mieć węzeł kontenera data-targetlub docelowy w DOM.href

<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('pokaż')

Wybiera daną pozycję listy i pokazuje powiązany z nią panel. Każdy inny element listy, który został wcześniej wybrany, zostanie odznaczony, a skojarzone z nim okienko zostanie ukryte. Powraca do wywołującego przed faktycznym wyświetleniem okienka kart (na przykład przed shown.bs.tabwystąpieniem zdarzenia).

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

Wydarzenia

Po wyświetleniu nowej karty zdarzenia są uruchamiane w następującej kolejności:

  1. hide.bs.tab(na aktualnie aktywnej zakładce)
  2. show.bs.tab(w zakładce do pokazania)
  3. hidden.bs.tab(na poprzedniej aktywnej zakładce, taka sama jak dla hide.bs.tabwydarzenia)
  4. shown.bs.tab(na nowo aktywnej właśnie wyświetlonej zakładce, takiej samej jak dla show.bs.tabwydarzenia)

Jeśli żadna karta nie była już aktywna, zdarzenia hide.bs.tabi hidden.bs.tabnie zostaną wywołane.

Typ wydarzenia Opis
show.bs.tab To zdarzenie jest uruchamiane na pokazie zakładek, ale przed pokazaniem nowej zakładki. Użyj event.targeti event.relatedTarget, aby wybrać odpowiednio aktywną kartę i poprzednią aktywną kartę (jeśli jest dostępna).
pokazano.bs.tab To zdarzenie jest uruchamiane na pokazie kart po wyświetleniu karty. Użyj event.targeti event.relatedTarget, aby wybrać odpowiednio aktywną kartę i poprzednią aktywną kartę (jeśli jest dostępna).
ukryj.bs.tab To zdarzenie jest wyzwalane, gdy ma być pokazana nowa zakładka (a tym samym ukryta poprzednia aktywna zakładka). Użyj event.targeti event.relatedTargetdo kierowania odpowiednio na bieżącą aktywną kartę i nową wkrótce aktywną kartę.
ukryta.bs.tab To zdarzenie jest uruchamiane po wyświetleniu nowej karty (a tym samym ukrycie poprzedniej aktywnej karty). Użyj event.targeti event.relatedTargetdo kierowania odpowiednio na poprzednią aktywną kartę i nową aktywną kartę.
$('a[data-toggle="list"]').on('shown.bs.tab', function (event) {
  event.target // newly activated tab
  event.relatedTarget // previous active tab
})