Bootstrap
Tutorial Bootstrap: Modales y ventanas emergentes
Bootstrap CSS 5.3: Aprende a crear y personalizar modales y ventanas emergentes utilizando HTML, CSS y JavaScript en tus proyectos web. Pasos sencillos y claros.
Aprende Bootstrap GRATIS y certifícate¿Qué es un modal en Bootstrap y para qué sirve?
Un modal en Bootstrap es un componente de interfaz de usuario que se presenta como una ventana emergente sobre el contenido principal de la página. Este componente es utilizado para mostrar contenido adicional sin navegar fuera de la página actual. Los modales son útiles para una variedad de casos de uso, como formularios de inicio de sesión, confirmaciones de acciones, galerías de imágenes, y más.
Los modales en Bootstrap se implementan utilizando una combinación de HTML, CSS y JavaScript. El componente se puede configurar y personalizar mediante clases específicas y atributos de datos proporcionados por Bootstrap. A continuación se detallan algunas de las características principales de los modales:
- Estructura HTML: Un modal típicamente incluye un contenedor
.modal
, un contenedor.modal-dialog
, un contenedor.modal-content
, y elementos opcionales como.modal-header
,.modal-body
, y.modal-footer
. - Atributos de datos: Bootstrap permite activar modales utilizando atributos de datos como
data-bs-toggle="modal"
ydata-bs-target="#exampleModal"
. - JavaScript: Bootstrap utiliza JavaScript para manejar la lógica del modal, incluyendo la apertura y el cierre del mismo. Esto se puede hacer de manera nativa utilizando JavaScript o mediante el uso de jQuery.
Ejemplo básico de un modal en Bootstrap:
<!-- Botón para abrir el modal -->
<button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#miModal">
Abrir modal
</button>
<!-- Estructura del modal -->
<div class="modal fade" id="miModal" tabindex="-1" aria-labelledby="miModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-body">
Contenido del modal...
</div>
</div>
</div>
</div>
En este ejemplo, el botón con la clase .btn-primary
y los atributos data-bs-toggle="modal"
y data-bs-target="#exampleModal"
se utiliza para abrir el modal. La estructura del modal incluye un contenedor .modal
, que contiene .modal-dialog
, y dentro de este, el .modal-content
. El encabezado, el cuerpo y el pie del modal están definidos por las clases .modal-header
, .modal-body
, y .modal-footer
respectivamente.
Los modales en Bootstrap también pueden ser configurados para tener diferentes tamaños (.modal-sm
, .modal-lg
, .modal-xl
) y se pueden hacer desplazables si el contenido es muy largo (.modal-dialog-scrollable
). Además, se pueden personalizar con estilos CSS adicionales o mediante la utilización de JavaScript para manejar eventos específicos como la apertura, el cierre, y la interacción con el contenido del modal.
Componentes Bootstrap de un modal y su contenido en Bootstrap
Un modal en Bootstrap está compuesto por varios elementos clave que se organizan en una estructura específica para asegurar su correcto funcionamiento y apariencia. A continuación, se detallan los componentes principales que conforman un modal en Bootstrap y cómo se utilizan para estructurar su contenido.
Contenedor .modal: Este es el contenedor principal que envuelve todo el contenido del modal. La clase .modal
asegura que el modal se comporte y se vea de acuerdo con los estilos y comportamientos predeterminados de Bootstrap. Este contenedor también debe incluir el atributo tabindex="-1"
para gestionar el foco del teclado y los atributos aria-labelledby
y aria-hidden
para la accesibilidad.
Contenedor .modal-dialog: Dentro del contenedor .modal
, se encuentra el contenedor .modal-dialog
, que define el área visible del modal. Este contenedor puede ser modificado con clases adicionales para ajustar su tamaño (.modal-sm
, .modal-lg
, .modal-xl
) y para hacerlo desplazable (.modal-dialog-scrollable
).
Contenedor .modal-content: Este es el contenedor que alberga el contenido real del modal, incluyendo el encabezado, el cuerpo y el pie. La clase .modal-content
aplica estilos y comportamientos específicos al contenido del modal.
Encabezado del modal .modal-header: El encabezado del modal, definido por la clase .modal-header
, generalmente contiene el título del modal y un botón de cierre. El botón de cierre utiliza la clase .btn-close
y el atributo data-bs-dismiss="modal"
para permitir a los usuarios cerrar el modal.
Título del modal .modal-title: Dentro del encabezado, el título del modal se define utilizando la clase .modal-title
. Este elemento es típicamente un h5
o h4
y su contenido describe brevemente el propósito del modal.
Cuerpo del modal .modal-body: El cuerpo del modal, definido por la clase .modal-body
, contiene el contenido principal del modal. Este puede incluir texto, formularios, imágenes, o cualquier otro tipo de contenido HTML.
Pie del modal .modal-footer: El pie del modal, definido por la clase .modal-footer
, generalmente contiene botones de acción, como botones de guardar o cancelar. Estos botones permiten a los usuarios realizar acciones específicas o cerrar el modal.
Ejemplo de código de un modal con todos estos componentes:
<!-- Botón para abrir el modal -->
<button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#exampleModal">
Abrir modal
</button>
<!-- Estructura del modal -->
<div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Título del modal</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
Contenido del modal...
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cerrar</button>
<button type="button" class="btn btn-primary">Guardar cambios</button>
</div>
</div>
</div>
</div>
En este ejemplo, el botón con la clase .btn-primary
y los atributos data-bs-toggle="modal"
y data-bs-target="#exampleModal"
se utiliza para abrir el modal. La estructura del modal incluye un contenedor .modal
, que contiene .modal-dialog
, y dentro de este, el .modal-content
. El encabezado, el cuerpo y el pie del modal están definidos por las clases .modal-header
, .modal-body
, y .modal-footer
respectivamente.
Los modales en Bootstrap también pueden ser configurados para tener diferentes tamaños (.modal-sm
, .modal-lg
, .modal-xl
) y se pueden hacer desplazables si el contenido es muy largo (.modal-dialog-scrollable
). Además, se pueden personalizar con estilos CSS adicionales o mediante la utilización de JavaScript para manejar eventos específicos como la apertura, el cierre, y la interacción con el contenido del modal.
Configuraciones adicionales como la animación de apertura y cierre del modal se gestionan mediante las clases fade
y show
. La clase fade
añade una transición de opacidad suave, mientras que la clase show
se añade dinámicamente cuando el modal se muestra.
Ejemplo de un modal con desplazamiento y tamaño grande:
<!-- Botón para abrir el modal -->
<button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#largeScrollableModal">
Abrir modal grande y desplazable
</button>
<!-- Estructura del modal -->
<div class="modal fade" id="largeScrollableModal" tabindex="-1" aria-labelledby="largeScrollableModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg modal-dialog-scrollable">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="largeScrollableModalLabel">Título del modal grande y desplazable</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
Contenido largo del modal...
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cerrar</button>
<button type="button" class="btn btn-primary">Guardar cambios</button>
</div>
</div>
</div>
</div>
Este ejemplo muestra cómo se puede configurar un modal grande y desplazable utilizando las clases modal-lg
y modal-dialog-scrollable
. El contenido del cuerpo puede ser extenso, y el modal permitirá el desplazamiento dentro del área visible.
Lanzar un modal en Bootstrap
Para lanzar un modal en Bootstrap, se pueden utilizar tanto atributos de datos en el HTML como métodos de JavaScript. A continuación, se describen ambas técnicas de manera detallada.
Usando atributos de datos
La forma más sencilla de lanzar un modal es mediante el uso de atributos de datos en el HTML. Esto implica añadir los atributos data-bs-toggle="modal"
y data-bs-target="#idDelModal"
al elemento que activará el modal, como un botón o un enlace.
Ejemplo de código:
<!-- Botón para abrir el modal -->
<button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#miModal">
Abrir modal
</button>
<!-- Estructura del modal -->
<div class="modal fade" id="miModal" tabindex="-1" aria-labelledby="miModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="miModalLabel">Título del modal</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
Contenido del modal...
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cerrar</button>
<button type="button" class="btn btn-primary">Guardar cambios</button>
</div>
</div>
</div>
</div>
En este ejemplo, al hacer clic en el botón con la clase .btn-primary
, se abrirá el modal identificado por #miModal
.
Usando JavaScript
También es posible controlar la apertura y el cierre de un modal mediante JavaScript. Bootstrap proporciona una API JavaScript para este propósito, con métodos como .modal('show')
y .modal('hide')
.
Ejemplo de código:
<!-- Botón para abrir el modal -->
<button type="button" class="btn btn-primary" id="abrirModal">
Abrir modal
</button>
<!-- Estructura del modal -->
<div class="modal fade" id="miModalJS" tabindex="-1" aria-labelledby="miModalJSLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="miModalJSLabel">Título del modal</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
Contenido del modal...
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cerrar</button>
<button type="button" class="btn btn-primary">Guardar cambios</button>
</div>
</div>
</div>
</div>
<!-- Script para controlar el modal con JavaScript -->
<script>
document.getElementById('abrirModal').addEventListener('click', function () {
var miModal = new bootstrap.Modal(document.getElementById('miModalJS'));
miModal.show();
});
</script>
En este ejemplo, se utiliza un evento click
en el botón con el ID abrirModal
para crear una instancia del modal y mostrarlo mediante el método show()
.
Métodos adicionales de la API de JavaScript
Bootstrap incluye varios métodos adicionales para trabajar con modales mediante JavaScript:
- show: muestra el modal.
- hide: oculta el modal.
- toggle: alterna entre mostrar y ocultar el modal.
- handleUpdate: ajusta el modal si el contenido cambia dinámicamente.
Ejemplo de uso de varios métodos:
<!-- Botones para controlar el modal -->
<button type="button" class="btn btn-primary" id="mostrarModal">Mostrar modal</button>
<button type="button" class="btn btn-secondary" id="ocultarModal">Ocultar modal</button>
<button type="button" class="btn btn-info" id="alternarModal">Alternar modal</button>
<!-- Estructura del modal -->
<div class="modal fade" id="miModalControlado" tabindex="-1" aria-labelledby="miModalControladoLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="miModalControladoLabel">Título del modal</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
Contenido del modal...
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cerrar</button>
<button type="button" class="btn btn-primary">Guardar cambios</button>
</div>
</div>
</div>
</div>
<!-- Script para controlar el modal con JavaScript -->
<script>
var miModalControlado = new bootstrap.Modal(document.getElementById('miModalControlado'));
document.getElementById('mostrarModal').addEventListener('click', function () {
miModalControlado.show();
});
document.getElementById('ocultarModal').addEventListener('click', function () {
miModalControlado.hide();
});
document.getElementById('alternarModal').addEventListener('click', function () {
miModalControlado.toggle();
});
</script>
En este ejemplo, se crean tres botones que utilizan los métodos show()
, hide()
y toggle()
para controlar la visibilidad del modal.
Estas técnicas permiten lanzar y controlar modales en Bootstrap de manera flexible y eficiente, adaptándose a diferentes necesidades y escenarios.
Ejercicios de esta lección Modales y ventanas emergentes
Evalúa tus conocimientos de esta lección Modales y ventanas emergentes con nuestros retos de programación de tipo Test, Puzzle, Código y Proyecto con VSCode, guiados por IA.
Listado y formulario de productos en Bootstrap CSS
Utilidades de colores y fondo
Instalación de Bootstrap
Página web completa con Bootstrap
Tipografía y fuentes en Bootstrap
Clases de utilidad
Flexbox en Bootstrap
Utilidades de espaciado y alineación
Conocimiento general de Bootstrap
Conocimiento general de Bootstrap
Fundamentos del sistema de grid de Bootstrap
Imágenes responsive en Bootstrap
Proyecto blog de artículos con Bootstrap CSS
Introducción a Bootstrap
Formularios y validación
Modales y ventanas emergentes
Navbars y menús de navegación en Bootstrap
Componentes de Bootstrap
Todas las lecciones de Bootstrap
Accede a todas las lecciones de Bootstrap y aprende con ejemplos prácticos de código y ejercicios de programación con IDE web sin instalar nada.
Introducción A Bootstrap Css
Introducción Y Entorno
Instalación De Bootstrap Css
Introducción Y Entorno
Tipografía Y Fuentes En Bootstrap
Fundamentos Y Layout
Imágenes Responsive En Bootstrap
Fundamentos Y Layout
Fundamentos Del Sistema De Grid De Bootstrap
Fundamentos Y Layout
Flexbox En Bootstrap
Fundamentos Y Layout
Componentes De Bootstrap
Componentes
Navbars Y Menús De Navegación En Bootstrap
Componentes
Formularios Y Validación
Componentes
Modales Y Ventanas Emergentes
Componentes
Clases De Utilidad
Utilidades Y Helpers
Utilidades De Espaciado Y Alineación
Utilidades Y Helpers
Utilidades De Colores Y Fondo
Utilidades Y Helpers
Conocimiento General De Bootstrap
Evaluación
Conocimiento General De Bootstrap
Evaluación
Certificados de superación de Bootstrap
Supera todos los ejercicios de programación del curso de Bootstrap y obtén certificados de superación para mejorar tu currículum y tu empleabilidad.
En esta lección
Objetivos de aprendizaje de esta lección
- Comprender qué es un modal en Bootstrap y sus casos de uso.
- Implementar la estructura HTML básica de un modal en Bootstrap.
- Utilizar atributos de datos para lanzar modales.
- Manejar modales mediante la API de JavaScript de Bootstrap.
- Personalizar tamaños y estilos de modales.
- Incorporar accesibilidad en la creación de modales.
- Aplicar configuraciones avanzadas como deslizamiento de contenido y animaciones.