twitter-bootstrap - Bootstrap 4 chalice 布局

标签 twitter-bootstrap flexbox bootstrap-4 twitter-bootstrap-4

我一定遗漏了一些明显的东西。我正在尝试在 Bootstrap 4 中实现 chalice 布局的派生。

而不是 Header-->Left Column, Fluid Center, Right Column--> Footer,我希望我的页眉和页脚在 Fluid Center Column 内。显然,顶部是页眉,底部是页脚,中间是流动的内容。并且所有列的高度相同。

-----------------------------------------------------
|          |       Header              |            |
|          |---------------------------|            |
|  LEFT    |                           |  RIGHT     |
|  PANEL   |       MAIN CONTENT        |  PANEL     |
|          |                           |            |
|          |                           |            |
|          |---------------------------|            |
|          |       Footer              |            |
-----------------------------------------------------

代码的骨架如下所示。我苦苦挣扎的地方是让页眉和页脚正确显示在流畅的中心栏中。我觉得答案就在 FlexBox 中,但我就是不知道该怎么做!

<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" rel="stylesheet"/>
<div class="container-fluid h-100" id="root">
  <div class="row h-100">
    <div class="col-md-3 fixed py-3">Page Panel Left</div>
    <div class="col fluid py-3">Page Panel Main Stage

      <div class="bg-warning" style="height:8rem;">I am a header with a fixed height.</div>
      <div class="">I am the content, I should be fluid and stretch to the bottom.</div>
      <div class="bg-warning" style="height:8rem;">I am the footer with a fixed height</div>

    </div>

    <div class="col-md-3 fixed  py-3">Page Panel Right
      <div>
        <br>
        <p>Nullam congue, dui luctus aliquam maximus, erat magna posuere purus, posuere elementum urna nisi vitae dolor. Integer tristique non velit ut suscipit. Vestibulum quam eros, blandit dapibus iaculis nec, volutpat vel purus. Quisque commodo euismod
          ipsum, quis pulvinar augue. Cras non fermentum velit. Proin tincidunt lectus diam, at ornare augue interdum eget. Vivamus porttitor iaculis urna in porttitor. Maecenas auctor ac augue convallis eleifend. Praesent lacus odio, placerat sed felis
          ac, vulputate auctor quam. Cras in nulla eu libero cursus cursus ut a enim. Praesent varius viverra maximus. Morbi accumsan, orci quis semper tempus, leo ipsum efficitur ipsum, eu fermentum ipsum est ac nibh. Ut ut venenatis eros. Duis neque
          nulla, malesuada non ultrices non, laoreet nec enim. Mauris congue, ipsum non ultrices congue, leo eros tristique urna, bibendum accumsan ligula sem in justo.</p>
      </div>
    </div>
  </div>
</div>

最佳答案

确保中心列是 flex-column ,然后使用 flex-grow:1为主要内容。在这个例子中,我只在大屏幕上固定了侧边栏的宽度,但你可以决定改变它。
http://codeply.com/go/licdodtBCO

<div class="container-fluid h-100">
    <div class="row h-100">
        <!-- left sidebar -->
        <div class="col-md-2 fixed">
            
        </div>
        <!-- center content -->
        <div class="col fluid d-flex flex-column">
            <nav id="topNav" class="navbar"> 
            </nav>

            <!-- main content -->
            <div class="row flex-grow">

            </div>

            <footer class="navbar navbar-toggleable-xl navbar-faded navbar-light">
            </footer>

        </div>
        <!-- right sidebar -->
        <div class="col-md-2 fixed">

        </div>
    </div>
</div>
CSS
html {
    height: 100%;
}

body {
    min-height: 100vh;
}

/* fixed and fluid only on sm and up */
@media (min-width: 576px) {
    .fixed {
        flex: 0 0 200px;
        min-height: 100vh;
    }
    .col .fluid {
       min-height: 100vh;
    }
}

.flex-grow {
   flex:1;
}
Bootstrap 4 Holy Grail Demo
Bootstrap 4 Fixed-Fluid-Fixed
注:需要注意的是,在 classic "holy grail" layout , 术语 “固定”是指宽度 , 和 不是 位置为position:fixed .但是,通过一些调整,可以获得固定的宽度和位置。例如,这里有一个备用的“ chalice ”布局,左侧栏固定宽度和位置 : https://codeply.com/go/s90QZLC0WT

关于twitter-bootstrap - Bootstrap 4 chalice 布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42617595/

相关文章:

css - Flexbox 网格 : How to display 3 items side-by-side but varying vertical positions

html - Bootstrap 4 自定义高度导航栏的崩溃问题

css - 引导网格不起作用?

html - 可调整大小的文本输入

javascript - rails 中的 Ladda 加载按钮

css - Bootstrap 模式中的文本溢出省略号

html - Flex/Grid 布局不适用于按钮或字段集元素

css - 通过管理 UI 显示 flex 小部件样式干扰

javascript - 如何使用angular8为循环项目的电子邮件和传真显示每一行的验证错误

jquery - 使用离线数据表文件而不是 cdn