引导卡头 - 所有人的高度相同

Posted

技术标签:

【中文标题】引导卡头 - 所有人的高度相同【英文标题】:bootstrap card header - same height for all 【发布时间】:2020-12-05 17:40:33 【问题描述】:

我在两个网页上使用引导卡。在一页上,标题文本是固定的,因此我可以使用 min-height 来匹配它们的卡片标题高度。在第二页上,将生成这些卡片,因此我不知道文本长度和单词。我希望卡片标题在一行中的所有高度都相同。

有没有办法根据连续最大的卡片标题计算最小高度?

我已经在使用卡片组了。据我所知,这是针对整张卡片的高度,我的问题是卡片标题。卡片一般都具有相同的高度。

例子:

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <title>Bootstrap Example</title>
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width, initial-scale=1">
      <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
      <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
      <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
    </head>
    <body>
     
    <div class="container">
            <div class="card-deck my-3 text-center">
                <div class="card mb-4 box-shadow">
                    <div class="card-header align-items-center d-flex
                justify-content-center card-header-height">
                        <h4 class="my-0 font-weight-normal">Lorem Ipsum Lorem Ipsum Lorem Ipsum Ipsum</h4>
                    </div>
                    <div class="card-image">
                        <img class="img-fluid" src="img_avatar1.png">
                    </div>
                    <div class="card-body">
                        <ul class="list-unstyled mt-3 mb-4">
                        </ul>
                    </div>
                </div>
                <div class="card mb-4 box-shadow">
                    <div class="card-header align-items-center d-flex
                justify-content-center card-header-height">
                        <h4 class="my-0 font-weight-normal">Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum </h4>
                    </div>
                    <div class="card-image">
                        <img class="img-fluid" src="img_avatar1.png">
                    </div>
                    <div class="card-body">
                        <ul class="list-unstyled mt-3 mb-4">
                        </ul>
                    </div>
                </div>
                <div class="card mb-4 box-shadow">
                    <div class="card-header align-items-center d-flex
                justify-content-center card-header-height">
                        <h4 class="my-0 font-weight-normal">Lorem Ipsum Lorem Ipsum </h4>
                    </div>
                    <div class="card-image">
                        <img class="img-fluid" src="img_avatar1.png">
                    </div>
                    <div class="card-body">
                        <ul class="list-unstyled mt-3 mb-4">
                        </ul>
                    </div>
                </div>
            </div>
    </div>
    </body>
    </html>

更新 在卡体中添加列表(ul)和列表项(li)后,我遇到了同样的问题。我花了几个小时才弄清楚为什么卡头高度不再起作用。 确保您的 li 文本长度相似。我的一个 li 太长了,所以它是 2 行再次破坏了卡片标题的整体外观

【问题讨论】:

【参考方案1】:

你快到了。您只需要使用h-100 类来确保card-header 上的高度为100%d-flex

现场演示:

<!DOCTYPE html>
<html lang="en">

<head>
  <title>Bootstrap Example</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
</head>

<body>

  <div class="container">
    <div class="card-deck my-3 text-center">
      <div class="card mb-4 box-shadow">
        <div class="card-header d-flex align-items-center justify-content-center h-100">
          <h4 class="my-0 font-weight-normal">Lorem Ipsum Lorem Ipsum Lorem Ipsum Ipsum</h4>
        </div>
        <div class="card-image">
          <img class="img-fluid" src="https://via.placeholder.com/150">
        </div>
        <div class="card-body">
          <ul class="list-unstyled mt-3 mb-4">
          </ul>
        </div>
      </div>
      <div class="card mb-4 box-shadow">
        <div class="card-header d-flex align-items-center justify-content-center h-100">
          <h4 class="my-0 font-weight-normal">Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum </h4>
        </div>
        <div class="card-image">
          <img class="img-fluid" src="https://via.placeholder.com/150">
        </div>
        <div class="card-body">
          <ul class="list-unstyled mt-3 mb-4">
          </ul>
        </div>
      </div>
      <div class="card mb-4 box-shadow">
        <div class="card-header d-flex align-items-center justify-content-center h-100">
          <h4 class="my-0 font-weight-normal">Lorem Ipsum Lorem Ipsum </h4>
        </div>
        <div class="card-image">
          <img class="img-fluid" src="https://via.placeholder.com/150">
        </div>
        <div class="card-body">
          <ul class="list-unstyled mt-3 mb-4">
          </ul>
        </div>
      </div>
    </div>
  </div>
</body>

</html>

【讨论】:

我刚刚在这里发现了一个类似的问题。看起来你是对的。现在唯一的问题是在 768 到 794 像素宽度(iPad)上它不起作用。在标记任何解决方案之前,现在必须检查它。 @Yaerox 这应该可以 - 但是您可以使用 ipad 的媒体查询来确保高度保持不变100% 你要我添加 ipad 的媒体查询吗? 我有一些,如果我的问题在那里,我必须检查一下;) 通过使用 h-100,我可以删除所有修改我卡片的媒体查询。我的代码中仍然存在相同的问题,而您的 sn-p 没有。我找不到任何通过更改设备宽度来激活的媒体查询。您对我有什么提示吗?您想到了什么样的媒体查询? -- 更新:好的,所以我认为只要将 元素添加到卡体中的 就会出现问题。现在要检查这个。 @Yaerox 我非常怀疑这种结构是否可行,因为 row 和 col-md-4 在这里阻止了我们:(

以上是关于引导卡头 - 所有人的高度相同的主要内容,如果未能解决你的问题,请参考以下文章

如何设置 Twitter 引导缩略图的高度?

如何使下拉菜单的高度与引导程序4中子菜单的高度相同

如何裁剪引导图像以获得所有图像的宽度 285 和高度 170?

如何使引导列连续具有相同的高度?

引导列浮动问题。 DIVS 需要相同的高度

引导具有相同高度的列