110 votes

Comment redimensionner dynamiquement la modale Twitter Bootstrap en fonction du contenu ?

J'ai une base de données qui contient différents types de données, comme des vidéos Youtube, des vidéos Vimeo, du texte, des images Imgur, etc. Tous ces éléments ont des hauteurs et des largeurs différentes. Tout ce que j'ai trouvé en cherchant sur Internet, c'est de changer la taille en un seul paramètre. Il doit être identique au contenu de la fenêtre contextuelle.

Voici mon code HTML. J'utilise également Ajax pour appeler le contenu.

<div id="modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
        <h3 id="ModalLabel"></h3>
    </div>
    <div class="modal-body">

    </div>
</div>

0voto

SudarP Points 477

Pour Bootstrap 2 Auto ajuster la hauteur du modèle dynamiquement

  //Auto adjust modal height on open 
  $('#modal').on('shown',function(){
     var offset = 0;
     $(this).find('.modal-body').attr('style','max-height:'+($(window).height()-offset)+'px !important;');
  });

0voto

Brett Drake Points 191

J'avais le même problème avec bootstrap 3 et la hauteur de la div modal-body qui ne voulait pas être supérieure à 442px. C'était tout le css nécessaire pour le résoudre dans mon cas :

.modal-body {
    overflow-y: auto;
}

0voto

Furquan Points 161

Ma solution était juste d'ajouter du style en dessous. <div class="modal-body" style="clear: both;overflow: hidden;">

0voto

Zulkifil Points 225

À partir de Bootstrap 4 - il a un style de :

@media (min-width: 576px)
.modal-dialog {
    max-width: 500px;
}

donc si vous cherchez à redimensionner l modal width to some-width larger, je vous suggère d'utiliser ceci dans votre css par exemple :

.modal-dialog { max-width: 87vw; }

Note ce cadre width: 87vw; ne remplacera pas l'option max-width: 500px; .

0voto

jpllosa Points 497

Ma recherche m'a conduit ici, alors autant ajouter mes deux cents d'idée. Si vous utilisez Une modale Twitter Bootstrap adaptée aux singes alors vous pouvez faire quelque chose comme ça :

    var dialog = new BootstrapDialog({
        id: 'myDialog',
        title: 'Title',
        closable: false,
        // whatever you like configuration here...
    });

    dialog.realize();
    if (isContentAYoutubeVideo()) {
        dialog.getModalDialog().css('width', '80%'); // set the width to whatever you like
    }
    dialog.open();

J'espère que cela vous aidera.

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