Componente web personalizado que permite crear grupos de acordeones con funcionalidad de expansión y colapso, con la opción de mantener solo un acordeón abierto a la vez o permitir múltiples acordeones abiertos simultáneamente.
HTML (HyperText Markup Language) es el lenguaje de marcado estándar para crear páginas web. Describe la estructura de una página web mediante elementos que le indican al navegador cómo mostrar el contenido.
CSS (Cascading Style Sheets) es un lenguaje de hojas de estilo utilizado para describir la presentación de un documento escrito en HTML. CSS describe cómo deben mostrarse los elementos HTML.
JavaScript es un lenguaje de programación que permite implementar funcionalidades complejas en páginas web. Cada vez que una página web hace más que simplemente mostrar información estática, es probable que JavaScript esté involucrado.
<!-- Importar el componente -->
<script src="accordions-component/index.js"></script>
<link rel="stylesheet" href="accordions-component/index.css">
<!-- Implementación básica con apertura única -->
<accordions-component data-open-one-by-one>
<details class="accordion" data-accordion open>
<summary class="accordion-trigger" data-accordion-trigger>
<span class="accordion-title">¿Qué es HTML?</span>
<div class="accordion-asset-wrapper">
<svg>...</svg>
</div>
</summary>
<div class="accordion-content" data-accordion-content>
<p>HTML (HyperText Markup Language) es...</p>
</div>
</details>
<details class="accordion" data-accordion>
<!-- Más acordeones aquí -->
</details>
</accordions-component>
<!-- data-open-one-by-one: Solo permite abrir un acordeón a la vez -->
<accordions-component data-open-one-by-one>...</accordions-component>
<!-- open: Establece que el acordeón esté abierto inicialmente -->
<details class="accordion" data-accordion open>...</details>
Esta es la introducción al curso de desarrollo web. Aquí encontrarás información básica sobre los temas que se cubrirán durante todo el programa de estudios.
En esta sección aprenderás los conceptos básicos de desarrollo web y cómo funcionan las tecnologías web modernas. También veremos las herramientas que necesitarás para comenzar tu viaje como desarrollador web.
En esta sección se abordan los conceptos fundamentales que debes conocer para el desarrollo web:
Esta sección cubre temas avanzados para usuarios con experiencia previa en desarrollo web:
En este ejemplo, puedes abrir múltiples acordeones simultáneamente, ya que no se ha especificado el atributo data-open-one-by-one
.
<!-- Implementación con múltiple apertura -->
<accordions-component>
<details class="accordion" data-accordion open>
<summary class="accordion-trigger" data-accordion-trigger>
<span class="accordion-title">Sección 1: Introducción</span>
<div class="accordion-asset-wrapper">
<svg>...</svg>
</div>
</summary>
<div class="accordion-content" data-accordion-content>
<p>Esta es la introducción al curso...</p>
</div>
</details>
<!-- Más acordeones aquí -->
</accordions-component>
// Obtener referencia al componente
const accordions = document.querySelector('accordions-component');
// Cerrar todos los acordeones
accordions.closeAllAccordions();
// Abrir un acordeón específico mediante JavaScript
const secondAccordion = accordions.querySelectorAll('[data-accordion]')[1];
secondAccordion.open = true;
Ofrecemos diferentes planes adaptados a tus necesidades, desde versiones gratuitas hasta planes empresariales con soporte dedicado.
Encuentra respuestas a las preguntas más comunes sobre nuestros productos y servicios.
Puedes contactarnos a través de nuestro formulario en línea o llamando al número de atención al cliente.
Nos encontramos en la ciudad de Barcelona, España. Visita nuestra oficina en horario de 9:00 a 18:00 de lunes a viernes.
/* Estilo Moderno */
.accordion-modern {
--accordion-border: none;
background-color: rgba(76, 175, 80, 0.1);
border-radius: 8px !important;
margin-bottom: 10px;
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}
.accordion-modern .accordion-trigger {
padding: 15px 20px;
border-radius: 8px;
background-color: rgba(76, 175, 80, 0.2);
}
.accordion-modern .accordion-content {
padding: 0 20px 20px;
}
/* Estilo con Bordes */
.accordion-bordered {
--accordion-border: 2px solid #4caf50;
border-radius: 4px !important;
margin-bottom: 15px;
}
.accordion-bordered .accordion-trigger {
padding: 12px 15px;
background-color: rgba(76, 175, 80, 0.1);
}
/* Estilo Minimalista */
.accordion-minimal {
--accordion-border: none;
background-color: transparent;
border-bottom: 1px solid rgba(76, 175, 80, 0.3);
border-radius: 0 !important;
}
.accordion-minimal .accordion-trigger {
padding: 15px 0;
}
.accordion-minimal .accordion-content {
padding: 0 0 15px;
}
<details class="accordion accordion-modern" data-accordion>
<summary class="accordion-trigger" data-accordion-trigger>
<span class="accordion-title">Planes y precios</span>
<div class="accordion-asset-wrapper">
<svg>...</svg>
</div>
</summary>
<div class="accordion-content" data-accordion-content>
<p>Contenido del acordeón...</p>
</div>
</details>
Esta sección contiene las opciones principales del menú. Cada opción te llevará a una sección diferente de la aplicación.
Aquí puedes modificar todas las configuraciones de la aplicación, incluyendo ajustes de perfil, notificaciones y preferencias de visualización.
Sección de ayuda y soporte técnico. Aquí encontrarás tutoriales, guías y la información de contacto con nuestro equipo de soporte.
// Obtener referencia al componente
const jsAccordions = document.getElementById('js-accordions');
const statusElement = document.getElementById('accordion-status');
// Obtener todos los acordeones
const accordionItems = jsAccordions.querySelectorAll('[data-accordion]');
// Abrir el primer acordeón
document.getElementById('open-first-js').addEventListener('click', () => {
accordionItems[0].open = true;
updateStatus();
});
// Abrir el segundo acordeón
document.getElementById('open-second-js').addEventListener('click', () => {
accordionItems[1].open = true;
updateStatus();
});
// Abrir el tercer acordeón
document.getElementById('open-third-js').addEventListener('click', () => {
accordionItems[2].open = true;
updateStatus();
});
// Cerrar todos los acordeones
document.getElementById('close-all-js').addEventListener('click', () => {
jsAccordions.closeAllAccordions();
updateStatus();
});
// Actualizar el estado mostrado
function updateStatus() {
const openAccordions = [...accordionItems]
.filter(item => item.open)
.map((item, index) => `Acordeón ${index + 1}`);
statusElement.textContent = openAccordions.length
? `Estado: Abierto(s): ${openAccordions.join(', ')}`
: 'Estado: Ningún acordeón abierto';
}
// Escuchar cambios en los acordeones
accordionItems.forEach((item, index) => {
item.addEventListener('toggle', () => {
updateStatus();
});
});
// Métodos disponibles en el componente accordions-component:
// Cerrar todos los acordeones
accordionsComponent.closeAllAccordions();
// Manipular acordeones individuales
const accordionElement = accordionsComponent.querySelector('[data-accordion]');
accordionElement.open = true; // Abrir un acordeón
accordionElement.open = false; // Cerrar un acordeón