Tengo el siguiente elemento:
<div class="modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog" style="overflow-y: scroll; max-height:85%; margin-top: 50px; margin-bottom:50px;" >
<div class="modal-content">
<div class="modal-header">
<h3 class="modal-title"></h3>
</div>
<div class="modal-body"></div>
<div class="modal-footer"></div>
</div>
</div>
</div>
Muestra un cuadro de diálogo modal como este, básicamente, coloca una barra de desplazamiento alrededor de todo modal-dialog
y no modal-body
el contenido que estoy tratando de mostrar.
La imagen se ve así:
¿Cómo consigo solo una barra de desplazamiento modal-body
?
He intentado asignar style="overflow-y: scroll; max-height:85%; margin-top: 50px; margin-bottom:50px;"
a modal-body
, pero no funcionó.
css
twitter-bootstrap
Subodh Nijsure
fuente
fuente
Respuestas:
Usted tiene que fijar el
height
de la.modal-body
de y darleoverflow-y: auto
. También restablezca el.modal-dialog
valor de desbordamiento ainitial
.Ver la muestra de trabajo:
http://www.bootply.com/T0yF2ZNTUd
fuente
initial
palabra clave de CSS no funciona para Internet Explorer, aunque sí funciona para Edge.max-height: 80vh;
eso es el 80% de la altura total de la ventana gráfica y solo para la altura máxima, no si es una pequeña ventana emergenteSi solo es compatible con IE 9 o superior, puede usar este CSS que se escalará sin problemas al tamaño de la ventana. Sin embargo, es posible que necesite ajustar el "200px", dependiendo de la altura de su encabezado o pie de página.
fuente
Problema resuelto con la solución combinada @carlos calla y @jonathan marston.
fuente
Para versiones de Bootstrap> = 4.3
Bootstrap 4.3 agregó una nueva función de desplazamiento incorporada a los modales. Esto solo hace que el contenido del cuerpo modal se desplace si el tamaño del contenido haría que la página se desplazara. Para usarlo, simplemente agregue la clase modal-dialog-scrollable al mismo div que tiene el modal-dialog clase .
Aquí hay un ejemplo:
fuente
Agregando a la gran respuesta de Carlos Calla .
Se debe establecer la altura de .modal-body, PERO puede usar consultas de medios para asegurarse de que sea apropiado para el tamaño de la pantalla.
fuente
Opcional : si no desea que el modal exceda la altura de la ventana y use una barra de desplazamiento en el .modal-body, puede usar esta solución receptiva. Vea una demostración de trabajo aquí: http://codepen.io/dimbslmh/full/mKfCc/
fuente
Sé que este es un tema antiguo, pero puede ayudar a alguien más.
Pude hacer que el cuerpo se desplace haciendo que la posición del elemento de diálogo modal fuera fija. Y como nunca sabría la altura exacta de la ventana del navegador, tomé la información de la que estaba seguro, la altura del encabezado y el pie de página. Luego pude hacer que los márgenes superior e inferior del elemento modal-body coincidan con esas alturas. Esto produjo el resultado que estaba buscando. Lancé un violín para mostrar mi trabajo.
Además, si desea un cuadro de diálogo de pantalla completa, simplemente descomente el ancho: auto; dentro de la sección .modal-dialog.full-screen.
https://jsfiddle.net/lot224/znrktLej/
Y aquí está el CSS que utilicé para modificar el diálogo de arranque.
fuente
O más simple, puede poner entre sus etiquetas primero, luego a la clase css.
fuente
Utilizando
max-height
convh
como la unidad en lamodal-body
o una envoltura div dentro de lamodal-body
. Esto cambiará el tamaño de la alturamodal-body
o del div de ajuste (en este ejemplo) automáticamente cuando un usuario cambie el tamaño de la ventana.vh
es la unidad de longitud que representa el 1% del tamaño de la vista para la altura de la vista.Tabla de compatibilidad del navegador para la
vh
unidad.Ejemplo: https://jsfiddle.net/q3xwr53f/
fuente
Lo que funcionó para mí es establecer la altura al 100% al tener el desbordamiento automático, espero que esto ayude
fuente
Una solución js simple para establecer la altura modal proporcional a la altura del cuerpo:
la altura del cuerpo debe ser del 100%:
Establezco la altura modal del cuerpo al 80% del cuerpo, por supuesto, esto se puede personalizar.
Espero eso ayude.
fuente
En la última versión de bootstrap hay una clase para hacer que el cuerpo modal se pueda desplazar.
.modal-dialog-scrollable a .modal-dialog .
Enlace modal de Bootstrap para contenido desplazable del cuerpo modal
fuente