Bootstrap 模态出现在背景下

新手上路,请多包涵

我直接从 Bootstrap 示例中使用了我的模态代码,并且只包含了 bootstrap.js(而不是 bootstrap-modal.js)。但是,我的模态出现在灰色渐变(背景)下方并且不可编辑。

这是它的样子:

模态隐藏在背景后面

有关重现此问题的 一种 方法,请参 见此小提琴。该代码的基本结构如下:

<body>
    <p>Lorem ipsum dolor sit amet.</p>

    <div class="my-module">
        This container contains the modal code.
        <div class="modal fade">
            <div class="modal-dialog">
                <div class="modal-content">
                    <div class="modal-body">Modal</div>
                </div>
            </div>
        </div>
    </div>
</body>

body {
    padding-top: 50px;
}

.my-module {
    position: fixed;
    top: 0;
    left: 0;
}

任何想法为什么会这样或我能做些什么来解决这个问题?

原文由 natlines 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 674
2 个回答

如果模态容器具有固定或相对位置,或者位于具有固定或相对位置的元素内,则会发生此行为。

确保模态容器及其所有父元素都以解决问题的默认方式定位。

这里有几种方法可以做到这一点:

  1. 最简单的方法是移动模态 div,使其位于任何具有特殊定位的元素之外。一个好地方可能就在结束正文标记 </body> 之前。

  2. 或者,您可以从 modal 及其祖先中删除 position: CSS 属性,直到问题消失。但是,这可能会改变页面的外观和功能。

原文由 Muhd 发布,翻译遵循 CC BY-SA 3.0 许可协议

问题与父容器的定位有关。在显示模态之前,您可以轻松地将模态从这些容器中“移出”。如果您是 show 使用 js 访问您的模态,这是如何做到的:

 $('#myModal').appendTo("body").modal('show');

或者,如果您使用按钮启动模式,请放下 .modal('show'); 并执行以下操作:

 $('#myModal').appendTo("body")

这将保留所有正常功能,允许您使用按钮显示模式。

原文由 Adam Albright 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题