Ponieważ treść musi być dynamiczna, możesz ustawić właściwości css modalu dynamicznie w show
przypadku zdarzenia modalnego, co spowoduje zmianę rozmiaru modalu, nadpisując jego domyślne specyfikacje. Powód bycia bootstrapem stosuje maksymalną wysokość do ciała modalnego z regułą css jak poniżej:
.modal-body {
position: relative;
overflow-y: auto;
max-height: 400px;
padding: 15px;
}
Możesz więc dynamicznie dodawać style wbudowane za pomocą css
metody jquery :
W przypadku nowszych wersji programu bootstrap użyj show.bs.modal
$('#modal').on('show.bs.modal', function () {
$(this).find('.modal-body').css({
width:'auto', //probably not needed
height:'auto', //probably not needed
'max-height':'100%'
});
});
W przypadku starszych wersji używaj bootstrap show
$('#modal').on('show', function () {
$(this).find('.modal-body').css({
width:'auto', //probably not needed
height:'auto', //probably not needed
'max-height':'100%'
});
});
lub użyj reguły css, aby zastąpić:
.autoModal.modal .modal-body{
max-height: 100%;
}
i dodaj tę klasę autoModal
do docelowych modali.
Zmieniaj zawartość dynamicznie na skrzypcach, zobaczysz, że modal zostanie odpowiednio zmieniony. Demo
Nowsza wersja bootstrapa zobacz dostępne event names
.
- show.bs.modal To zdarzenie jest wywoływane natychmiast po wywołaniu metody instancji show. Jeśli jest spowodowany kliknięciem, kliknięty element jest dostępny jako właściwość relatedTarget zdarzenia.
- shown.bs.modal To zdarzenie jest wywoływane, gdy modal jest widoczny dla użytkownika (będzie czekał na zakończenie przejść CSS). Jeśli jest spowodowany kliknięciem, kliknięty element jest dostępny jako właściwość relatedTarget zdarzenia.
- hide.bs.modal To zdarzenie jest wywoływane natychmiast po wywołaniu metody hide instance.
- hidden.bs.modal To zdarzenie jest wywoływane po zakończeniu ukrywania modalu przed użytkownikiem (będzie czekał na zakończenie przejść CSS).
- load.bs.modal To zdarzenie jest wywoływane, gdy modal załadował zawartość za pomocą opcji remote.
modal events Obsługiwana jest starsza wersja bootstrapu .
- Show - to zdarzenie jest wywoływane natychmiast po wywołaniu metody wystąpienia show.
- pokazane - to zdarzenie jest uruchamiane, gdy modal jest widoczny dla użytkownika (będzie czekał na zakończenie przejść CSS).
- hide - To zdarzenie jest wywoływane natychmiast po wywołaniu metody hide instance.
- ukryte - to zdarzenie jest wywoływane, gdy modal przestanie być ukrywany przed użytkownikiem (będzie czekał na zakończenie przejść css).
$('#modal').on('show.bs.modal', function () {
getbootstrap.com/javascript/#modals-eventsTo zadziałało dla mnie, żadne z powyższych nie zadziałało.
źródło
Nie mogłem uzyskać odpowiedzi PSL, która działa dla mnie, więc stwierdziłem, że wszystko, co muszę zrobić, to ustawić div przechowujący zawartość modalną
style="display: table;"
. Sama treść modalna mówi, jak duży chce być, a modal to dostosowuje.źródło
Istnieje wiele sposobów, aby to zrobić, jeśli chcesz napisać css, a następnie dodać następujące
W przypadku, gdy chcesz dodać inline
Nie dodawaj
display:table;
do klasy zawartości modalnej. to wykonało twoją pracę, ale ustaw swój modal dla dużego rozmiaru, patrz poniższe zrzuty ekranu. pierwszy obraz jest, jeśli dodasz styl do okna dialogowego modalnego, jeśli dodasz styl do zawartości modalnej. wygląda na usposobioną.źródło
do używania bootstrap 3 jak
źródło
Prosty CSS działa dla mnie
źródło
Po prostu nadpisuję css:
źródło
ustawiony
width:fit-content
na modalnym div.źródło
Możesz to zrobić, jeśli używasz wtyczki okna dialogowego jquery z gijgo.com i ustawisz szerokość na auto.
Możesz także zezwolić użytkownikom na kontrolowanie rozmiaru, jeśli ustawisz resizable na true. Możesz zobaczyć demo na ten temat pod adresem http://gijgo.com/Dialog/Demos/bootstrap-modal-resizable
źródło
Proste rozwiązanie CSS, które wyśrodkuje modalnie w pionie i poziomie:
źródło
Dla Bootstrap 2 Automatyczna dynamiczna regulacja wysokości modelu
źródło
Miałem ten sam problem z bootstrapem 3 i wysokością elementu div modalnego ciała, która nie chciała być większa niż 442px. To wszystko, czego potrzebowałem, by to naprawić w moim przypadku:
źródło
Mine Solution miało po prostu dodać poniższy styl.
<div class="modal-body" style="clear: both;overflow: hidden;">
źródło
Od Bootstrap 4 - ma styl:
więc jeśli chcesz zmienić rozmiar szerokości modalnej na większą, sugerowałbym użycie tego w twoim css na przykład:
Zauważ, że ustawienie
width: 87vw;
nie zastąpi opcji bootstrapmax-width: 500px;
.źródło
Moje poszukiwania doprowadziły mnie tutaj, więc równie dobrze mogę dodać mój pomysł wart dwa centy. Jeśli korzystasz z modalu Monkey Friendly Twitter Bootstrap , możesz zrobić coś takiego:
Mam nadzieję że to pomoże.
źródło