Mam następujący element:
<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>
Pokazuje takie okno dialogowe, w zasadzie umieszcza pasek przewijania wokół całego modal-dialog
i nie modal-body
zawiera treści, które próbuję wyświetlić.
Obraz wygląda mniej więcej tak:
Jak ustawić modal-body
tylko pasek przewijania dookoła ?
Próbowałem przypisać style="overflow-y: scroll; max-height:85%; margin-top: 50px; margin-bottom:50px;"
do, modal-body
ale to nie zadziałało.
css
twitter-bootstrap
Subodh Nijsure
źródło
źródło
Odpowiedzi:
Trzeba ustawić
height
z.modal-body
wi daćoverflow-y: auto
. Zresetuj również.modal-dialog
wartość przepełnienia doinitial
.Zobacz próbkę roboczą:
http://www.bootply.com/T0yF2ZNTUd
źródło
initial
słowo kluczowe CSS nie działa w przeglądarce Internet Explorer, chociaż działa w Edge.max-height: 80vh;
80% całkowitej wysokości widocznego obszaru i tylko dla maksymalnej wysokości, a nie wtedy to małe okienkoJeśli obsługujesz tylko przeglądarkę IE 9 lub nowszą, możesz użyć tego CSS, który będzie płynnie skalował się do rozmiaru okna. W zależności od wysokości nagłówka lub stopki może być jednak konieczne dostosowanie „200px”.
źródło
Problem rozwiązany za pomocą rozwiązania łączącego @carlos calla i @jonathan marston.
źródło
Dla wersji Bootstrap> = 4.3
Bootstrap 4.3 dodał nową wbudowaną funkcję przewijania do modali. To sprawia, że przewijana jest tylko treść modalna, jeśli rozmiar treści spowodowałby przewijanie strony. Aby go użyć, po prostu dodaj klasę modal-dialog-scrollable do tego samego elementu div, który ma klasę modal-dialog .
Oto przykład:
źródło
Dodając do wspaniałej odpowiedzi Carlosa Calli .
Wysokość .modal-body musi być ustawiona, ALE możesz użyć zapytań o media, aby upewnić się, że jest ona odpowiednia dla rozmiaru ekranu.
źródło
Opcjonalnie : jeśli nie chcesz, aby modal przekraczał wysokość okna i użyj paska przewijania w .modal-body, możesz użyć tego elastycznego rozwiązania. Zobacz działające demo tutaj: http://codepen.io/dimbslmh/full/mKfCc/
źródło
Wiem, że to stary temat, ale może pomóc komuś innemu.
Udało mi się sprawić, że treść przewija się, naprawiając pozycję elementu dialogowego modalnego. A ponieważ nigdy nie poznałbym dokładnej wysokości okna przeglądarki, wziąłem informacje, których byłem pewien, wysokość nagłówka i stopki. Byłem wtedy w stanie dopasować górny i dolny margines elementu ciała modalnego do tych wysokości. To przyniosło rezultat, którego szukałem. Rzuciłem razem skrzypce, aby pokazać swoją pracę.
także, jeśli chcesz mieć pełnoekranowe okno dialogowe, po prostu odznacz szerokość: auto; wewnątrz sekcji .modal-dialog.full-screen.
https://jsfiddle.net/lot224/znrktLej/
A oto css, którego użyłem do zmodyfikowania okna dialogowego ładowania początkowego.
źródło
Lub, prościej, możesz najpierw umieścić między tagami, a następnie do klasy css.
źródło
Używając
max-height
withvh
jako jednostki wmodal-body
lub wrapper div wewnątrzmodal-body
. Spowoduje to automatyczną zmianę wysokościmodal-body
lub zawijanego elementu div (w tym przykładzie), gdy użytkownik zmieni rozmiar okna.vh
to jednostka długości reprezentująca 1% wielkości rzutni dla wysokości rzutni.Tabela zgodności przeglądarki dla
vh
urządzenia.Przykład: https://jsfiddle.net/q3xwr53f/
źródło
To, co zadziałało, to ustawienie wysokości na 100%, mając nadzieję, że przepełnienie na auto pomoże
źródło
Proste rozwiązanie js pozwalające ustawić wysokość modalną proporcjonalną do wzrostu ciała:
wysokość ciała musi wynosić 100%:
Ustawiłem modalną wysokość ciała na 80% ciała, można to oczywiście dostosować.
Mam nadzieję, że to pomoże.
źródło
W najnowszej wersji bootstrap jest klasa umożliwiająca przewijanie ciała modalnego.
.modal-dialog- scrollable do .modal-dialog .
Link modalny Bootstrap dla treści przewijalnej w treści modalnej
źródło