如何在 Bootstrap 卡片内使用 CSS 调整图像大小和裁剪图像?

How to resize and crop an image with CSS, inside a Bootstrap Card?

以下问题:我有一些 Bootstrap 个带图片的卡片元素,有些图片有不同的 sizes/ratios,比如中间的那个(见附件截图)。因此我的卡片元素不在一排。不太好看。

现在我想将这些图像调整为其他图像的高度,并裁剪溢出部分。我怎么做?这是我的一张卡片的代码片段...

<div id="cities">
  <div class="city">
    <div class="card">
      <div class="city-img-container">
        <img class="card-img-top city-img" src="..." alt="New York City">
      </div>
      <div class="card-body">
        <h5 class="card-title"><b>Name: </b>New York City</h5>
        <p class="card-text"><b>Land: </b>USA<br>
            <b>Spitzname: </b>The Big Apple</p>
        <div class="city-bottom-content">
            <a href="#/city?id=35" class="btn btn-primary" data-id="35">
              <i class="bi bi-arrow-right"></i>
            </a>
            <button data-id="35" class="is-favorite">
              <i class="bi bi-heart-fill"></i> 
            </button>
        </div>
    </div>
  </div>

  <div class="city">
    ...
  </div>
</div>

PS:#cities里面的卡片元素是用grid和grid-template-columns排列的。

谢谢呜呜! :)

screenshot

为图片标签指定一个固定高度,以便小图片自动展开。

<img class="card-img-top city-img" height="200px" src="..." alt="New York City">

您可以使用 object-fit 使所有图像的高度(和宽度)相同。

.card-img-top {
    width: 100%;
    height: 15vw;
    object-fit: cover;
}

在上面的示例中,所有图像的高度都是视口宽度的 15%。这可以随心所欲...500px10vh

object-fit: cover; 可能会隐藏部分图像 - 但也许您可以实现一种在单击时以全尺寸查看图像的方法?无论哪种方式,这都是保持卡片相当统一的好方法。

请注意,您只是对现有 Bootstrap class .card-img-top 进行了一些调整。您可以将此 CSS 包含在您的 HTML 文件中,在您的 CSS 文件中,或者如果您下载了 Bootstrap 文件中的 class。