我正在开发一个Web应用程序,用户可以在其中打开模态来执行各种操作,并且将打开许多模式层,有时会打开4层或更多层。
以下css演示了我正在尝试做的事情:
.modal-backdrop { z-index: 1040; }
.modal { z-index: 1050; }
.modal-backdrop + .modal-backdrop { z-index: 1060; }
.modal .modal { z-index: 1070; }
.modal-backdrop + .modal-backdrop + .modal-backdrop { z-index: 1080; }
.modal .modal .modal { z-index: 1090; }
但我需要它是通用的(而不是像上面那样令人讨厌的黑客),最好的方法是什么?
答案 0 :(得分:0)
我通过更改引导代码解决了这个问题。
Bootstrap v3.3.7 ,第1108~1110行 改为
this.$backdrop = $(document.createElement('div'))
.addClass('modal-backdrop ' + animate)
.appendTo(this.$body)
到
this.$backdrop = $(document.createElement('div'))
.addClass('modal-backdrop ' + animate)
.appendTo(this.$element.parent())
此修改将使背景出现在父元素上,而不是主体的末尾,从而更改z-index堆叠上下文以允许第二个背景保持在第一个模态的顶部。
警告:请注意,更改原始引导代码可能会对应用程序造成副作用,如果要使用此解决方案,请谨慎操作。
对于带有副作用信息的编辑,这个答案是开放的 副作用
position
- ed元素内,则背景可能无法覆盖整个页面.modal-backdrop
类覆盖这些规则。