【问题标题】:Bootstrap 4 - Line up element containers across columns to have equal heightsBootstrap 4 - 跨列排列元素容器以具有相等的高度
【发布时间】:2019-07-12 12:15:17
【问题描述】:

使用 Bootstrap 4 行和列是否可以将所有元素对齐到每个部分(如标题和图像)的相等容器高度,以便每列中的所有内容都对齐?

示例:

我最关心的是排列图像并在需要时裁剪它们。图片标签 src 将来自 api 调用,所以我不确定是否可以将它们添加为容器的背景。

不确定最好的解决方法是什么...

代码:

<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>

  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
  <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
</head>

<body>
  <section class="container-fluid product-section" id="productSection">
    <div class="row card-row">
      <div class="card-col col-sm-6 col-md-4 col-lg-2" id="001">
        <div class="card-container">
          <div class="card-title">
            <h5>Heading single line</h5>
          </div>
          <div class="card-img-container">
            <img class="img-fluid rounded" src="https://placeimg.com/300/300/tech" alt="" />
          </div>
          <div class="card-description">
            <p class="text-muted">
              See Description<span class="float-right">+</span>
            </p>
          </div>
          <div class="af-button-group">
            <div class="af-link">
              <p>Link 1<span class="float-right">More</span></p>
              <p>Link 2<span class="float-right">More</span></p>
              <p>Link 3<span class="float-right">More</span></p>
              <p>Link 4<span class="float-right">More</span></p>
            </div>
          </div>
        </div>
      </div>
      <div class="card-col col-sm-6 col-md-4 col-lg-2" id="002">
        <div class="card-container">
          <div class="card-title">
            <h5>Heading double line of text copy and info</h5>
          </div>
          <div class="card-img-container">
            <img class="img-fluid rounded" src="https://placeimg.com/300/200/nature" alt="" />
          </div>
          <div class="card-description">
            <p class="text-muted">
              See Description<span class="float-right">+</span>
            </p>
          </div>
          <div class="af-button-group">
            <div class="af-link">
              <p>Link 1<span class="float-right">More</span></p>
              <p>Link 2<span class="float-right">More</span></p>
              <p>Link 3<span class="float-right">More</span></p>
              <p>Link 4<span class="float-right">More</span></p>
            </div>
          </div>
        </div>
      </div>
      <div class="card-col col-sm-6 col-md-4 col-lg-2" id="003">
        <div class="card-container">
          <div class="card-title">
            <h5>Heading single line</h5>
          </div>
          <div class="card-img-container">
            <img class="img-fluid rounded" src="https://placeimg.com/300/300/people" alt="" />
          </div>
          <div class="card-description">
            <p class="text-muted">
              See Description<span class="float-right">+</span>
            </p>
          </div>
          <div class="af-button-group">
            <div class="af-link">
              <p>Link 1<span class="float-right">More</span></p>
              <p>Link 2<span class="float-right">More</span></p>
              <p>Link 3<span class="float-right">More</span></p>
              <p>Link 4<span class="float-right">More</span></p>
            </div>
          </div>
        </div>
      </div>
      <div class="card-col col-sm-6 col-md-4 col-lg-2" id="004">
        <div class="card-container">
          <div class="card-title">
            <h5>Heading with three lines of copy and information to try and line up.</h5>
          </div>
          <div class="card-img-container">
            <img class="img-fluid rounded" src="https://placeimg.com/300/350/animals" alt="" />
          </div>
          <div class="card-description">
            <p class="text-muted">
              See Description<span class="float-right">+</span>
            </p>
          </div>
          <div class="af-button-group">
            <div class="af-link">
              <p>Link 1<span class="float-right">More</span></p>
              <p>Link 2<span class="float-right">More</span></p>
              <p>Link 3<span class="float-right">More</span></p>
              <p>Link 4<span class="float-right">More</span></p>
            </div>
          </div>
        </div>
      </div>
    </div>
  </section>
</body>

</html>

【问题讨论】:

    标签: css twitter-bootstrap flexbox bootstrap-4 multiple-columns


    【解决方案1】:

    这是你想要的吗??

    h5 {
        font-size: 1.25rem;
        text-overflow: ellipsis;
        white-space: nowrap;
        overflow: hidden;
    }
    
    .card-img-container .rounded {
        border-radius: .25rem!important;
        height: 200px;
        width: 100%;
        object-fit: cover;
        object-position: center;
    }
    <!DOCTYPE html>
    <html>
    
    <head>
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width">
      <title>JS Bin</title>
    
      <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
      <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
      <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
      <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
    </head>
    
    <body>
      <section class="container-fluid product-section" id="productSection">
        <div class="row card-row">
          <div class="card-col col-sm-6 col-md-4 col-lg-2" id="001">
            <div class="card-container">
              <div class="card-title">
                <h5>Heading single line</h5>
              </div>
              <div class="card-img-container">
                <img class="img-fluid rounded" src="https://placeimg.com/300/300/tech" alt="" />
              </div>
              <div class="card-description">
                <p class="text-muted">
                  See Description<span class="float-right">+</span>
                </p>
              </div>
              <div class="af-button-group">
                <div class="af-link">
                  <p>Link 1<span class="float-right">More</span></p>
                  <p>Link 2<span class="float-right">More</span></p>
                  <p>Link 3<span class="float-right">More</span></p>
                  <p>Link 4<span class="float-right">More</span></p>
                </div>
              </div>
            </div>
          </div>
          <div class="card-col col-sm-6 col-md-4 col-lg-2" id="002">
            <div class="card-container">
              <div class="card-title">
                <h5>Heading double line of text copy and info</h5>
              </div>
              <div class="card-img-container">
                <img class="img-fluid rounded" src="https://placeimg.com/300/200/nature" alt="" />
              </div>
              <div class="card-description">
                <p class="text-muted">
                  See Description<span class="float-right">+</span>
                </p>
              </div>
              <div class="af-button-group">
                <div class="af-link">
                  <p>Link 1<span class="float-right">More</span></p>
                  <p>Link 2<span class="float-right">More</span></p>
                  <p>Link 3<span class="float-right">More</span></p>
                  <p>Link 4<span class="float-right">More</span></p>
                </div>
              </div>
            </div>
          </div>
          <div class="card-col col-sm-6 col-md-4 col-lg-2" id="003">
            <div class="card-container">
              <div class="card-title">
                <h5>Heading single line</h5>
              </div>
              <div class="card-img-container">
                <img class="img-fluid rounded" src="https://placeimg.com/300/300/people" alt="" />
              </div>
              <div class="card-description">
                <p class="text-muted">
                  See Description<span class="float-right">+</span>
                </p>
              </div>
              <div class="af-button-group">
                <div class="af-link">
                  <p>Link 1<span class="float-right">More</span></p>
                  <p>Link 2<span class="float-right">More</span></p>
                  <p>Link 3<span class="float-right">More</span></p>
                  <p>Link 4<span class="float-right">More</span></p>
                </div>
              </div>
            </div>
          </div>
          <div class="card-col col-sm-6 col-md-4 col-lg-2" id="004">
            <div class="card-container">
              <div class="card-title">
                <h5>Heading with three lines of copy and information to try and line up.</h5>
              </div>
              <div class="card-img-container">
                <img class="img-fluid rounded" src="https://placeimg.com/300/350/animals" alt="" />
              </div>
              <div class="card-description">
                <p class="text-muted">
                  See Description<span class="float-right">+</span>
                </p>
              </div>
              <div class="af-button-group">
                <div class="af-link">
                  <p>Link 1<span class="float-right">More</span></p>
                  <p>Link 2<span class="float-right">More</span></p>
                  <p>Link 3<span class="float-right">More</span></p>
                  <p>Link 4<span class="float-right">More</span></p>
                </div>
              </div>
            </div>
          </div>
        </div>
      </section>
    </body>
    
    </html>

    【讨论】:

    • 感谢您的帮助。这将适用于我正在尝试做的事情。但我想知道有没有办法使用 flexbox 并跨列拉伸或增长容器?如果可能的话,最好显示所有标题。
    • flex 只调整宽度不调整高度。
    猜你喜欢
    • 2018-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-13
    • 2013-01-17
    • 2019-03-06
    • 2020-10-18
    • 1970-01-01
    相关资源
    最近更新 更多