如何在Bootstrap 3中实现响应式,独立滚动的窗格?

Ink*_*ing 10 html css responsive-design twitter-bootstrap twitter-bootstrap-3

我正在开发一个网络应用程序,我希望在大屏幕上有两个可独立滚动的区域:左侧的主要内容区域和右侧的较小侧边栏.

我已经设法使用absolute定位和overflow属性在CSS中实现这样的布局,请参阅此JSFiddle:http://jsfiddle.net/XLceP/

这很好,但我也试图利用Bootstrap(3.1.1)来使网站响应和组件/样式.但是我不知道该怎么做.

基本上,我理想地喜欢使用Bootstrap约定(列类等)来使它在移动屏幕上右窗格在左窗格下方折叠(或完全消失)以用于传统的垂直布局,同时占用全屏宽度.但是,在absolute为更大的屏幕布局使用定位时,似乎不可能这样做.

我该如何尝试解决这个问题?

Zim*_*Zim 8

您可以使用CSS媒体查询来"禁用"移动屏幕上的绝对定位.这将让Bootstrap的响应能力发挥作用......

<div class="container-fluid d-flex flex-column flex-grow-1 vh-100 overflow-hidden">
    <nav class="navbar navbar-light bg-light navbar-expand-md px-0 flex-shrink-0">
        <a class="navbar-brand" href="#">App</a>
        <ul class="navbar-nav">
            <li class="nav-item"><a href="#" class="nav-link">Nav</a></li>
        </ul>
    </nav>
    <div class="row flex-grow-1 overflow-hidden">
        <div class="col-2 mh-100 overflow-auto py-2">
            <h6>Sidebar</h6>
            <ul class="nav flex-column">
                <li class="nav-item">
                    <a class="nav-link active" href="#">Link</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="#">Link</a>
                </li>
            </ul>
        </div>
        <div class="col mh-100 overflow-auto py-2">
            <h3>Body content</h3>
        </div>
    </div>
    <div class="row flex-shrink-0 bg-light">
        <div class="col-12 py-2">
            <p>Footer ...</p>
        </div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

演示:http://www.bootply.com/126137

  • 谢谢,这为我解决了问题.我还需要确保`body上的`overflow:hidden`,html`也在那个媒体查询中,否则一旦崩溃我就无法正常滚动,以及`height:100%`因为这也会引起问题. (2认同)

Dav*_*aun 5

我在使用and 时在这里分叉了 Skelly 的 bootply 。col-xs-12hidden-xs

  <div class="col-xs-12 col-sm-6" id="left">
      <p>Left contents</p>
  </div>   
  <div class="hidden-xs col-sm-6" id="right">
      <p>Right contents</p>
  </div>
Run Code Online (Sandbox Code Playgroud)

我更喜欢这个,因为它避免了 css 文件中的媒体查询。