【问题标题】:How to get the same height on two Bootstrap columns? [duplicate]如何在两个 Bootstrap 列上获得相同的高度? [复制]
【发布时间】:2015-08-18 10:46:00
【问题描述】:

我有两列我想在同一个高度。两者都在内容之后调整高度(高度自动)。所以有时我的一列比另一列的高度更大。而且我希望它们处于相同的高度(并在内容之后进行调整)。

我试图用表格单元来解决这个问题,但我没有让它工作(其中一列总是比另一列小 10px 左右)。我也尝试过使用 row-eq-height ,但这并没有什么区别。

那么谁能告诉我最好的方法是让两个平行的 BS 列(代码中的 col-md-3 和 col-md-7)获得相同的高度,并自动调整到内容?

这是我的标记:

<div class="row"> <!-- START BS ROW -->
    <div class="col-md-1"> <!-- START BS COL-MD-1 -->
    </div> <!-- END BS COL-MD-1 -->
    <div class="col-md-3 zeropadding-right"> <!-- START BS COL-MD-4 -->
        <div class="singleheader-list-style"> <!-- START SINGLEHEADER-LIST-STYLE -->
            <!-- CONTENT -->
        </div>
    </div> <!-- END BS COL-MD-3 -->
    <div class="col-md-7 zeropadding-left"> <!-- START BS COL-MD-7 -->
        <div class="singleheader-content-style"> <!-- START SINGLEHEADER-CONTENT-STYLE -->
            <!-- CONTENT -->
        </div> <!-- END SINGLEHEADER-CONTENT-STYLE -->
    </div> <!-- END BS COL-MD-7 -->
    <div class="col-md-1"> <!-- START BS COL-MD-1 -->
    </div> <!-- END BS COL-MD-1 -->
</div> <!-- END BS ROW -->

这是我的 CSS:

/***** SINGLEHEADER CONTENT AREA STYLING *****/

.singleheader-content-style {
    background-color:#fff;
    border-right: 1px solid #9c9c9c;
    padding:20px;
}

.singleheader-content-style h1,h2,h3,h4,h5,h6 {
    margin-top:0px; /* Change bootstrap default */
    color:#de1b1b;
}

/***** SINGLEHEADER LIST AREA STYLING *****/

.singleheader-list-style {
    background-color:#fff;
    border-left: 1px solid #9c9c9c;
    border-right: 1px solid #9c9c9c;
    padding:20px;
}

.singleheader-list-style h1,h2,h3,h4,h5,h6 {
    margin-top:0px; /* Change bootstrap default */
    color:#de1b1b;
}

我知道这个问题之前已经在 SO 上提出过,但那些 QA 已经过时了(从 2013 年开始)。因为我猜 Boostraps 从那时起已经更新了。我创建了一个新问题,看看在 2015 年解决这个问题的最佳方法是什么。

是的,我知道这个问题被问到例如这里:How can I make Bootstrap columns all the same height? 但 QA 是从 2013 年开始的。我想知道现在是否有更好的方法来解决这个问题,例如 flex-box 以及如何做它。我一直在看这里:http://getbootstrap.com.vn/examples/equal-height-columns/ 但它不适合我。

【问题讨论】:

  • jsfiddle.net 会有所帮助;)
  • 为什么?我不清楚我要做什么吗? :)
  • 我认为您需要这些列是流动的..?
  • @Alex:是的,你想要什么很清楚,但是在 jsfiddle.net 中,像我这样的人可以测试那里的想法,然后告诉你正确的答案。这对我们来说更容易一些......
  • 啊,对不起!

标签: html css twitter-bootstrap two-columns


【解决方案1】:

我认为你可以使用这个(flexbox 技术),只需在 class row 旁边添加 class row 和下面的 css(并稍微修改你的 css)

HTML

<div class="row row-eq-height">
    <!--Whatever content you want-->
</div>

CSS

.row-eq-height {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
}
.singleheader-list-style {
    background-color:#fff;
    border-left: 1px solid #9c9c9c;
    border-right: 1px solid #9c9c9c;
    padding:20px;
    height:100% /*--New Attribute--*/
}
.singleheader-content-style {
    background-color: #fff;
    border-right: 1px solid #9c9c9c;
    height: 100%; /*--New Attribute (just for sure in case your left col taller)--*/
    padding: 20px;
}

希望为您提供帮助!

【讨论】:

  • 我确实试过这个。但我没有添加 CSS,我认为 row-eq-height 是引导程序的一部分?我会再试一次。
  • 我第一次使用它时我也是这样,但我在 boostrap css 文件中找不到类名及其属性,所以我想我错过了一些东西,所以我仔细检查并找到了这个;这个技巧本身有点棘手,对吧?
  • 现在再试一次。我对我没有任何影响。一切看起来还是一样
  • @Alex 已编辑,再次查看并告诉我结果
【解决方案2】:

您可以为此使用 jquery。获取较高元素的高度并将其设置为较小的元素。有一个stackoverflow question about that,我过去用过它,它可以工作。

【讨论】:

  • 是的,我知道我能做到!但是感觉没有理由将 jquery 用于可以用 HTML 和 CSS 完成的事情:)
  • 除非他们改变了 html 和 css 的工作方式,否则你不能。 CSS 和 HTML 不知道它们的高度,除非你特别告诉它们。如果您的页面将包含静态内容,您可以使用@media 破解它。否则 jQuery 是你唯一的出路。
  • 好吧,你可以用 table-cell 解决这个问题,但我认为它必须是比现在更好的解决方案。而且正如上面的答案所说,许多人认为这可以用 flex-box 解决。但我无法让它工作:)
猜你喜欢
  • 2017-07-21
  • 1970-01-01
  • 2017-02-08
  • 2020-10-03
  • 2013-11-10
  • 2013-04-04
相关资源
最近更新 更多