J'essaie de changer la taille de la forme modale ou plutôt - de la faire répondre au contenu que je présente ici. Je l'utilise pour rendre un formulaire et je préférerais m'occuper du défilement si nécessaire.
Le formulaire que je rends nécessite probablement un autre 50 pixels - il manque juste les boutons.
J'ai donc essayé de remplacer les styles .modal dans mon fichier application.css.scss (à l'aide de Rails 3.2) mais les décélérations de hauteur maximale et de débordement semblent être remplacées.
Des pensées?
J'avais exactement le même problème, vous pouvez essayer:
.modal-body {
max-height: 800px;
}
Si vous remarquez que les barres de défilement apparaissent uniquement dans la section corps de la boîte de dialogue modale, cela signifie que la hauteur maximale du corps seul doit être ajustée.
dans Bootstrap 3:
.modal-dialog{
width:whatever
}
Vous devez vous assurer qu'il est sur l'élément #myModal .modal-body et pas seulement #myModal (quelques personnes commettent cette erreur) et vous pouvez également vous adapter au changement de hauteur en modifiant les marges des modaux.
En utilisant la nouvelle mesure CSS3 'vh' (ou 'vw' pour la largeur) (qui définit la hauteur comme une fraction du port de vue), utilisez:
.modal-body {
max-height: 80vh; //Sets the height to 80/100ths of the viewport.
}
Ainsi, si vous utilisez un framework responsive, tel que Bootstrap, vous pouvez également conserver cette conception dans vos modaux.
Mélangez deux méthodes pour la largeur et la hauteur et vous aurez un bon bidouillage:
CSS:
#myModal .modal-body {max-height: 800px;}
JQuery:
$('myModal').modal('toggle').css({'width': '800px','margin-left': function () {return -($(this).width() / 2);}})
Celui-ci est celui que j'utilise. Il corrige les problèmes de marge et de barre de défilement pour la largeur et la hauteur, mais il ne redimensionnera pas le modal pour l'adapter à son contenu.
J'espère avoir été utile!
Utilisation d'une classe CSS (vous pouvez également remplacer le style - non suggéré):
(html)
<div class="modal-body custom-height-modal" >
(css)
.custom-height-modal {
height: 400px;
}
J'ai eu la réponse ... le problème est que vous avez écrasé l'attribut max-height et amorcer le modal pouvant être redimensionné au-delà de la limite de hauteur de 500px
Il suffit de définir la hauteur ".modal-body": 100%, il ajustera automatiquement la hauteur en fonction de votre contenu et mettra "hauteur maximale" selon votre écran ...
Avez-vous essayé le paramètre de taille:
return $modal.open({
backdrop: 'static',
size: 'sm',
templateUrl: "app/views/dialogs/error.html",
controller: "errorDialogCtrl",
Tailles en option
Les modaux ont deux tailles optionnelles, disponibles via des classes de modificateurs pour être placées dans un dialogue .modal.
Si vous voulez quelque chose de différent, mettez à jour le fichier bootstarp.css
@media (min-width: 768px) {
.modal-dialog {
width: 600px;
margin: 30px auto;
}
.modal-content {
-webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5);
box-shadow: 0 5px 15px rgba(0, 0, 0, .5);
}
.modal-sm {
width: 300px;
}
.modal-xy { // custom
width: xxxpx;
}
}
@media (min-width: 992px) {
.modal-lg {
width: 900px;
}
}
Pour Boostrap> 4, cela a fonctionné pour moi:
.modal-content{
width: 1200px;
}
une version plus avancée:
body .modal-content{
width: 160%!important;
margin-left: -30%!important;
}
voici un codepen:
Cela a fonctionné pour moi:
#modal1 .modal
{
overflow-y: hidden;
}
#modal1 .modal-dialog
{
height: 100%;
overflow-y: hidden;
}
Notez que dans mon cas, j'ai des modaux imbriqués, chacun ayant des contrôles qui requièrent des hauteurs différentes lorsque je bascule l'affichage du contrôle à l'intérieur du modal imbriqué, de sorte que je ne pouvais pas appliquer le max-height, au lieu de hauteur: 100% fonctionne bien pour moi.
N'oubliez pas les classes d'amorçage optionnelles modal-lg
et modal-sm
si vous souhaitez rester dans la structure responsive. Et ajoutez un correctif au-dessous de votre formulaire, cela peut aider en fonction de votre structure.
En supposant que votre modal ait un identifiant de modal1
, le code CSS suivant augmenterait la hauteur du modal et afficherait tout débordement.
#modal1 .modal-body{
max-height: 700px;
overflow: visible;
}
Essayé quelques-uns de ce qui précède comme besoin de définir des tailles spécifiques de largeur et de hauteur (pour afficher une image dans un modal) et comme aucun des moyens ci-dessus ne m’a aidé, j’ai décidé de remplacer les styles et d’ajouter ce qui suit au <div> principal qui a class = "modal masquer le fondu masqué" dedans: c'est-à-dire ajouté une largeur à la balise de style pour l'arrière-plan du modal.
style="display: none; width:645px;"
puis ajouté les balises 'style' suivantes au corps-modal:
<div class="modal-body" style="height:540px; max-height:540px; width:630px; max-width:630px;">
fonctionne comme un charme maintenant, j'affiche une image et maintenant cela correspond parfaitement.
Bootstrap Large modal
<div class="modal-dialog modal-lg">
Bootstrap Petit modal
<div class="modal-dialog modal-sm">
J'essayais récemment ceci et je l'ai bien compris: J'espère que cela vous sera utile
.modal .modal-body{
height: 400px;
}
Cela ajustera la hauteur de votre modèle.