Bootstrap 4 个卡片组中大小不同的卡片

Cards with different sizes in Bootstrap 4 card-group

是否可以在 Bootstrap 中的卡片组中混合使用不同尺寸的卡片 4. 我想在左边放一张大卡片(双倍宽度),在右边放两张小卡片, 三者高度相同。

<div class="container">
  <div class="row">
    <div class="card-group">
        <div class="card col-md-6">
          <div class="card-block">
            <h4 class="card-title">Card 1</h4>
            <p class="card-text">Text 1</p>
          </div>
        </div>
         <div class="card col-md-3">
          <div class="card-block">
            <h4 class="card-title">Card 2</h4>
            <p class="card-text">Text 2</p>
            <p class="card-text">More text 2</p>
            <p class="card-text">More text 2</p>
          </div>
        </div>
        <div class="card col-md-3">
          <div class="card-block">
            <h4 class="card-title">Card 3</h4>
            <p class="card-text">Text 3</p>
          </div>
        </div>
      </div>
    </div>
  </div>

我认为卡片组的意图是宽度和高度相等(http://v4-alpha.getbootstrap.com/components/card/#groups),但您可以覆盖默认的 Bootstrap 行为以使其像这样工作..

.card-group [class*='col-'] {
  float:none;
}

http://codeply.com/go/4WVwRBTyTP

注意:像这样的通配符 CSS 选择器很慢。最好添加一个特殊的 CSS class 来覆盖 card-group

中列的 Bootstrap float:left 行为

更新

现在 BS4 有了 flexbox,不再需要额外的 CSS。只需将 card-grouprow 设为相同的 div,然后照常使用 col-* 设置宽度即可。但是,使用 card-group 将阻止响应式列换行。

http://www.codeply.com/go/jzIcjyg6Xa

另见 ,正如@Skelly 已经解释的那样,预定义网格 类 (col-md-*) 不仅要通过 [=13] 设置 width =].

除了使用网格 类,您还可以直接应用 width

    <div class="card-group">
        <div class="card" style="width:50%;">
          <div class="card-block">
            <h4 class="card-title">Card 1</h4>
            <p class="card-text">Text 1</p>
          </div>
        </div>
         <div class="card">
          <div class="card-block">
            <h4 class="card-title">Card 2</h4>
            <p class="card-text">Text 2</p>
            <p class="card-text">More text 2</p>
            <p class="card-text">More text 2</p>
          </div>
        </div>
        <div class="card">
          <div class="card-block">
            <h4 class="card-title">Card 3</h4>
            <p class="card-text">Text 3</p>
          </div>
        </div>
      </div>

card layout 的 Bootstrap 4.1 文档目前指出:

For the time being, these layout options are not yet responsive.

然而,正如 所指出的,卡片组现在是 flexbox。因此,您也可以覆盖 flex-grow 样式来设置相对卡片大小。

<div class="card-group">
    <div class="card" style="flex-grow: 2">
        <div class="card-block">
            <h4 class="card-title">Card 1</h4>
            <p class="card-text">Text 1</p>
        </div>
    </div>
    <div class="card">
        <div class="card-block">
            <h4 class="card-title">Card 2</h4>
            <p class="card-text">Text 2</p>
            <p class="card-text">More text 2</p>
            <p class="card-text">More text 2</p>
        </div>
    </div>
    <div class="card">
        <div class="card-block">
            <h4 class="card-title">Card 3</h4>
            <p class="card-text">Text 3</p>
        </div>
    </div>
</div>

Codeply