隐藏在Bootstrap模态中的下拉列表

时间:2018-02-23 13:06:20

标签: jquery html css twitter-bootstrap bootstrap-modal

我正在使用Bootstrap模式,其中包含几个下拉列表,因为我设置了overflow: auto CSS属性以在模态中有一个滚动条。

问题是,当我打开任何下拉列表时,它不会出现在模态中(由于CSS属性overflow: auto),它隐藏在模态下(参见图像)。

我希望看到该模式的下拉列表我尝试了所有内容z-index: 999999; position: absolute等但似乎无效。

我用谷歌搜索,我发现的所有解决方案都是删除overflow: auto属性并放置overflow:visible但正如我所提到的那样,由于一堆下拉列表(大约150)我必须放置滚动条以便溢出否则模态高度弄乱页面。

CSS(必填)

.modal-body {
  max-height: 100px;
  overflow: auto;
} 

简单的解决方案是,您只需将overflow:auto替换为visible即可,但我需要保留overflow:auto的解决方案;

这是JSFiddle

上的工作示例

提前致谢。

enter image description here

2 个答案:

答案 0 :(得分:1)

你可以做到这一点,但不能打破引导响应性

position: relative;重置为 initial position: static;

.modal-body,
.modal-body .dropdown {
   position: static;
}

问题在于下拉菜单不知道应该在哪个位置。所以你必须自己定位

.modal-body .dropdown-menu {
  top: 100px;
  left: 20px;
}

我没有推荐这个解决方案,但只是坚持使用bootstrap处理元素的方式。



.modal-body {
  max-height: 100px;
  overflow: auto;
}

.modal-body,
.modal-body .dropdown {
  position: static !important;
}

.modal-body .dropdown-menu {
  top: 100px;
  left: 20px;
}

<link rel="stylesheet" type="text/css" href="https://netdna.bootstrapcdn.com/bootstrap/3.0.2/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://netdna.bootstrapcdn.com/bootstrap/3.0.2/js/bootstrap.min.js"></script>

<!-- Button trigger modal -->
<button class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">
  Launch demo modal
</button>

<!-- Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
        <h4 class="modal-title" id="myModalLabel">Modal title</h4>
      </div>
      <div class="modal-body">
        <div class="dropdown">
          <a id="dLabel" role="button" data-toggle="dropdown" data-target="#" href="#">
            Dropdown <span class="caret"></span>
          </a>
        <br>

          <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
            <li>one</li>
            <li>two</li>
            <li>three</li>
            <li>four</li>
            <li>five</li>
            <li>six</li>
            <li>seven</li>
            <li>eight</li>
          </ul>
          
           
        </div>
      </div>



      <div class="modal-footer">
        <button type="button" class="btn btn-primary" data-dismiss="modal">Done</button>
      </div>
    </div>
    <!-- /.modal-content -->
  </div>
  <!-- /.modal-dialog -->
</div>
<!-- /.modal -->
&#13;
&#13;
&#13;

答案 1 :(得分:0)

将引导程序从3.x升级到4.x后,此问题已得到解决,现在,引导程序4正在处理所有这些边缘情况。