Acordeón accesible y adaptable con transiciones CSS3
| Autor: | mwitty |
|---|---|
| Views Total: | 3,661 |
| Sitio oficial: | Ir a la web |
| Actualizado: | September 22, 2015 |
| Licencia: | MIT |
Vista prévia
Descripción
Un acordeón CSS puro, receptivo y accesible que utiliza transiciones CSS3 para animaciones suaves de apertura/cierre. Utiliza casillas de verificación + etiqueta o radio + etiquetas hacks para alternar los paneles de acordeón, dependiendo de si uno o varios paneles pueden estar abiertos al mismo tiempo.
¿Cómo funciona?
Crear un acordeón usando HTML lista desordenada y el hack casilla de verificación. Esto significa que se pueden abrir múltiples paneles de acordeón al mismo tiempo.
<ul class="accordion css-accordion"> <li class="accordion-item"> <input class="accordion-item-input" type="checkbox" name="accordion" id="item1" /> <label for="item1" class="accordion-item-hd">Accordion Heading 1<span class="accordion-item-hd-cta">▲</span></label> <div class="accordion-item-bd">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ex consequuntur architecto maxime, saepe repudiandae quidem quisquam aliquam cumque possimus inventore, deserunt nostrum, explicabo modi voluptatibus sed, labore quaerat. Accusamus, officiis. </div> </li> <li class="accordion-item"> <input class="accordion-item-input" type="checkbox" name="accordion" id="item2" /> <label for="item2" class="accordion-item-hd">Accordion Heading 2<span class="accordion-item-hd-cta">▲</span></label> <div class="accordion-item-bd">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ex consequuntur architecto maxime, saepe repudiandae quidem quisquam aliquam cumque possimus inventore, deserunt nostrum, explicabo modi voluptatibus sed, labore quaerat. Accusamus, officiis. </div> </li> <li class="accordion-item"> <input class="accordion-item-input" type="checkbox" name="accordion" id="item3" /> <label for="item3" class="accordion-item-hd">Accordion Heading 3<span class="accordion-item-hd-cta">▲</span></label> <div class="accordion-item-bd">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ex consequuntur architecto maxime, saepe repudiandae quidem quisquam aliquam cumque possimus inventore, deserunt nostrum, explicabo modi voluptatibus sed, labore quaerat. Accusamus, officiis. </div> </li> </ul>
Los estilos CSS/CSS3 requeridos.
.accordion {
border: 1px solid white;
padding: 0 10px;
margin: 0 auto;
list-style: none outside;
}
.accordion > * + * { border-top: 1px solid white; }
.accordion-item-hd {
display: block;
padding: 15px 30px 15px 0;
position: relative;
cursor: pointer;
font-size: 18px;
font-weight: bold;
}
.accordion-item-input:checked ~ .accordion-item-bd {
max-height: 1000px;
padding-top: 15px;
margin-bottom: 15px;
-webkit-transition: max-height 1s ease-in, margin .3s ease-in, padding .3s ease-in;
transition: max-height 1s ease-in, margin .3s ease-in, padding .3s ease-in;
}
.accordion-item-input:checked ~ .accordion-item-hd > .accordion-item-hd-cta {
-webkit-transform: rotate(0);
-ms-transform: rotate(0);
transform: rotate(0);
}
.accordion-item-hd-cta {
display: block;
width: 30px;
position: absolute;
top: calc(50% - 6px );
right: 0;
pointer-events: none;
-webkit-transition: -webkit-transform .3s ease;
transition: transform .3s ease;
-webkit-transform: rotate(-180deg);
-ms-transform: rotate(-180deg);
transform: rotate(-180deg);
text-align: center;
font-size: 12px;
line-height: 1;
}
.accordion-item-bd {
max-height: 0;
margin-bottom: 0;
overflow: hidden;
-webkit-transition: max-height .15s ease-out, margin-bottom .3s ease-out, padding .3s ease-out;
transition: max-height .15s ease-out, margin-bottom .3s ease-out, padding .3s ease-out;
}
.accordion-item-input {
clip: rect(0 0 0 0);
width: 1px;
height: 1px;
margin: -1;
overflow: hidden;
position: absolute;
left: -9999px;
}





