在 twitter bootstrap 中创建模态框时,有没有办法改变背景颜色?完全去除阴影?
注意:对于去除阴影,这不起作用,因为它也会改变点击行为。(我仍然希望能够在模式之外单击以将其关闭。)
$("#myModal").modal({
backdrop: false
});
在 twitter bootstrap 中创建模态框时,有没有办法改变背景颜色?完全去除阴影?
注意:对于去除阴影,这不起作用,因为它也会改变点击行为。(我仍然希望能够在模式之外单击以将其关闭。)
$("#myModal").modal({
backdrop: false
});
要通过以下方式更改颜色:
在引导样式之后将这些样式放在样式表中:
.modal-backdrop {
background-color: red;
}
将引导变量更改为:
@modal-backdrop-bg: red;
将引导变量更改为:
$modal-backdrop-bg: red;
更改@modal-backdrop-bg
为您想要的颜色:
您还可以通过 Javascript 或将颜色设置为 删除背景transparent
。
如果要更改特定模式的背景的背景颜色,可以通过以下方式访问背景元素:
$('#myModal').data('bs.modal').$backdrop
然后您可以通过 .css jquery 函数更改任何 css 属性。特别是,有背景:
$('#myModal').data('bs.modal').$backdrop.css('background-color','orange')
注意 $('#myModal') 必须被初始化,否则 $backdrop 将是空的。同样适用于 bs.modal 数据元素。
CSS
如果这不起作用:
.modal-backdrop {
background-color: red;
}
试试这个:
.modal {
background-color: red !important;
}
删除引导模式背景试试这个
.modal-backdrop {
background: none;
}
如果您想将背景添加到特定模式,它会变得有点复杂。解决这个问题的一种方法是添加和调用类似这个函数的东西,而不是直接显示模态:
function showModal(selector) {
$(selector).modal('show');
$('.modal-backdrop').addClass('background-backdrop');
}
然后可以将任何 css 应用于background-backdrop
该类。
对于Bootstrap 4,您可能必须.modal-backdrop.show
在和.!important
background-color
opacity
例如
.modal-backdrop.show {
background-color: #f00;
opacity: 0.75;
}
添加以下CSS;
.modal .modal-dialog .modal-content{ background-color: #d4c484; }
<div class="modal fade">
<div class="modal-dialog" role="document">
<div class="modal-content">
...
...
如果您只需要为一种模式窗口移除阴影,您可以简单地将 ID 添加到您的模式窗口
<div class="modal fade" id="myModal">...</div>
并在您的 css 文件中添加以下内容
#myModal .modal-backdrop {background-color: transparent;}
如果您需要删除所有模态窗口的阴影,只需跳过分配 ID 的步骤。
我用了几个小时试图弄清楚如何从启动的模式中删除背景,到目前为止尝试过
.modal-backdrop { background: none; }
即使我尝试使用 javascript 也无法正常工作
<script type="text/javascript">
$('#modal-id').on('shown.bs.modal', function () {
$(".modal-backdrop.in").hide(); })
</script>
也没有工作。我刚刚添加
data-backdrop="false"
到
<div class="modal fade" id="myModal" data-backdrop="false">......</div>
并应用 css 类
.modal { background-color: transparent !important; }
现在它像魅力一样工作这与 Bootstrap 3 一起使用
对于 Angular(7+) 项目:
::ng-deep .modal-backdrop.show {
opacity: 0.7 !important;
}
否则,您可以使用:
.modal-backdrop.show {
opacity: 0.7 !important;
}
当modal出现时,它会在出现之前触发事件show.bs.modal
。我试过Safari 13.1.2
了MacOS 10.15.6
。当show.bs.modal
事件触发时,.modal-backgrop
尚未插入body
。
所以,我放弃了,addClass
和动态。removeClass
.modal-backdrop
在网上查看了很多文章后,我找到了一个代码片段。它addClass
和removeClass
,body
它是.modal-backdrop
,whenshow.bs.modal
和hide.bs.modal
事件触发的父级。
ps:我使用的是 Bootstrap 4.5。
// In order to addClass/removeClass on the `body`. The parent of `.modal-backdrop`
.no-modal-bg .modal-backdrop {
background: none;
}
$('#myModalId').on('show.bs.modal', function(e) {
$('body').addClass('no-modal-bg');
}).on('hidden.bs.modal', function(e) {
// 'hide.bs.modal' or 'hidden.bs.modal', depends on your needs.
$('body').removeClass('no-modal-bg');
});
$(".modal").on('shown.bs.modal', function() {
$('.modal-backdrop').css('background', '#00000073');
});