Bootstrap flexbox,2 行,1 列布局和对齐内容

Posted

技术标签:

【中文标题】Bootstrap flexbox,2 行,1 列布局和对齐内容【英文标题】:Bootstrap flexbox, 2 row, 1 column layout and align contents 【发布时间】:2021-08-29 10:25:56 【问题描述】:

我想要一个全宽的 2 行“1 列”布局,占据整个视口。顶行的内容应位于该行的底部,底行的内容应位于该行的顶部。

使用引导程序中的一些示例,我能够做到这一点:https://codepen.io/afagard/pen/QWpJWze

但是,我不确定我是否正确地执行了操作,即使它看起来像预期的那样。具体来说,我尝试将容器设置为100vh,但这并没有导致弹性盒发生任何变化,因此我将每一行设置为50vh。我主要做后端工作,并且正在尝试学习 flexbox。

【问题讨论】:

当你说“我试图将容器设置为 100vh 但没有导致弹性盒发生任何变化”时,我不确定你的意思。这应该有什么不同? 根据您的问题,这对我来说看起来非常好。虽然我不认为列和行是真正需要的,因为您只使用 1 列。只能将 2 个 div 堆叠在一起 @Spectric 如果我只是将容器设为 100vh,则行不会变为 50vh。但我想我应该把行设为height:50%,这样就可以了。 @RichardHpa 使用引导网格?并获得与所示相同的行内容对齐方式? 你能画出你真正想要实现的目标吗? 【参考方案1】:

这是一个仅使用引导类而不使用其他 css 的 flexbox 解决方案示例:

<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-+0n0xVW2eSR5OomGNYDnhzAbDsOXxcvSN1TPprVMTNDbiYZCxYbOOl7+AMvyTG2x" crossorigin="anonymous">


<div class="container-fluid p-0 vh-100 d-flex flex-column text-center">
  
  <div class="flex-grow-1 d-flex flex-column bg-primary">
    <div class="mt-auto">
      Top half
    </div>
  </div>
  
  <div class="flex-grow-1 d-flex flex-column bg-secondary">
    <div class="mb-auto">
      Bottom half
    </div>
  </div>
  
</div>

【讨论】:

以上是关于Bootstrap flexbox,2 行,1 列布局和对齐内容的主要内容,如果未能解决你的问题,请参考以下文章

如何在 bootstrap 4 中使用 flexbox 的自动宽度列?

使用 Bootstrap 4.4、Wordpress 和 Bootstrap Shortcodes Ultimate 插件的 Flexbox 列等高

使用 flexbox 网格的 Bootstrap 4 砌体布局

居中的 div 比 bootstrap 和 flexbox 上的父 div 高

React Bootstrap flexbox 不会拉伸到内容高度

为 flexbox 单元格分配相同的宽度