当在背景甚至手风琴标题之类的东西中使用CSS中的渐变之类的东西时,通常会遇到这个问题。
不幸的是,修改或覆盖核心Bootstrap CSS是不可取的,并且可能导致不必要的副作用。最不具侵入性的方法是添加 data-backdrop="false" 但您可能会注意到淡入淡出效果不再按预期工作。
data-backdrop="false"
在最近发布的Bootstrap之后,版本3.3.5似乎解决了这个问题,没有不必要的副作用。
下载: https://github.com/twbs/bootstrap/releases/download/v3.3.5/bootstrap-3.3.5-dist.zip
请务必包含3.3.5中的CSS文件和JavaScript文件。
我通过在DIV标签下面添加样式来解决这个问题
style="background-color: rgba(0, 0, 0, 0.5);"
并添加自定义CSS
.modal-backdrop {position: relative;}
在导航栏中 navbar-fixed-top 需要 z-index = 1041 如果你使用的话 bootstarp-combined.min.css 也改变了 .navbar-fixed-top, .navbar-fixed-bottom z-index to 1041
navbar-fixed-top
z-index = 1041
bootstarp-combined.min.css
.navbar-fixed-top, .navbar-fixed-bottom
z-index to 1041
我删除了模态背景。
.modal-backdrop { display:none; }
这不是更好的解决方案,但对我有用。
我有一个更轻,更好的解决方案..
的 它可以通过一些额外的CSS样式轻松解决.. 强>
隐藏课程 .modal-backdrop (从Bootstrap.js自动生成)
.modal-backdrop
.modal-backdrop { display:none; visibility:hidden; position:relative }
设置背景 .modal 到半透明的黑色背景图像。
.modal
.modal { background:url("http://bin.smwcentral.net/u/11361/BlackTransparentBackground.png") // translucent image from google images z-index:1100; }
如果您的需求需要模态位于元素内而不是靠近元素,那么这将最有效 </body> 标签..
</body>
但是这很晚但是这里是一个通用的解决方案 -
var checkeventcount = 1,prevTarget; $('.modal').on('show.bs.modal', function (e) { if(typeof prevTarget == 'undefined' || (checkeventcount==1 && e.target!=prevTarget)) { prevTarget = e.target; checkeventcount++; e.preventDefault(); $(e.target).appendTo('body').modal('show'); } else if(e.target==prevTarget && checkeventcount==2) { checkeventcount--; } });
访问此链接 - Bootstrap 3 - 使用固定侧边栏时,模态在背景下消失 详情。
您还可以从.modal-backdrop中删除z-index。产生的css看起来像这样。
.modal-backdrop { } .modal-backdrop.in { opacity: .35; filter: alpha(opacity=35); }
在你的模态中使用它:
这对我有用:
sass: .modal-backdrop display: none #yourModal.modal.fade.in background: rgba(0, 0, 0, 0.5)
我只是设置:
#myModal { z-index: 1500; }
它的工作原理....
对于原始问题:
.my-module { z-index: 1500; }
我也遇到过这个问题,直到我发现我实际上不需要背景时,没有一个解决方案适合我。您可以使用以下代码轻松删除背景。
<div class="modal fade" id="createModal" data-backdrop="false"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <h4>Create Project</h4> </div> <div class="modal-body">Not yet made</div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> </div> </div> </div> </div>
的 注意 强> : data-backdrop 属性需要设置为 false ( 其他选择 : static 要么 true )。
data-backdrop
false
static
true
我发现的是:
在bootstrap 3.3.0中它不对,但是当它在bootstrap 3.3.5中时它是正确的。它看到了代码。 3.3.0:
this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />') .prependTo(this.$element)
3.3.5
this.$backdrop = $(document.createElement('div')) .addClass('modal-backdrop ' + animate) .appendTo(this.$body)
只需添加两行CSS:
.modal-backdrop{z-index: 1050;} .modal{z-index: 1060;}
.modal-backdrop应该有1050的值来设置它在导航栏上。
就我而言,我有一个包含以下内容的包装器:
.wrapper { margin: 0 auto; position:relative; z-index:1;overflow:hidden;}
只删除了z-index:1并且不知道为什么修复了这个问题。也确定删除了相对位置,但我需要它。
在我的情况下解决它,在我的样式表中添加:
.modal-backdrop{ z-index:0; }
使用google调试器,可以检查元素BACKDROP并修改属性。祝你好运。
以上建议的解决方案都没有为我工作,但这种技术解决了这个问题:
$('#myModal').on('shown.bs.modal', function() { //To relate the z-index make sure backdrop and modal are siblings $(this).before($('.modal-backdrop')); //Now set z-index of modal greater than backdrop $(this).css("z-index", parseInt($('.modal-backdrop').css('z-index')) + 1); });
$('.modal').insertAfter($('body'));
另外,请确保BootStrap css和js的版本相同。不同的版本也可以在背景下出现模态:
例如:
坏:
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet"> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.0/js/bootstrap.min.js"></script>
好:
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css" rel="stylesheet"> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"></script>
嗨,我有同样的问题,然后我意识到,当你使用bootsrap 3.1 与较旧版本的bootsrap(2.3.2)不同 模态的html结构改变了!
的 你必须用模态对话框和模态内容包装模态标题的主体和页脚 强>
<div class="modal hide fade"> <div class="modal-dialog"> <div class="modal-content"> **here goes the modal header body and footer** </div> </div> </div>
我有这个问题,修复它的最简单方法是在模态对话框div上添加大于1040的z-index:
<div class="modal-dialog" style="z-index: 1100;">
我相信bootstrap会创建一个div模式背景淡入淡出,在我的情况下有z-index 1040,所以如果你把模态对话框放在这个上面,它就不应该变灰了。
这将覆盖所有模态而不会弄乱任何动画或预期行为。
$(document).on('show.bs.modal', '.modal', function () { $(this).appendTo('body'); });
将z-index .modal设置为最高值
例如, .sidebarwrapper的z-index为1100,因此将.modal的z-index设置为1101
.modal { z-index: 1101; }
问题与父容器的定位有关。在显示之前,您可以轻松地从这些容器中“移动”模态。如果你是这样的话,这是怎么做的 show 使用js来模态你的模态:
show
$('#myModal').appendTo("body").modal('show');
或者,如果您使用按钮启动模式,请删除 .modal('show'); 而且只是做:
.modal('show');
$('#myModal').appendTo("body")
这将保留所有正常功能,允许您使用按钮显示模态。
另一种方法是从中删除z-index .modal-backdrop 在bootstrap.css中。这将导致背景与身体的其他部分处于同一水平(它仍会褪色),并且您的模态将位于顶部。
.modal-backdrop 看起来像这样
.modal-backdrop { position: fixed; top: 0; right: 0; bottom: 0; left: 0; background-color: #000000; }
将绝对位置更改为相对位置。
.modal-backdrop { position: relative; /* ... */ }
我尝试了上面提供的所有选项,但没有使用它们。
的 做了什么工作: 强> 将.modal-backdrop的z-index设置为-1。
.modal-backdrop { z-index: -1; }
在我的情况下,原因是boostrap.min.css :)一旦我从我的html文件中排除它作为参考,对话框显示在forn的模态阴影:)