相同高度列引导3行响应

use*_*494 34 html css twitter-bootstrap twitter-bootstrap-3

嗨,我在引导行中有四个div.我希望这一行中的所有div都具有相同的高度,而不是破坏责任.我不知道如何在不违背责任的情况下做到这一点.

我试过用固定的高度解决这个问题,但就响应性而言,这是一个糟糕的解决方案.

谢谢 :-)

<div class="row">
    <div class="col-md-3 index_div_item">
        <a href="#">
        <div class="well" id="item1">
                <h1 class="h1_item"><span class="titre_item">Title</span></h1>
                <h2 class="h2_item_glyphicon"><span class="glyphicon glyphicon-ok-circle"></span></h2>
                <p>sidiis amicorum mariti inops cum liberis uxor alitur Reguli et dotatur ex aerario filia Scipionis, cum nobilitas florem adultae virginis diuturnum absentia pauperis erubesceret patr</p>                
        </div>
        </a>
    </div>    
    <div class="col-md-3 index_div_item">
        <a href="#">
            <div class="well" id="item2">
                <h1 class="h1_item"><span class="titre_item">Title</span></h1>
                <h2  class="h2_item_glyphicon"><span class="glyphicon glyphicon-stats"></span></h2>
                <p>sidiis amicorum mariti inops cum liberis uxor alitur Reguli et dotatur ex aerario filia Scipionis, cum nobilitas florem adultae virginis diuturnum absentia pauperis erubesceret patr</p>
            </div>  
        </a>
    </div>    
    <div class="col-md-3 index_div_item">
        <a href="#">
            <div class="well" id="item3">
                <h1 class="h1_item"><span class="titre_item">Title</span></h1>
                <h2  class="h2_item_glyphicon"><span class="glyphicon glyphicon-send"></span></h2>
                <p>sidiis amicorum mariti inops cum liberis uxor alitur Reguli et dotatur ex aerario filia Scipionis, cum nobilitas florem adultae virginis diuturnum absentia pauperis erubesceret patr</p>
            </div>
        </a> 
    </div>  
    <div class="col-md-3 index_div_item">
        <a href="#">
            <div class="well" id="item4">
                <h1 class="h1_item"><span class="titre_item">Title</span></h1>
                <h2  class="h2_item_glyphicon"><span class="glyphicon glyphicon-cog"></span></h2>
                <p>sidiis amicorum mariti inops cum liberis uxor alitur Reguli et dotatur ex aerario filia Scipionis, cum nobilitas florem adultae virginis diuturnum absentia pauperis erubesceret patr</p>                
            </div>  
        </a>  
    </div>              
</div>
Run Code Online (Sandbox Code Playgroud)

pau*_*dru 66

您可以使用javascript实现此目的.找出4个div的最大高度,并使它们像最大的一样处于同一高度.

这是代码:

$( document ).ready(function() {
    var heights = $(".well").map(function() {
        return $(this).height();
    }).get(),

    maxHeight = Math.max.apply(null, heights);

    $(".well").height(maxHeight);
});
Run Code Online (Sandbox Code Playgroud)

  • 这实际上是与响应性一起工作的唯一解决方案. (6认同)
  • 确实是唯一的解决方案.我发现的所有其他答案都打破了响应能力!我不是webdev,只是一个系统管理员试图调整一些内容....但我期待这是一个简单的引导程序3?什么是持有? (6认同)
  • 它没有工作(如解释).我做了一个js小提琴:https://jsfiddle.net/mkjbq9ap/尝试调整页面大小,以便块不适合行中的一行.他们保持高度.这不如下面的代码. (4认同)
  • 嗯,你知道当我们谈论响应式设计时,我们谈论宽度一般而不是高度.一切都与宽度有关......相同的高度与响应式设计无关,不幸的是,似乎bootstrap 3没有这方面的easyer解决方案. (2认同)

cvr*_*ert 21

曾经有一个使用带有Bootstrap的CSS flexbox的相同高度列的官方实验示例.这是它的要点:

.row-eq-height {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
}
Run Code Online (Sandbox Code Playgroud)

然后用<div class="row row-eq-height">而不是<div class="row">.

请注意,IE <10不支持flexbox.

  • 请注意,这样做会删除子col*类的几乎所有默认网格样式.几乎没有任何响应功能可以在flex行中工作. (13认同)
  • 这非常有效,除了它打破了列堆叠.因此,请将其括在@media规则中,并仅在未堆叠时应用. (2认同)

小智 8

仅供参考 - 我这样做是为了解决我的问题,包括与bootstrap中的断点相匹配的响应断点.(我使用来自bootstrap的LESS变量来同步断点,但下面是已编译的css版本)

@media (min-width: 0px) and (max-width: 767px) {
  .fsi-row-xs-level {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .fsi-row-sm-level {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
  }
}
@media (min-width: 992px) and (max-width: 1199px) {
  .fsi-row-md-level {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
  }
}
@media (min-width: 1200px) {
  .fsi-row-lg-level {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
  }
}
Run Code Online (Sandbox Code Playgroud)

然后将类添加到父所需的类中.

<div class="row fsi-row-lg-level fsi-row-md-level">
<div class="col-sm-4">column 1</div>
<div class="col-sm-4">column 2</div>
<div class="col-sm-4">column 3</div>
</div>
Run Code Online (Sandbox Code Playgroud)


max*_*992 5

编辑1:我不得不帮助那些人,所以我做了一个plunkr.转到"script.js"并注释"bootstrap_equalizer();" 函数看原始bootstrap,没有相同的高度列.

我知道这有点晚了,但我确信这可以改善您的代码并帮助其他人!:)

因为我习惯与Foundation 5合作,当我必须使用bootstrap时,我会想念"均衡器".

我做了一个小函数来调用你必须"均衡"某些列的页面.我的代码基于@paulalexandru响应!

function bootstrap_equalizer() {
  $(".equalizer").each(function() {
    var heights = $(this).find(".watch").map(function() {
      return $(this).height();
    }).get(),

    maxHeight = Math.max.apply(null, heights);

    $(".watch").height(maxHeight);
  });
}
Run Code Online (Sandbox Code Playgroud)

在HTML方面,你只需要这样做:

<div class="container">
   <div class="row equalizer">
      <div class="watch">
         Column 1
      </div>

      <div class="watch">
         Column 2
      </div>
   </div>
</div>
Run Code Online (Sandbox Code Playgroud)

第1列和第2列将具有相同的高度!你当然可以拥有超过2列!

希望这可以帮助!=)