bootstrap多层模态框滚动条消失的问题

Juey 2017-07-21

bootstrap 打开多层模态框的情况下,关闭任意一个模态框,都会导致其余模态框的滚动条消失。

监测html发现,当打开模态框时,会给 body 元素加一个 modal-open 的 class,而在 bootstrap.css 中,有这样一条 css 规则:

.modal-open .modal {overflow-x:hidden; overflow-y:auto}

因为有 overflow-y:auto,所以模态框才可以滚动,而当关闭任何一个模态框时,body 元素的 css 规则 modal-open 会被移除掉,自然 overflow-y:auto 也就没有了,所以模态框的滚动条就消失了。

解决方案是在模态框的 div 元素上加一条 style="overflow: auto",如下:

<div class="modal fade" ... style="overflow: auto">

这样,模态框的滚动就不依赖 body 元素的 css 规则 modal-open 了。

实例

<div class="modal fade" id="myModal2" data-backdrop="static" <span style="color:#ff0000;">style="overflow:scroll"</span> 
    popover-page-id="CS040104"> 
    <div class="modal-dialog modal-1200"> 
      <div class="modal-content"> 
        <div class="modal-header"> 
          <button type="button" class="close" data-dismiss="modal" 
            aria-hidden="true">×</button> 
          <h4 class="modal-title" id="myModalLabel">模态框(Modal)标题222</h4> 
        </div> 
        <div class="modal-body" >在这里添加一些文本</div> 
        <div class="modal-footer"> 
          <button type="button" class="btn btn-success" 
                 data-toggle="modal" target="modal" 
      data-target="#myModal3">模态框</button> 
          <button type="button" class="btn btn-default" data-dismiss="modal">关闭</button> 
          <button type="button" class="btn btn-primary">提交更改</button> 
        </div> 
      </div> 
      <!-- /.modal-content --> 
    </div> 
    <!-- /.modal --> 
    </div>

相关推荐