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ść.
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.
- Cras justo odio
- Dapibus ac facilisis in
- Morbi leo risus
- Porta ac consectetur ac
- Przedsionek w erosie
<ul class="list-group">
<li class="list-group-item">Cras justo odio</li>
<li class="list-group-item">Dapibus ac facilisis in</li>
<li class="list-group-item">Morbi leo risus</li>
<li class="list-group-item">Porta ac consectetur ac</li>
<li class="list-group-item">Vestibulum at eros</li>
</ul>
Dodaj .active
do a .list-group-item
, aby wskazać aktualnie aktywny wybór.
- Cras justo odio
- Dapibus ac facilisis in
- Morbi leo risus
- Porta ac consectetur ac
- Przedsionek w erosie
<ul class="list-group">
<li class="list-group-item active">Cras justo odio</li>
<li class="list-group-item">Dapibus ac facilisis in</li>
<li class="list-group-item">Morbi leo risus</li>
<li class="list-group-item">Porta ac consectetur ac</li>
<li class="list-group-item">Vestibulum at eros</li>
</ul>
Dodaj .disabled
do a .list-group-item
, aby wyglądało na wyłączone. Pamiętaj, że niektóre elementy z użyciem .disabled
będą również wymagać niestandardowego kodu JavaScript, aby całkowicie wyłączyć zdarzenia kliknięcia (np. linki).
- Cras justo odio
- Dapibus ac facilisis in
- Morbi leo risus
- Porta ac consectetur ac
- Przedsionek w erosie
<ul class="list-group">
<li class="list-group-item disabled">Cras justo odio</li>
<li class="list-group-item">Dapibus ac facilisis in</li>
<li class="list-group-item">Morbi leo risus</li>
<li class="list-group-item">Porta ac consectetur ac</li>
<li class="list-group-item">Vestibulum at eros</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 .btn
klas .
<div class="list-group">
<a href="#" class="list-group-item list-group-item-action active">
Cras justo odio
</a>
<a href="#" class="list-group-item list-group-item-action">Dapibus ac facilisis in</a>
<a href="#" class="list-group-item list-group-item-action">Morbi leo risus</a>
<a href="#" class="list-group-item list-group-item-action">Porta ac consectetur ac</a>
<a href="#" class="list-group-item list-group-item-action disabled">Vestibulum at eros</a>
</div>
Dzięki <button>
s możesz również użyć disabled
atrybutu zamiast .disabled
klasy. 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">
Cras justo odio
</button>
<button type="button" class="list-group-item list-group-item-action">Dapibus ac facilisis in</button>
<button type="button" class="list-group-item list-group-item-action">Morbi leo risus</button>
<button type="button" class="list-group-item list-group-item-action">Porta ac consectetur ac</button>
<button type="button" class="list-group-item list-group-item-action" disabled>Vestibulum at eros</button>
</div>
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).
- Cras justo odio
- Dapibus ac facilisis in
- Morbi leo risus
- Porta ac consectetur ac
- Przedsionek w erosie
<ul class="list-group list-group-flush">
<li class="list-group-item">Cras justo odio</li>
<li class="list-group-item">Dapibus ac facilisis in</li>
<li class="list-group-item">Morbi leo risus</li>
<li class="list-group-item">Porta ac consectetur ac</li>
<li class="list-group-item">Vestibulum at eros</li>
</ul>
Użyj klas kontekstowych, aby stylizować elementy listy za pomocą stanowego tła i koloru.
- Dapibus ac facilisis in
- 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">Dapibus ac facilisis in</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ż .active
pań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">Dapibus ac facilisis in</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-only
klasą.
Dodaj odznaki do dowolnego elementu grupy listy, aby pokazać nieprzeczytane liczby, aktywność i inne elementy za pomocą niektórych narzędzi .
- Cras justo odio14
- Dapibus ac facilisis in2
- Morbi leo risus1
<ul class="list-group">
<li class="list-group-item d-flex justify-content-between align-items-center">
Cras justo odio
<span class="badge badge-primary badge-pill">14</span>
</li>
<li class="list-group-item d-flex justify-content-between align-items-center">
Dapibus ac facilisis in
<span class="badge badge-primary badge-pill">2</span>
</li>
<li class="list-group-item d-flex justify-content-between align-items-center">
Morbi leo risus
<span class="badge badge-primary badge-pill">1</span>
</li>
</ul>
Dodaj prawie dowolny kod HTML, nawet dla połączonych grup list, takich jak ta poniżej, za pomocą narzędzi Flexbox .
Lista nagłówka elementu grupy
3 dni temuDonec id elit non mi porta gravida at eget metus. Mecenas sed diam eget risus varius blandit.
Donec id elit non mi porta.Lista nagłówka elementu grupy
3 dni temuDonec id elit non mi porta gravida at eget metus. Mecenas sed diam eget risus varius blandit.
Donec id elit non mi porta.Lista nagłówka elementu grupy
3 dni temuDonec id elit non mi porta gravida at eget metus. Mecenas sed diam eget risus varius blandit.
Donec id elit non mi porta.<div class="list-group">
<a href="#" class="list-group-item list-group-item-action flex-column align-items-start 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">Donec id elit non mi porta gravida at eget metus. Maecenas sed diam eget risus varius blandit.</p>
<small>Donec id elit non mi porta.</small>
</a>
<a href="#" class="list-group-item list-group-item-action flex-column align-items-start">
<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">Donec id elit non mi porta gravida at eget metus. Maecenas sed diam eget risus varius blandit.</p>
<small class="text-muted">Donec id elit non mi porta.</small>
</a>
<a href="#" class="list-group-item list-group-item-action flex-column align-items-start">
<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">Donec id elit non mi porta gravida at eget metus. Maecenas sed diam eget risus varius blandit.</p>
<small class="text-muted">Donec id elit non mi porta.</small>
</a>
</div>
Użyj wtyczki JavaScript karty — dołącz ją pojedynczo lub za pośrednictwem skompilowanego bootstrap.js
pliku — 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>
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
.
<!-- 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>
Włącz element listy z tabelami za pomocą JavaScript (każdy element listy musi być aktywowany osobno):
$('#myList a').on('click', function (e) {
e.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
Aby panel z zakładkami był widoczny, dodaj .fade
do każdego .tab-pane
. Pierwszy panel z zakładkami musi również .show
uwidaczniać 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>
Aktywuje element listy i kontener treści. Karta powinna mieć węzeł kontenera data-target
lub 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>
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.tab
wystąpieniem zdarzenia).
$('#someListItem').tab('show')
Po wyświetleniu nowej karty zdarzenia są uruchamiane w następującej kolejności:
hide.bs.tab
(na aktualnie aktywnej zakładce)show.bs.tab
(w zakładce do pokazania)hidden.bs.tab
(na poprzedniej aktywnej zakładce, taka sama jak dlahide.bs.tab
wydarzenia)shown.bs.tab
(na nowo aktywnej właśnie wyświetlonej zakładce, takiej samej jak dlashow.bs.tab
wydarzenia)
Jeśli żadna karta nie była już aktywna, zdarzenia hide.bs.tab
i hidden.bs.tab
nie 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.target i 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.target i 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.target i event.relatedTarget do 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.target i event.relatedTarget do kierowania odpowiednio na poprzednią aktywną kartę i nową aktywną kartę. |
$('a[data-toggle="list"]').on('shown.bs.tab', function (e) {
e.target // newly activated tab
e.relatedTarget // previous active tab
})