У меня есть контент базы данных, который имеет разные типы данных, такие как видео Youtube, видео Vimeo, текст, изображения Imgur и т.д. Все они имеют разную высоту и ширину. Все, что я нашел при поиске в Интернете, меняет размер только на один параметр. Он должен быть таким же, как и содержимое всплывающего окна.
Это мой HTML-код. Я также использую Ajax для вызова содержимого.
<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>
Поскольку ваш контент должен быть динамическим, вы можете быстро установить свойства css модальности в событии show
модальности, которое изменит размер модальности, переопределяя его спецификации по умолчанию. Причина бутстрапа применяет максимальную высоту к модальному телу с помощью правила css, как показано ниже:
.modal-body {
position: relative;
overflow-y: auto;
max-height: 400px;
padding: 15px;
}
Таким образом, вы можете добавлять встроенные стили динамически с помощью метода jquery css
:
Для более новых версий загрузки используйте 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%'
});
});
Для более старых версий загрузки используйте show
$('#modal').on('show', function () {
$(this).find('.modal-body').css({
width:'auto', //probably not needed
height:'auto', //probably not needed
'max-height':'100%'
});
});
или используйте правило css для переопределения:
.autoModal.modal .modal-body{
max-height: 100%;
}
и добавьте этот класс autoModal
к вашим целевым модалам.
Измените содержимое динамически в скрипте, вы увидите, что модальное изменение размера будет соответствующим образом изменено. Демо
Более новая версия бутстрапа увидит доступную event names
.
Поддерживается старая версия загрузочного модальных событий.
Это сработало для меня, ничего из этого не было.
.modal-dialog{
position: relative;
display: table; /* This is important */
overflow-y: auto;
overflow-x: auto;
width: auto;
min-width: 300px;
}
Я не мог получить ответ PSL для меня, поэтому я нашел все, что мне нужно сделать, это установить div, содержащий модальный контент с помощью style="display: table;"
. Сам модальный контент говорит, насколько он хочет быть, и модальный вмещает его.
для бутстрапа 3 используйте как
$('#myModal').on('hidden.bs.modal', function () {
// do something…
})
Существует много способов сделать это, если вы хотите написать css и добавить следующий
.modal-dialog{
display: table
}
Если вы хотите добавить встроенный
<div class="modal-dialog" style="display:table;">
//enter code here
</div>
Не добавляйте display:table;
в класс модального контента. это сделало вашу работу, но выложите свой модальный размер для большого размера, следуя скриншотам.
Первое изображение - если вы добавляете стиль в модальный диалог
если вы добавите стиль в модальный контент. он выглядит условно.
Простые Css работают для меня
.modal-dialog {
max-width : 100% ;
}
Это можно сделать, если вы используете плагин jquery dialog из gijgo.com и задаете ширину для автоматического.
$("#dialog").dialog({
uiLibrary: 'bootstrap',
width: 'auto'
});
<html>
<head>
<script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
<link href="http://code.gijgo.com/1.0.0/css/gijgo.css" rel="stylesheet" type="text/css">
<script src="http://code.gijgo.com/1.0.0/js/gijgo.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="dialog" title="Wikipedia">
<img src="https://upload.wikimedia.org/wikipedia/en/thumb/8/80/Wikipedia-logo-v2.svg/1122px-Wikipedia-logo-v2.svg.png" width="320"/>
</div>
</body>
</html>
Вы также можете разрешить пользователям управлять размером, если вы установите для параметра resizable значение true. Вы можете увидеть демо об этом на http://gijgo.com/Dialog/Demos/bootstrap-modal-resizable
У меня была та же проблема с bootstrap 3 и высотой div div модального тела, которая не была бы больше, чем 442px. Это все, что нужно css, чтобы исправить это в моем случае:
.modal-body {
overflow-y: auto;
}
Для Bootstrap 2 Автоматическая настройка высоты модели динамически
//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;');
});