【问题标题】:Twitter Bootstrap - why is my modal as faded as the background?Twitter Bootstrap - 为什么我的模态与背景一样褪色?
【发布时间】:2012-11-02 06:30:11
【问题描述】:

所以我正在使用 Twitter Bootstrap,当用户单击“注册”按钮时,我有一个向下滑动的模式。

唯一的问题是,不仅背景页面褪色,这是一个很好的效果,而且模态框也褪色了。我怎样才能让模态在背景褪色时正常亮度?

我在这里创建了一个 JSFiddle 来演示我的问题:http://jsfiddle.net/jononomo/7z8RZ/7/

以下代码创建了一个褪色的模态:

<div class="navbar navbar-fixed-top"> 
    <a href="#registration_modal" data-toggle="modal">
        Register
    </a>
    <div id="registration_modal" class="modal hide fade">
        <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal">×</button>
                <h3 id="myModalLabel">Register An Account</h3>
        </div>

        <div class="modal-body">
            Registration form goes here.
        </div>

        <div class="modal-footer">
            <button class="btn btn-secondary" data-dismiss="modal">Cancel</button>
            <button class="btn btn-primary">Register</button>
        </div>

    </div>
</div>

注意:如果我删除了外部 div,那么一切正常。所以问题是模式的代码在以下几行中:

<div class="navbar navbar-fixed-top">
</div>

我当然不想删除那个 div,因为我希望启动模式的链接按钮位于固定在屏幕顶部的导航栏中。

编辑:我已将范围缩小到外部 div 属于 navbar-fixed-top 类这一事实。当我删除该标签时,一切都按预期工作 - 您可以在此处看到它正常工作:http://jsfiddle.net/jononomo/7z8RZ/8/ 当然,我希望将导航栏固定在顶部,所以这并不能解决我的问题。

【问题讨论】:

  • 我的 JSFiddle 示例在我编辑之前无法运行,所以我被否决了。
  • @JonCrowell 看看你的小提琴的这个更新:jsfiddle.net/7z8RZ/10

标签: javascript twitter-bootstrap modal-dialog fade


【解决方案1】:

在 Bootstrap git 存储库中检查 this issue

然后尝试将模式放在导航栏之前,例如this fiddle

<div id="registration_modal" class="modal hide fade">
    <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal">×</button>
        <h3>Register An Account</h3>
    </div>

    <div class="modal-body">
        Registration form goes here.
    </div>

    <div class="modal-footer">
        <button class="btn btn-secondary" data-dismiss="modal">Cancel</button>
        <button class="btn btn-primary">Register</button>
    </div>

</div>
<div class="navbar navbar-fixed-top"> 
    <a href="#registration_modal" data-toggle="modal">
        Register
    </a>    
</div>

【讨论】:

  • 这在我的情况下是完全不可能的。不这样做怎么能做到呢?
  • 模态框也可以出现在导航栏之后。要实现的关键是modal的链接可以嵌套在navbar下,但是node不是navbar的子节点。
【解决方案2】:

不幸的是,这里的答案对我没有帮助.. 但幸运的是,这个讨论有同样的问题,他们有一个对我有用的答案。基本上,您必须确保模态不会从父 div 继承任何奇怪的定位元素:

Bootstrap modal appearing under background

【讨论】:

    【解决方案3】:

    我遇到了同样的问题。对我来说,解决方案是将模态 div 放在结束 body 标记之前。

    【讨论】:

      【解决方案4】:

      我解决它的方法是将模式中的所有内容包装在 &lt;div class="modal-content"&gt; 标记内。它看起来像这样:

      <div class="modal fade" id="TestModal">
          <div class="modal-content">
              <div class="modal-header">
                  Modal header here
              </div>
              <div class="modal-body">
                  <p>Modal content here</p>
              </div>
              <div class="modal-footer">
                  <button class="btn btn-primary" data-dismiss="modal">Close</button>
              </div>
          </div>
      </div>
      

      如果没有 modal-content div,模态框最终会像背景一样灰色。

      【讨论】:

      • @wavemode 我对此进行了更多研究,显然,模态功能存在一些值得注意的问题,具体取决于所使用的 JQuery 和 Bootstrap 的组合。我正在使用 JQuery 1.10.2 和 Bootstrap 3.3.2,它工作正常。
      猜你喜欢
      • 1970-01-01
      • 2013-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多