【问题标题】:Cards with different sizes in Bootstrap 4 card-groupBootstrap 4卡组中不同大小的卡
【发布时间】:2016-06-17 13:26:39
【问题描述】:

是否可以在 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>

【问题讨论】:

    标签: twitter-bootstrap twitter-bootstrap-4 bootstrap-4


    【解决方案1】:

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

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

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

    注意:像这样的通配符 CSS 选择器很慢。最好添加一个特殊的 CSS 类来覆盖 card-group 中列的 Bootstrap float:left 行为

    更新

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

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

    【讨论】:

      【解决方案2】:

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

      目前,这些布局选项还没有响应。

      然而,正如Zim's answer 所指出的,卡片组现在是弹性盒。因此,您也可以覆盖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

      【讨论】:

        【解决方案3】:

        另见https://stackoverflow.com/a/35627731/1596547,正如@Skelly 已经解释的那样,预定义的网格类(col-md-*)不仅通过float 设置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>
        

        【讨论】:

          猜你喜欢
          • 2020-08-24
          • 2021-06-13
          • 2018-11-24
          • 2018-08-06
          • 1970-01-01
          • 1970-01-01
          • 2021-12-04
          • 2017-01-03
          • 2020-10-03
          相关资源
          最近更新 更多