Em um acordeão Bootstrap, em vez de exigir um clique no a
texto, quero fazê-lo colapsar ao clicar em qualquer lugar dopanel-heading
div.
Estou usando o Bootstrap 3. Então, em vez de acordeão, é apenas um painel desmontável. Alguma idéia de como fazer com que todo o painel seja clicável?
Respostas:
Tudo que você precisa fazer é usar ...
data-toggle="collapse"
data-target="#ElementToExpandOnClick"
... no elemento em que você deseja clicar para acionar o efeito de recolher / expandir.
O elemento com
data-toggle="collapse"
será o elemento para acionar o efeito. Odata-target
atributo indica o elemento que será expandido quando o efeito for acionado.Opcionalmente, você pode definir
data-parent
se deseja criar um efeito acordeão em vez de dobrável independente, por exemplo:data-parent="#accordion"
Eu também adicionaria o seguinte CSS aos elementos com
data-toggle="collapse"
se eles não forem<a>
tags, por exemplo:Aqui está um jsfiddle com o html modificado da documentação do Bootstrap 3 .
fonte
role="tab button"
e o navegador interpretará o primeiro da lista que ele entende (provavelmentetab
). No entanto, não tenho certeza de qual dos dois é melhor. Tente encontrar o significado dastab
ebutton
papéis e que lhe daria a resposta a respeito de que para escolher.Outra maneira é fazer com que você
<a>
preencha todo o espaço dopanel-heading
. Use este estilo para fazer isso:Verifique esta demonstração ( http://jsfiddle.net/KbQyx/ ).
Então, quando você clica no cabeçalho, na verdade está clicando no
<a>
.fonte
Notei algumas falhas menores no violino de Grim.
Para fazer com que o ponteiro mude para uma mão durante todo o painel, use:
Eu removi a
<a>
tag (um problema de estilo) e continueidata-toggle="collapse" data-parent="#accordion" data-target="#collapse..."
porpanel-heading
toda parte.Adicionei um método CSS para exibir chevron, usando
font-awesome.css
no meu jsfiddle:http://jsfiddle.net/weaversnap/7FqsX/1/
fonte
panel-heading
parapanel-heading collapsed
para corrigir as divisas de cabeça para baixo.Aqui está uma solução para o Bootstrap4. Você só precisa colocar a
card-header
classe naa
tag. Isso é modificado a partir de um exemplo no W3Schools .fonte
A solução simples seria remover o preenchimento
.panel-heading
e adicionar a.panel-title a
.Essa solução é semelhante à postada acima por calfzhou , um pouco diferente.
fonte
Na verdade, meu painel tinha esse ícone de seta de estado de recolhimento e tentei outras respostas neste post, mas a posição do ícone mudou, então aqui está a solução com o ícone de seta de estado de recolhimento .
Adicione este CSS personalizado
O crédito vai para este respondente de postagem.
A esperança ajuda.
fonte
Aqui está o exemplo de trabalho para o Bootstrap 4.3
fonte