我下面的代码几乎是从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
2条答案
按热度按时间t1qtbnec1#
在纯css中,你可以给你的图片添加一个宽度:
字符串
高度将自动计算。如果你知道尺寸,最好使用纵横比来防止重画/重新计算。
型
其中4/3是已知的纵横比。
编辑:我没有读你的问题的高度部分哈哈。
如果父对象有设定的高度,只需执行以下操作:
型
3wabscal2#
也许使用列来为图像留出空间,并使用
background-size: contain
将图像保持在容器div的边界内可能对您有用。请参见下面的示例代码
字符串