【问题标题】:Bootstrap 4 Equal height columns not workingBootstrap 4等高列不起作用
【发布时间】:2019-01-20 04:22:33
【问题描述】:

我有两列彼此相邻,但其中的内容不同,但列不同,我被引导相信这是默认的引导程序 4,或者它曾一度处于其中一个 alpha 中。

目前我已经尝试过了。

.equal {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    flex-wrap: wrap;
}
.equal > [class*='col-'] {
    display: flex;
    flex-direction: column;
}

并将其添加到我的 CSS 中。

我的 html 看起来像。

<div class="row equal">
    <div class="col-md-8"></div>
    <div class="col-md-4"></div>
</div>

但它似乎不会以任何方式影响它。

编辑似乎不是列,而是所述列中的内容不是其父级的 100%。

但是如果我做 height: 100% 它会因为某种原因使它成为 100vh 而不是 100% 的列高。

https://codepen.io/anon/pen/KBEegO

在这个我已经在其中创建了 div,我需要它们 div 100% 的父列

即边框在列的内部 div 上的行和列的当前视图。

我需要它,所以如果左列中有更多内容,则右列与它的高度相同,如果右列与图像上的一样,则左列得到它的高度。

【问题讨论】:

  • 你能把它叉起来吗?
  • 在这里工作正常 - codepen.io/Paulie-D/pen/vaPrLp 也许你应该演示其余的代码。
  • 抱歉刚刚算出它在列内的 div 不是列的高度。我如何使正确的高度
  • 这个问题之前已经回答过了。在内部 div 上使用 h-100 类。此外,Bootstrap 4 行/列默认为 flexbox,因此无需为 flexbox 添加所有自定义 CSS。 codepen.io/anon/pen/LBareO
  • 由于某种原因,我的列和行变为 100vh,我不知道为什么与 height:100% 相同,因为一切都是动态高度,所以它只是将其设置为 100vh

标签: html css bootstrap-4


【解决方案1】:

我已经更新了codepen,请查看https://codepen.io/anon/pen/KBEejz?editors=1100

.equal div div {
  border: 1px solid green;
  height: 100%;
  display: flex;
  flex: 1;
}

.equal>[class*='col-'] {
  display: flex;
  flex-direction: column;
}
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.2/css/bootstrap.min.css" rel="stylesheet" />

<div class="row equal">
  <div class="col-md-8">
    <div>
      <p style="background-color:pink;">Lorem ipsum, dolor sit amet consectetur adipisicing elit. Quis quibusdam nobis praesentium hic vero quo quia error sed commodi cumque, illo porro eaque ad ipsa. Error maxime consequatur officiis alias fuga mollitia quas, magnam delectus necessitatibus
        illum, quos aperiam doloremque eaque explicabo architecto dolor? Placeat quos nemo natus velit aliquam?</p>
    </div>
  </div>
  <div class="col-md-4">
    <div>
      <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Adipisci blanditiis commodi sapiente totam sequi consectetur provident. Voluptatibus corrupti odit reiciendis, aliquid temporibus dolores tempore optio delectus nesciunt ipsam veritatis quisquam
        facilis voluptatem voluptates inventore aliquam, praesentium, assumenda ducimus ratione quasi nisi sunt consequatur corporis soluta. Deleniti quam harum soluta alias minima voluptas iusto voluptates, iure necessitatibus assumenda ex. Minus numquam
        beatae vero aperiam cupiditate assumenda ipsam hic ad corporis placeat facere consequuntur consectetur sint, aspernatur mollitia optio odit eos officia nostrum? Totam asperiores quia sequi autem. Ex nostrum fuga, et, illo iusto inventore officiis
        facere minima hic sint obcaecati consectetur.</p>
    </div>
  </div>
</div>

【讨论】:

  • 我的网站上确实有内容,但它是动态的并且是从 api 中提取的。不过仍然应该工作
  • 不确定您是否还有其他问题,请详细说明。
  • 我编辑了我的问题,看看我上传的显示我的问题的图片,你的代码也不起作用
  • 您希望内部 div 的高度太相等,所以请注意上面的 p,它的内容较少,但占据了 div 的全部高度。你的意思是父母身高100%吗?
【解决方案2】:

对于其中的 div,您可以将 position absolute 与 CSS transform 和 translate 属性一起使用。

.innerdiv {
 top: 50%;
 position:absolute;
 left: 50%;
 transform: translate(-50%, -50%);
}

这将使您的内部 div 垂直和水平居中。

【讨论】:

  • 它是 flexbox... 所以没有必要这样做 - 对齐中间 display:flex; align-items: center;
  • 这根本不是我想要达到的。我需要两列的内部 div 是基于具有最垂直内容的列的 100% 高度和宽度
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-17
  • 2018-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多