如何在引导程序 5 中获得一个简单的 3 堆叠列布局为 100vh

Posted

技术标签:

【中文标题】如何在引导程序 5 中获得一个简单的 3 堆叠列布局为 100vh【英文标题】:How can I get a simple 3 stacked column layout in bootstrap 5 to be 100vh 【发布时间】:2022-01-15 10:13:59 【问题描述】:

我今天拿起了 Bootstrap 5

我无法将 box-1、box-2 和 box-3 叠放在一起的 3 列布局需要 100vh

我在下面粘贴了一个经过编辑的代码版本,它实际上是三个堆叠在一起的盒子。我可以在 CSS Grid 和 Flexbox 中做到这一点,但不能使用 Bootstrap。

以下是我已经尝试过但没有奏效的方法:

    将 body 和 html 设置为高度:100vh 将容器高度设置为 100vh - 这使得每个盒子 100vh 或盒子 1 占用 100vh,盒子 2 溢出到另一个 100vh,同样盒子 3 围绕正文内容创建一个包装类并将其设置为高度 100vh 使用实用程序类 vh-100 重复 1)-3)

有什么建议吗?

谢谢

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">

<body>
  <section class="container box-1">
    <div class="row">
      <div class="col">
      </div>
    </div>
  </section>

  <section class="container box-2">
    <div class="row">
      <div class="col">
      </div>
  </section>

  <section class="container box-3">
    <div class="row">
      <div class="col">
      </div>
    </div>
  </section>
</body>

【问题讨论】:

欢迎来到 SO。请务必拨打tour,以便您知道如何使用本网站。 【参考方案1】:

在我看来,您可以大大简化这一点。如果每个容器只有一个,我不确定为什么需要行或列。您甚至似乎不需要超过一个容器。我们只是一个基本的 flex 列,每个 the docs。

/* all styles for demo only */

.d-flex 
  background: #eee;


.box-1:nth-child(even) 
  background: pink;
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">

<body>
  <div class="container d-flex flex-column vh-100 p-0">
    <section class="box-1 flex-fill">Section</section>
    <section class="box-1 flex-fill">Section</section>
    <section class="box-1 flex-fill">Section</section>
  </div>
</body>

如果您确实需要容器和内部结构,只需将 flex-fill 类移到行中(并且只使用一个容器)。它的工作原理是一样的。

/* all styles for demo only */

.row 
  background: #eee;


.row:nth-child(even) 
  background: pink;
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">

<body>
  <div class="container d-flex flex-column vh-100">
    <div class="row flex-fill">
      <div class="col">
        <section class="box-1">Section</section>
      </div>
    </div>

    <div class="row flex-fill">
      <div class="col">
        <section class="box-1">Section</section>
      </div>
    </div>

    <div class="row flex-fill">
      <div class="col">
        <section class="box-1">Section</section>
      </div>
    </div>
  </div>
</body>

【讨论】:

以上是关于如何在引导程序 5 中获得一个简单的 3 堆叠列布局为 100vh的主要内容,如果未能解决你的问题,请参考以下文章

在引导程序中没有额外的 clearfix 时,Div 不会堆叠

每3列在引导程序中循环行

在移动设备上垂直堆叠的引导列

如何在小屏幕上禁用引导对齐选项卡的堆叠

使导航栏可堆叠(引导程序)

angular-cli 如何添加 sass 和/或引导程序?