Bootstrap 如何将图像的大小设置为尽可能大,但又不会大到导致父div的高度增加?

bkhjykvo  于 2023-08-01  发布在  Bootstrap
关注(0)|答案(2)|浏览(181)

我下面的代码几乎是从https://getbootstrap.com/docs/5.2/utilities/flex/#media-object上的例子中逐字逐句地取来的。它应该创建一个左边有一张图片,右边有一些文本的框:

<div class="mycard border border-dark m-3 p-3 d-flex align-items-center" style="width: 33%;">
  <div class="flex-shrink-0">
    <img src="https://s3.amazonaws.com/cdn.sidsavage.com/images/prods/popup/P8889.jpg">
  </div>
  <div class="flex-grow-1 ms-3">
    This is some content from a media component. You can replace this with any content and adjust it as needed.
  </div>
</div>

字符串
这里有一个陷阱:我使用的图像真的很大,这导致盒子变得一团糟。我可以通过将style="max-height: 70px;"添加到img标签来解决这个问题,但我事先不知道图像的大小。我想文字来决定盒子的高度,图像的大小要适合盒子的高度。
你可以在这里玩我的例子:https://codepen.io/Meekro/pen/oNQGMPM

t1qtbnec

t1qtbnec1#

在纯css中,你可以给你的图片添加一个宽度:

style="max-width:100%;"

字符串
高度将自动计算。如果你知道尺寸,最好使用纵横比来防止重画/重新计算。

style="max-width:100%;aspect-ratio:4/3;"


其中4/3是已知的纵横比。

编辑:我没有读你的问题的高度部分哈哈。

如果父对象有设定的高度,只需执行以下操作:

style="max-height:100%;max-width:100%;"

3wabscal

3wabscal2#

也许使用列来为图像留出空间,并使用background-size: contain将图像保持在容器div的边界内可能对您有用。
请参见下面的示例代码

<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js"></script>

<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" />

<div class="card">
  <div class="card-body">
    <div class="row">
    <div class="col-2" id="forImg" style='background: white url("https://s3.amazonaws.com/cdn.sidsavage.com/images/prods/popup/P8889.jpg") no-repeat center;
   background-size: contain;'>
    </div>    
    <div class="col-10">
      <p class="card-text">
      This is some content from a media component. You can replace this with any content and adjust it as needed.
    </p>
  <p class="card-text">
      This is some content from a media component. You can replace this with any content and adjust it as needed.
    </p>
    </div>
  </div>
</div>

字符串

相关问题