我有一个模态弹出窗口(Bootstrap),它根据用户选择显示内容
这是我用来检查用户选择的javascript代码
PlayerMP.getFunctionalDetails = function (type, UserID, SessionID, SessionNo) {
$.ajax({
type: "GET",
url: PlayerMP.URL,
data: "rt=4&type=" + type + "&UserID=" + UserID + "&SessionID=" + SessionID + "&SessionNo=" + SessionNo,
success: function (FunctionalSplitsJS) {
if (FunctionalSplitsJS.indexOf("SessionExpired=1", 0) == -1) {
$("#divFunctionalDetails").html(FunctionalSplitsJS);
switch (type) {
case 1:
$("#divFunctionalsSplit"); //the table goes out of the modal window
break;
case 2:
TallyFunctionalSheet();
$("#divFunctionalsSplit");
break;
case 3:
$("#divFunctionalsSplit");
break;
}
$("#divFunctionalsSplit").modal('show');
}
else
window.location.href = "../Login.aspx?SessionExpired=1";
}
});
}
table-responsive
似乎正在工作)但是当我调整浏览器的大小以匹配平板电脑的宽度时,表格/模态自动调整大小以相互匹配。这是被称为
的模态窗口的代码 <div class="modal fade" id="divFunctionalsSplit" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-body">
<div class="table-responsive">
<div id="divFunctionalDetails"></div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" data-dismiss="modal">Done</button>
</div>
</div>
</div>
</div>
答案 0 :(得分:22)
默认情况下,boottrap将.modal对话框的宽度设置为600px(大屏幕高于768像素)或自动(小屏幕)。下面的代码覆盖了这个:
$('#myModal').on('shown.bs.modal', function () {
$(this).find('.modal-dialog').css({width:'auto',
height:'auto',
'max-height':'100%'});
});
(基于:https://stackoverflow.com/a/16152629/2260496)
为了使它更加动态,您需要计算表格的宽度(jQuery width()或innerwidth()),并根据它设置模态对话框的宽度。
答案 1 :(得分:14)
至少这对我有用:
.modal-dialog{
position: relative;
display: table; /* <-- This makes the trick */
overflow-y: auto;
overflow-x: auto;
width: auto;
min-width: 300px;
}
答案 2 :(得分:2)
将其更改为您的代码
<div class="modal-dialog" style="width: 95%">
和这个
<div class="table-responsive" style="width:100%">
答案 3 :(得分:2)
如果你在持有模态的div中设置display: table;
,它会相应调整大小。我的模态是可拖动的,并且在您更改浏览器的大小时不会调整大小,但这是我找到的动态模态大小唯一可行的解决方案。
答案 4 :(得分:1)
$('#myModal').on('shown.bs.modal', function () {
$(this).find('.modal-dialog').addClass('modal-lg');
});
答案 5 :(得分:0)
我遇到了同样的问题,发现问题不是模态本身。我在内部的每个元素中添加了一个ID,并通过CSS添加宽度:100%给所有元素。
它对我有用。