J'ai l'élément suivant:
<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>
Il montre un dialogue modal quelque chose comme ça, en gros, il met la barre de défilement tout autour modal-dialog
et non pas modal-body
qui contient le contenu que j'essaie d'afficher.
L'image ressemble à ceci:
Comment obtenir une barre de défilement modal-body
uniquement?
J'ai essayé attribuer style="overflow-y: scroll; max-height:85%; margin-top: 50px; margin-bottom:50px;"
à modal-body
mais cela n'a pas fonctionné.
css
twitter-bootstrap
Subodh Nijsure
la source
la source
Réponses:
Vous devez régler le
height
de l'.modal-body
entrée et le donneroverflow-y: auto
. Réinitialisez également la valeur de.modal-dialog
dépassement surinitial
.Voir l'exemple de travail:
http://www.bootply.com/T0yF2ZNTUd
la source
initial
mot - clé CSS ne fonctionne pas pour Internet Explorer, bien qu'il fonctionne pour Edge.max-height: 80vh;
80% de la hauteur totale de la fenêtre et uniquement pour la hauteur maximale, pas si elle est un petit popupSi vous ne supportez que IE 9 ou supérieur, vous pouvez utiliser ce CSS qui s'adapte facilement à la taille de la fenêtre. Vous devrez peut-être modifier le "200px" cependant, en fonction de la hauteur de votre en-tête ou pied de page.
la source
Problème résolu avec la solution combinée @carlos calla et @jonathan marston.
la source
Pour les versions Bootstrap> = 4.3
Bootstrap 4.3 a ajouté une nouvelle fonction de défilement intégrée aux modaux. Cela fait uniquement défiler le contenu du corps modal si la taille du contenu ferait autrement défiler la page. Pour l'utiliser, ajoutez simplement la classe modal-dialog-scrollable au même div qui a la classe modal-dialog .
Voici un exemple:
la source
En plus de la bonne réponse de Carlos Calla .
La hauteur de .modal-body doit être définie, MAIS vous pouvez utiliser des requêtes multimédias pour vous assurer qu'il convient à la taille de l'écran.
la source
Facultatif : si vous ne voulez pas que le modal dépasse la hauteur de la fenêtre et utilise une barre de défilement dans le corps .modal, vous pouvez utiliser cette solution réactive. Voir une démo fonctionnelle ici: http://codepen.io/dimbslmh/full/mKfCc/
la source
Je sais que c'est un vieux sujet, mais cela peut aider quelqu'un d'autre.
J'ai pu faire défiler le corps en fixant la position de l'élément de dialogue modal. Et comme je ne saurais jamais la hauteur exacte de la fenêtre du navigateur, j'ai pris les informations dont j'étais sûr, la hauteur de l'en-tête et du pied de page. J'ai ensuite pu faire correspondre les marges supérieure et inférieure de l'élément modal-body à ces hauteurs. Cela a alors produit le résultat que je recherchais. J'ai jeté un violon pour montrer mon travail.
aussi, si vous voulez une boîte de dialogue plein écran, annulez simplement la largeur: auto; dans la section .modal-dialog.full-screen.
https://jsfiddle.net/lot224/znrktLej/
Et voici le css que j'ai utilisé pour modifier la boîte de dialogue de bootstrap.
la source
Ou plus simplement, vous pouvez mettre entre vos balises d'abord, puis dans la classe css.
la source
Utilisation
max-height
avecvh
comme unité sur lemodal-body
ou un div d'emballage à l'intérieur dumodal-body
. Cela redimensionneramodal-body
automatiquement la hauteur ou le div d'habillage (dans cet exemple) lorsqu'un utilisateur redimensionnera la fenêtre.vh
est l'unité de longueur représentant 1% de la taille de la fenêtre pour la hauteur de la fenêtre.Tableau de compatibilité du navigateur pour l'
vh
unité.Exemple: https://jsfiddle.net/q3xwr53f/
la source
Ce qui a fonctionné pour moi, c'est de régler la hauteur à 100%, le dépassement automatique en espérant que cela aidera
la source
Une solution js simple pour définir la hauteur modale proportionnelle à la hauteur du corps:
la hauteur du corps doit être de 100%:
Je règle la hauteur modale du corps à 80% du corps, cela peut bien sûr être personnalisé.
J'espère que ça aide.
la source
Dans la dernière version de bootstrap, il existe une classe pour rendre le corps modal défilable.
.modal-dialog-scrollable vers .modal-dialog .
Lien modal Bootstrap pour le contenu défilable du corps modal
la source