156 votes

Augmenter la taille de la modale pour Twitter Bootstrap

J'essaie de modifier la taille du formulaire modal ou plutôt de faire en sorte qu'il réagisse au contenu que j'y affiche. Je l'utilise pour rendre un formulaire et je préférerais gérer moi-même le défilement si nécessaire.

Le formulaire que je rends a probablement besoin de 50px supplémentaires - il ne manque que les boutons.

J'ai essayé de remplacer les styles .modal dans mon fichier application.css.scss (avec Rails 3.2) mais les déclinaisons max-height et overflow semblent être écrasées.

Des idées ?

0 votes

J'ai la même question... chrome dit que la propriété height est acceptée (je n'ai pas la ligne du milieu comme propriétés écrasées) mais la hauteur calculée reste la même.

0 votes

Je pense ce pourrait aider.

116voto

user698585 Points 3019

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 n'apparaissent que dans la section du corps de la boîte de dialogue modale, cela signifie que la hauteur maximale du corps uniquement doit être ajustée.

14 votes

Définir la hauteur maximale pour le corps de la modale n'est pas suffisant, car le bas de la modale pourrait être poussé hors de l'écran. J'ai eu du succès avec : .modal { top:5% ; bottom:5% ; } .modal-body { max-height:100% ; height:85% ; }

2 votes

J'ai dû utiliser height : 800px au lieu de max-height : 800px pour que cela fonctionne.

34voto

Mentok Points 346

dans Bootstrap 3 :

.modal-dialog{
  width:whatever
}

0 votes

étant donné la date à laquelle la question a été posée, je ne pense pas que TB3 ait été un problème. Mais, dans tous les cas, merci pour le conseil, c'est vraiment utile !

2 votes

Pour clarifier, si vous souhaitez uniquement définir la taille d'une modale spécifique, vous pouvez le faire : #modal_ID .modal-dialog { width: 800px }

22voto

Leon Revill Points 611

Vous devez vous assurer qu'il se trouve sur l'élément #myModal .modal-body et pas seulement sur #myModal (quelques personnes font cette erreur) et vous pouvez également tenir compte du changement de hauteur en modifiant les marges de la modale.

19voto

Chris Paton Points 174

L'utilisation de la nouvelle mesure CSS3 "vh" (ou "vw" pour la largeur) (qui définit la hauteur comme une fraction du port d'affichage) :

.modal-body {
    max-height: 80vh; //Sets the height to 80/100ths of the viewport.
}

Ainsi, si vous utilisez un cadre réactif, comme Bootstrap, vous pouvez également conserver ce design dans vos fenêtres modales.

8voto

pr.nizar Points 155

En mélangeant deux méthodes pour la largeur et la hauteur, vous obtenez un bon hack :

CSS :

#myModal .modal-body {max-height: 800px;}

JQuery :

$('myModal').modal('toggle').css({'width': '800px','margin-left': function () {return -($(this).width() / 2);}})

C'est celui-là que j'utilise. Il résout les problèmes de marge et de barres de défilement pour la largeur et la hauteur, mais il ne redimensionne pas la modale pour l'adapter à son contenu.

J'espère avoir été utile !

0 votes

J'ai essayé de faire fonctionner le JQuery mais je n'ai pas eu de chance. Pouvez-vous m'aider ? Où dois-je utiliser JQuery ?

0 votes

max-height sur la modale fera disparaître la moitié inférieure qui n'est pas déroulable. (comme @mcabral l'a suggéré)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X