Grupo de lista
Grupos de listas são componentes flexíveis e poderosos para mostrar vários conteúdos. Modifique e aprimore-o para suportar quase qualquer conteúdo.
Exemplo básico
O grupo de lista mais básico é uma <ul>
com <li>
e algumas classes específicas. Desenvolva com as opções a seguir ou com seu próprio CSS, dependendo da sua necessidade.
- Cras justo odio
- Dapibus ac facilisis in
- Morbi leo risus
- Porta ac consectetur ac
- Vestibulum at eros
<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>
Itens ativos
Use .active
em um .list-group-item
para indicar a seleção ativa, no momento.
- Cras justo odio
- Dapibus ac facilisis in
- Morbi leo risus
- Porta ac consectetur ac
- Vestibulum at eros
<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>
Itens desativados
Use .disabled
em um .list-group-item
para fazê-lo ter aparência desativada. Perceba que alguns elementos com .disabled
vão precisar de JavaScript customizado para desativar seus eventos de clique, totalmente (ex: links).
- Cras justo odio
- Dapibus ac facilisis in
- Morbi leo risus
- Porta ac consectetur ac
- Vestibulum at eros
<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>
Links e botões
Use <a>
ou <button>
para criar itens do grupo de lista acionáveis com estados hover, disabled e active, adicionando .list-group-item-action
. Nós separamos estas pseudo-classes, para assegurar que grupos de listas feitos com elementos não interativos (tipo <li>
ou <div>
) não permitam insinuações de clique ou toque.
Se assegure de não usar as classes .btn
padrões, aqui.
<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>
Com <button>
, você também pode fazer uso do atributo disabled
, invés da classe .disabled
. Infelizmente, elementos <a>
não suportam o atributo disabled.
<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>
Flush
Use .list-group-flush
para remover algumas bordas e cantos arredondados para renderizar itens do grupo de lista, de ponta-a-ponta, em um container pai.
- Cras justo odio
- Dapibus ac facilisis in
- Morbi leo risus
- Porta ac consectetur ac
- Vestibulum at eros
<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>
Classes contextuais
Use classes contextuais para estilizar itens da lista com belos caracteres e cor de fundo.
- Dapibus ac facilisis in
- Um simples item primary do grupo de lista
- Um simples item secondary do grupo de lista
- Um simples item success do grupo de lista
- Um simples item danger do grupo de lista
- Um simples item warning do grupo de lista
- Um simples item info do grupo de lista
- Um simples item light do grupo de lista
- Um simples item dark do grupo de lista
<ul class="list-group">
<li class="list-group-item">Dapibus ac facilisis in</li>
<li class="list-group-item list-group-item-primary">Um simples item primary do grupo de lista</li>
<li class="list-group-item list-group-item-secondary">Um simples item secondary do grupo de lista</li>
<li class="list-group-item list-group-item-success">Um simples item success do grupo de lista</li>
<li class="list-group-item list-group-item-danger">Um simples item danger do grupo de lista</li>
<li class="list-group-item list-group-item-warning">Um simples item warning do grupo de lista</li>
<li class="list-group-item list-group-item-info">Um simples item info do grupo de lista</li>
<li class="list-group-item list-group-item-light">Um simples item light do grupo de lista</li>
<li class="list-group-item list-group-item-dark">Um simples item dark do grupo de lista</li>
</ul>
Classes contextuais também funcionam com .list-group-item-action
. Perceba a presença dos estilos hover, os quais não estavam no presentes no exemplo anterior. O estado .active
também é suportado, bastando aplicá-lo para indicar uma seleção ativa em um item do grupo de lista.
<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">Um simples item primary do grupo de lista</a>
<a href="#" class="list-group-item list-group-item-action list-group-item-secondary">Um simples item secondary do grupo de lista</a>
<a href="#" class="list-group-item list-group-item-action list-group-item-success">Um simples item success do grupo de lista</a>
<a href="#" class="list-group-item list-group-item-action list-group-item-danger">Um simples item danger do grupo de lista</a>
<a href="#" class="list-group-item list-group-item-action list-group-item-warning">Um simples item warning do grupo de lista</a>
<a href="#" class="list-group-item list-group-item-action list-group-item-info">Um simples item info do grupo de lista</a>
<a href="#" class="list-group-item list-group-item-action list-group-item-light">Um simples item light do grupo de lista</a>
<a href="#" class="list-group-item list-group-item-action list-group-item-dark">Um simples item dark do grupo de lista</a>
</div>
Transmitindo significado a tecnologias assistivas
Usando cor para adicionar significado só fornece uma indicação visual, a qual não será transmitida para usuários de tecnologias assistivas (como leitores de telas). Se assegure que a informação denotada pela cor é tanto destacada do conteúdo (ex: o texto visível) ou está incluída em meios alternativos, como textos extras escondidos com a classe .sr-class
.
Usando badges
Coloque badges em qualquer item do grupo de lista para exibir contadores, atividade e muito mais, com ajuda de alguns utilitários.
- Cras alemanha odio 7
- Dapibus ac facilisis in x
- Morbi brasil risus 1
<ul class="list-group">
<li class="list-group-item d-flex justify-content-between align-items-center">
Cras alemanha odio
<span class="badge badge-primary badge-pill">7</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">x</span>
</li>
<li class="list-group-item d-flex justify-content-between align-items-center">
Morbi brasil risus
<span class="badge badge-primary badge-pill">1</span>
</li>
</ul>
Conteúdo customizado
Coloque quase qualquer HTML dentro, mesmo em grupos de listas linkados, como o mostrado abaixo, com ajuda de utilitários flexbox.
Cabeçalho do item
3 dias atrásDonec id elit non mi porta gravida at eget metus. Maecenas sed diam eget risus varius blandit.
Donec id elit non mi porta.Cabeçalho do item
3 dias atrásDonec id elit non mi porta gravida at eget metus. Maecenas sed diam eget risus varius blandit.
Donec id elit non mi porta.Cabeçalho do item
3 dias atrásDonec id elit non mi porta gravida at eget metus. Maecenas 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">Cabeçalho do item</h5>
<small>3 dias atrás</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">Cabeçalho do item</h5>
<small class="text-muted">3 dias atrás</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">Cabeçalho do item</h5>
<small class="text-muted">3 dias atrás</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>
Comportamento JavaScript
Use o plugin JavaScript tab (inclua-o, individualmente, ou usando o arquivo compilado bootstrap.js
) para aprimorar nosso grupo de lista para criar paineis de abas de conteúdo local.
<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="#lista-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">Perfil</a>
<a class="list-group-item list-group-item-action" id="list-messages-list" data-toggle="list" href="#lista-mensagens" role="tab" aria-controls="messages">Mensagens</a>
<a class="list-group-item list-group-item-action" id="list-settings-list" data-toggle="list" href="#lista-configuracoes" role="tab" aria-controls="settings">Configurações</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>
via atributos data
Você pode ativar uma nevegação do grupo de lista, sem escrever qualquer JavaScript, simplesmente, especificando data-toggle="list"
em um elemento. Use estes atributos data em um .list-group-item
.
<!-- Grupo de lista -->
<div class="list-group" id="minhaLista" 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="#perfil" role="tab">Perfil</a>
<a class="list-group-item list-group-item-action" data-toggle="list" href="#mensagens" role="tab">Mensagens</a>
<a class="list-group-item list-group-item-action" data-toggle="list" href="#configuracoes" role="tab">Configurações</a>
</div>
<!-- Painel de abas -->
<div class="tab-content">
<div class="tab-pane active" id="home" role="tabpanel">...</div>
<div class="tab-pane" id="perfil" role="tabpanel">...</div>
<div class="tab-pane" id="mensagens" role="tabpanel">...</div>
<div class="tab-pane" id="configuracoes" role="tabpanel">...</div>
</div>
Via JavaScript
Ative uma aba item de lista, via JavaScript (cada item de lista precisa ser ativado, individualmente):
$('#minhaLista a').on('click', function (e) {
e.preventDefault()
$(this).tab('show')
})
Você pode ativar itens de listas individuais, em diversas maneiras:
$('#minhaLista a[href="#perfil"]').tab('show') // Selecione pelo ID da tag
$('#minhaLista a:first-child').tab('show') // Seleciona primeira aba
$('#minhaLista a:last-child').tab('show') // Seleciona última aba
$('#minhaLista a:nth-child(3)').tab('show') // Seleciona terceira aba
Efeito fade
Para fazer o painel de abas receber o efeito fade in, use .fade
em cada .tab-pane
. A primeira aba também deve receber .show
, para fazer o conteúdo inicial visível.
<div class="tab-content">
<div class="tab-pane fade show active" id="home" role="tabpanel">...</div>
<div class="tab-pane fade" id="perfil" role="tabpanel">...</div>
<div class="tab-pane fade" id="mensagens" role="tabpanel">...</div>
<div class="tab-pane fade" id="configuracoes" role="tabpanel">...</div>
</div>
Métodos
$().tab
Ativa um item de lista e o container de conteúdo. Abas devem ter um data-target
ou um href
remetendo a um container, no DOM.
<div class="list-group" id="minhaLista" 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="#perfil" role="tab">Perfil</a>
<a class="list-group-item list-group-item-action" data-toggle="list" href="#mensagens" role="tab">Mensagens</a>
<a class="list-group-item list-group-item-action" data-toggle="list" href="#configuracoes" role="tab">Configurações</a>
</div>
<div class="tab-content">
<div class="tab-pane active" id="home" role="tabpanel">...</div>
<div class="tab-pane" id="perfil" role="tabpanel">...</div>
<div class="tab-pane" id="mensagens" role="tabpanel">...</div>
<div class="tab-pane" id="configuracoes" role="tabpanel">...</div>
</div>
<script>
$(function () {
$('#minhaLista a:last-child').tab('show')
})
</script>
.tab(‘show’)
Seleciona o item de lista específico e mostra o painel associado a ele. Qualquer outro item de lista que foi, anteriormente selecionado, se torna não selecionado e seu painel associado se esconde. Retorna ao invocador, antes do painel de abas ser exibido, de fato (antes do evento shown.bs.tab
ocorrer, por exemplo).
$('#algumListItem').tab('show')
Eventos
Quando mostrando uma nova aba, os eventos se acionam na seguinte ordem:
hide.bs.tab
(na aba ativa, no momento)show.bs.tab
(na aba que está para ser exibida)hidden.bs.tab
(na aba ativa anteriormente, a mesma do eventohide.bs.tab
)shown.bs.tab
(na aba recém ativa, a mesma do eventoshow.bs.tab
)
Se nenhuma aba já foi ativada, os eventos hide.bs.tab
e hidden.bs.tab
não serão mostrados.
Tipo de evento | Descrição |
---|---|
show.bs.tab | Este evento é acionado na exibição de aba, mas antes da nova aba ser exibida. Use event.target e event.relatedTarget para atingir a aba ativa e a aba anteriormente ativa, respectivamente. |
shown.bs.tab | Este evento é acionado na exibição de aba, depois da aba ser mostrada. Use event.target e event.relatedTarget para atingir a aba ativa e a aba anteriormente ativa, respectivamente. |
hide.bs.tab | Este evento é acionado quando uma nova aba está para ser exibida e a aba anterior está para ser oculta. Use event.target e event.relatedTarget para atingir a aba ativa, no momento, e a próxima aba que está para ser ativa, respectivamente. |
hidden.bs.tab | Este evento é acionado depois de uma nova aba ser exibida e a aba ativada anteriormente estar escondida. Use event.target e event.relatedTarget para atingir a aba ativa anteriormente e a nova aba ativa, respectivamente. |
$('a[data-toggle="list"]').on('shown.bs.tab', function (e) {
e.target // Aba recém ativa
e.relatedTarget // Aba ativa anteriorment
})