如何在容器 div 中显示 bootstrap v4 模态框?
How to show bootstrap v4 modal box inside a container div?
使用 bootstrap v4.0.0-alpha 非常棒,这就是我要找的东西:我需要将模态框放在容器 div 内,而不是整个屏幕上。
我尝试更改一些内置 CSS 类 是的 JavaScript :) 比如:
z-index: 1051;
右导航栏有变化但不满意,有什么简单的解决办法吗?
创建一个变量var mod
并在其中加载模态;
var mod = $('.modal');
创建一个 div <div class="insidemodal"></div>
内部容器,用于显示模态
使用Bootstrap 4 modal event listener,最好是show.bs.modal
并在其中放入var mod = $('.modal');
,并在模态即将显示时将模态加载到insidemodal
选择器中。
$('#myModal').on('show.bs.modal', function () {
var mod = $('.modal'); //Create variable and load modal in it
$('.insidemodal').html(mod); //Load modal to `insidemodal` Selector
});
在 Modal
CSS
中进行以下更改
.modal-backdrop {
display:none //<---Kill the modal backdrop
}
.modal-backdrop.in {
opacity: 0;
}
.modal {
z-index: inherit !important; //<--overwrite modal default z-index: 1050
position: relative; //<change position from absoulte
}
所以最终代码将是
JS
$(document).ready(function () {
$('#myModal').on('show.bs.modal', function () {
var mod = $('.modal');
$('.insidemodal').html(mod);
});
});
CSS
.title {
background: green;
color:#fff;
padding: 5px;
text-align:center;
border:1px solid;
}
.menu {
background: blue;
color:#fff;
padding: 5px;
text-align:center;
border:1px solid;
}
.insidemodal {
background: red;
border:1px solid;
padding: 5px;
}
.modal-backdrop {
display:none
}
.modal-backdrop.in {
opacity: 0;
}
.modal {
z-index: inherit !important;
position: relative;
}
HTML
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha/css/bootstrap.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha/js/bootstrap.min.js"></script>
<div class="container">
<div class="row">
<div class="col-sm-12">
<div class="title">This Is Title</div>
</div>
</div>
<div class="row">
<div class="col-sm-4">
<div class="menu">Left Menu
<br>
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#myModal">Modal</button>
</div>
</div>
<div class="col-sm-8">
<div class="insidemodal"></div>
</div>
</div>
</div>
<!-- Modal -->
<div class="modal fade" id="myModal">
<div class="modal-dialog modal-sm">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span>
<span class="sr-only">Close</span>
</button>
<h4 class="modal-title" id="myModalLabel">Modal title</h4>
</div>
<div class="modal-body">...</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal" aria-label="Close">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div>
</div>
</div>
SideNote 如果您有多个模态框,以上 CSS 模态框 CSS 中的更改可能会导致其他模态框无法正常运行,因此请改用自定义选择器更改默认模式选择器。
使用 bootstrap v4.0.0-alpha 非常棒,这就是我要找的东西:我需要将模态框放在容器 div 内,而不是整个屏幕上。
我尝试更改一些内置 CSS 类 是的 JavaScript :) 比如:
z-index: 1051;
右导航栏有变化但不满意,有什么简单的解决办法吗?
创建一个变量
var mod
并在其中加载模态;var mod = $('.modal');
创建一个 div
<div class="insidemodal"></div>
内部容器,用于显示模态使用Bootstrap 4 modal event listener,最好是
show.bs.modal
并在其中放入var mod = $('.modal');
,并在模态即将显示时将模态加载到insidemodal
选择器中。$('#myModal').on('show.bs.modal', function () { var mod = $('.modal'); //Create variable and load modal in it $('.insidemodal').html(mod); //Load modal to `insidemodal` Selector });
在
中进行以下更改Modal
CSS.modal-backdrop { display:none //<---Kill the modal backdrop } .modal-backdrop.in { opacity: 0; } .modal { z-index: inherit !important; //<--overwrite modal default z-index: 1050 position: relative; //<change position from absoulte }
所以最终代码将是
JS
$(document).ready(function () {
$('#myModal').on('show.bs.modal', function () {
var mod = $('.modal');
$('.insidemodal').html(mod);
});
});
CSS
.title {
background: green;
color:#fff;
padding: 5px;
text-align:center;
border:1px solid;
}
.menu {
background: blue;
color:#fff;
padding: 5px;
text-align:center;
border:1px solid;
}
.insidemodal {
background: red;
border:1px solid;
padding: 5px;
}
.modal-backdrop {
display:none
}
.modal-backdrop.in {
opacity: 0;
}
.modal {
z-index: inherit !important;
position: relative;
}
HTML
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha/css/bootstrap.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha/js/bootstrap.min.js"></script>
<div class="container">
<div class="row">
<div class="col-sm-12">
<div class="title">This Is Title</div>
</div>
</div>
<div class="row">
<div class="col-sm-4">
<div class="menu">Left Menu
<br>
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#myModal">Modal</button>
</div>
</div>
<div class="col-sm-8">
<div class="insidemodal"></div>
</div>
</div>
</div>
<!-- Modal -->
<div class="modal fade" id="myModal">
<div class="modal-dialog modal-sm">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span>
<span class="sr-only">Close</span>
</button>
<h4 class="modal-title" id="myModalLabel">Modal title</h4>
</div>
<div class="modal-body">...</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal" aria-label="Close">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div>
</div>
</div>
SideNote 如果您有多个模态框,以上 CSS 模态框 CSS 中的更改可能会导致其他模态框无法正常运行,因此请改用自定义选择器更改默认模式选择器。