【问题标题】:Bootstrap 3 modal background is missing缺少 Bootstrap 3 模态背景
【发布时间】:2015-01-15 22:40:59
【问题描述】:

Bootstrap 3 模态通常会使页面变暗以突出显示模态本身,并表示在显示模态时页面 UI 被禁用。

在我编码过程中的某个时间点(几周前),背景不再出现。其他一切正常,包括通过单击关闭模式或单击右上角的 X 来关闭模式。页面 UI 也被禁用,直到模式关闭,这很好。由于是几千行代码,这里就不贴了。

我无法弄清楚为什么我的模态背景丢失了。我已经验证了我的 HTML 以确保没有丢失的标签。我也在我的页面上使用数据表、tabdrop 和 d3,但尝试一一删除这些(JS 和 CSS)以解决问题无济于事。我还应该检查什么?

这里是页面:http://suite.swiftdigital.com.au/scripts/marcus/modal/event.htm

单击绿色的“新参与者”按钮以查看其中一种模式。另一个是屏幕中间的编辑视图按钮。

【问题讨论】:

  • 真的很难说没有看到你的代码。可能有其他 CSS 元素覆盖您的代码或缺少结束标记的一段代码。如果您需要更好的帮助,您应该发布您的代码。
  • 我应该提一下这个问题出现在 Chrome、Firefox 和 IE 中。
  • 当我忘记在 .modal-content 中嵌套 .modal-header.modal-body.modal-footer 时发生这种情况

标签: html css twitter-bootstrap-3 datatables


【解决方案1】:

毕竟这不是 CSS 或 HTML 问题。获取最新的 Bootstrap JS 文件修复了它。我在 3.2.0 上并升级到 3.3.1。嗯。 (您需要确保 Bootstrap JS 和 CSS 的版本匹配。)

【讨论】:

  • 将此标记为您的答案?
  • 我会等着看是否有人能够在我给自己任何信任之前重现这个!
  • 但如果你自己修好了,你值得称赞。
  • 我刚刚遇到了另一个类似的问题——这一次“背景”也掩盖了模态。然后我发现(再次)我没有与 Bootstrap CSS 版本匹配的 Bootstrap JS 版本。在 3.3.4 和 3.3.5 之间,他们似乎将背景元素的位置从模态本身切换到了 body 元素的末尾。
  • 我在使用 bootstrap-less 3.3.8 时遇到了同样的问题。切换到使用 bootstrap 包(3.3.5)中的 less 文件,一切正常。感谢您为我指明正确的方向。
【解决方案2】:

将此添加到您的 CSS:

.modal-backdrop, .modal-backdrop.fade.in {
opacity: 0.7;
filter: alpha(opacity=70);
background: #fff;
}

如果您只是使用股票引导 CSS。这将使背景变为白色,不透明度为 70%。

将此添加到您的 CSS:

    .fade.in {
opacity: .75;
background-color: #000;
}

这是因为现在,您的 .fade.in 类没有附加背景颜色。

【讨论】:

  • 谢谢,Sanova,但第一个不起作用,第二个添加了背景,但也使我的模态半透明。请参阅suite.swiftdigital.com.au/scripts/marcus/modal/…,我认为我不应该添加自己的 CSS 来覆盖 Bootstrap - 显然某些内容已被删除或者我错误地在某处覆盖了它。
  • 我相信你是对的。如果您正在编辑 bootstrap.css 本身,请尝试将自定义样式提取到新样式表中,然后加载新的 bootstrap.css --- 我检查了您的代码,并且能够看到模态元素中缺少背景颜色。
  • 我重新下载了一个干净的 bootstrap.min.css 并从我的页面中删除了所有其他 CSS 文件。我还是有问题:suite.swiftdigital.com.au/scripts/marcus/modal/event.htm
【解决方案3】:

将您的代码与 OOTB Bootstrap 网站进行比较,您的代码如下所示:

<div class="modal-dialog" style="width: 600px">
        <div class="modal-content">
            <div class="modal-header">...
                rest of the module

Bootstrap 的代码如下:

<div id="myModal" class="modal fade in" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="false" style="display: block; padding-right: 17px;">
    <div class="modal-backdrop fade in" style="height: 995px;"></div>
    <div class="modal-dialog">
      <div class="modal-content">

您似乎缺少下面的这一行。尝试将其添加到您的 modal-dialog DIV 下方

<div class="modal-backdrop fade in" style="height: 995px;"></div>

【讨论】:

  • 感谢@crazymatt,但这并没有帮助。我最终得到了与我的模态一样宽的部分背景。虽然找到了解决方案(见上文)。
  • 很高兴你能弄明白
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-15
  • 1970-01-01
  • 2014-06-06
  • 1970-01-01
  • 2015-10-22
  • 1970-01-01
相关资源
最近更新 更多