Bootstrap - 具有相同高度和宽度的面板

时间:2015-09-02 12:07:03

标签: css twitter-bootstrap panel

我的div.row包含3个不同内容的面板:

<div class="row equal">

    <div class="col-md-4">
      <div class="panel panel-default">
        <div class="panel-body">
          <h3>Title 1</h3>
          <p>This is a paragraph</p>
          <p>This is a paragraph</p>
        </div>
      </div>
    </div>

    <div class="col-md-4">
      <div class="panel panel-default">
        <div class="panel-body">
          <h3>Title 2</h3>
          <p>This is a paragraph</p>
          <p>This is a paragraph</p>
          <p>This is a paragraph</p>
        </div>
      </div>
    </div>

    <div class="col-md-4">
      <div class="panel panel-default">
        <div class="panel-body">
          <h3>Title 3</h3>
          <p>This is a paragraph</p>
        </div>
      </div>
    </div>

</div>

我想将所有面板设置为具有相同的高度,无论其内容如何,​​就像这个主题Twitter Bootstrap 3 - Panels of Equal Height in a Fluid Row一样,所以我设置了.equal类。

.equal, .equal > div[class*='col-'] {  
        display: -webkit-box;
        display: -moz-box;
        display: -ms-flexbox;
        display: -webkit-flex;
        display: flex;
        flex:1 1 auto;
}

问题是,尽管高度设置为等于所有面板,但每个面板的宽度都发生了变化,所以现在我的面板宽度不同(默认面板)。

有没有办法可以修正宽度,或者可以用另一种方法在我的所有面板上都有相同的宽度和高度?

JSFiddle

2 个答案:

答案 0 :(得分:4)

我想你想要这样的东西:

设置分开以便于参考。

.equal {
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
}

div[class*='col-'] {
  flex:1 1 auto;
  background: lightblue;
  display: flex;
}
.panel {
  flex:1 0 100%;
}

Codepen Demo

答案 1 :(得分:1)

如果您设置父级和所有高度为100%的子级的高度怎么办?

.equal{
    height:200px;
}
.col-md-4, .panel{
    height:100%;
}

https://jsfiddle.net/aroxv143/1/