En un acordeón Bootstrap, en lugar de requerir un clic en el a
texto, quiero hacer que se colapse al hacer clic en cualquier parte del panel-heading
div.
Estoy usando Bootstrap 3. Entonces, en lugar de acordeón, es solo un panel plegable. ¿Alguna idea de cómo hacer clic en todo el panel?
Respuestas:
Todo lo que necesitas hacer es usar ...
data-toggle="collapse"
data-target="#ElementToExpandOnClick"
... en el elemento en el que desea hacer clic para activar el efecto de colapso / expansión.
El elemento con
data-toggle="collapse"
será el elemento que activará el efecto. Eldata-target
atributo indica el elemento que se expandirá cuando se active el efecto.Opcionalmente, puede configurar
data-parent
si desea crear un efecto de acordeón en lugar de un colapso independiente, por ejemplo:data-parent="#accordion"
También agregaría el siguiente CSS a los elementos con
data-toggle="collapse"
si no son<a>
etiquetas, por ejemplo:Aquí hay un jsfiddle con el html modificado de la documentación de Bootstrap 3 .
fuente
role="tab button"
y el navegador interpretará el primero de la lista que entienda (muy probablementetab
). Sin embargo, no estoy seguro de cuál de los dos es mejor. Trate de encontrar el significado de los rolestab
ybutton
, y eso le daría la respuesta sobre cuál elegir.Otra forma es
<a>
llenar completamente todo el espacio delpanel-heading
. Use este estilo para hacerlo:Consulte esta demostración ( http://jsfiddle.net/KbQyx/ ).
Luego, cuando hace clic en el encabezado, en realidad está haciendo clic en el
<a>
.fuente
He notado un par de fallas menores en el jsfiddle de Grim.
Para que el puntero cambie a una mano para todo el panel, use:
Eliminé la
<a>
etiqueta (un problema de estilo) y seguídata-toggle="collapse" data-parent="#accordion" data-target="#collapse..."
enpanel-heading
todo momento.He agregado un método CSS para mostrar chevron, usando
font-awesome.css
en mi jsfiddle:http://jsfiddle.net/weaversnap/7FqsX/1/
fuente
panel-heading
apanel-heading collapsed
para arreglar los galones al revés.Aquí hay una solución para Bootstrap4. Solo necesita poner la
card-header
clase en laa
etiqueta. Esta es una modificación de un ejemplo en W3Schools .fuente
La solución simple sería eliminar el relleno
.panel-heading
y agregar a.panel-title a
.Esta solución es similar a la anterior publicada por calfzhou , ligeramente diferente.
fuente
En realidad, mi panel tenía este ícono de flecha de estado de colapso e intenté otras respuestas en esta publicación, pero la posición del ícono cambió, así que aquí está la solución con el ícono de flecha de estado de colapso .
Agregue este CSS personalizado
El crédito va a este post respondedor.
La esperanza ayuda.
fuente
Aquí está el ejemplo de trabajo para Bootstrap 4.3
fuente