更新时间:2022-11-02 14:06:32
如果您设置 max-height:calc(100 %/(总高度/自身高度))
和高度: #imagecontainer
的高度为100% >它也可以在Firefox上使用。 相关答案
If you set max-height: calc(100% / (total height / own height))
and height: 100%
for #imagecontainer
it will work on Firefox also. Related answer
Image in flex container with limited height
<div style="display: flex; flex-direction: column; border: 1px solid black; height: 110px; width: 200px; align-items: flex-start; ">
<div id="imagecontainer" style="position: relative; flex-shrink: 1; flex-basis: 120px; min-height: 0; box-sizing: border-box; border: 1px solid red; width: min-content; max-height: calc(100% / (270 / 120));height: 100%;">
<img src="https://via.placeholder.com/120.png" style=" height: 100%;" />
</div>
<div id="imagecontainer" style="position: relative; flex-shrink: 1; flex-basis: 150px; min-height: 0; box-sizing: border-box; border: 1px solid red; width: fit-content; max-height: calc(100% / (270 / 150));height: 100%;">
<img src="https://via.placeholder.com/150.png" style=" height: 100%;" />
</div>
</div>
Original image<br />
<img src="https://via.placeholder.com/150.png" style="border: 1px solid black;" />
<br />
Image in just a simple div with limited height
<div style="position: relative; height: 110px; border: 1px solid red; width: min-content;">
<img src="https://via.placeholder.com/150.png" style="max-height: 150px; height: 100%;" />
</div>
如果flex容器中有3个元素:
If there are 3 elements in flex container:
Image in flex container with limited height
<div style="display: flex; flex-direction: column; border: 1px solid black; height: 110px; width: 200px; align-items: flex-start;">
<div id="imagecontainer" style="position: relative; flex-shrink: 1; flex-basis: 120px; min-height: 0; box-sizing: border-box; border: 1px solid red; width: min-content; max-height: calc(100% / (420 / 120)); height: 100%;">
<img src="https://via.placeholder.com/120.png" style=" height: 100%;" />
</div>
<div id="imagecontainer" style="position: relative; flex-shrink: 1; flex-basis: 150px; min-height: 0; box-sizing: border-box; border: 1px solid red; width: min-content; max-height: calc(100% / (420 / 150));height: 100%;">
<img src="https://via.placeholder.com/150.png" style=" height: 100%;" />
</div>
<div id="imagecontainer" style="position: relative; flex-shrink: 1; flex-basis: 150px; min-height: 0; box-sizing: border-box; border: 1px solid red; width: min-content; max-height: calc(100% / (420 / 150));height: 100%;">
<img src="https://via.placeholder.com/150.png" style=" height: 100%;" />
</div>
</div>
Original image<br />
<img src="https://via.placeholder.com/150.png" style="border: 1px solid black;" />
<br />
Image in just a simple div with limited height
<div style="position: relative; height: 110px; border: 1px solid red; width: min-content;">
<img src="https://via.placeholder.com/150.png" style="max-height: 150px; height: 100%;" />
</div>