适合屏幕上的图像CSS

rdlzhqv9  于 2023-08-08  发布在  其他
关注(0)|答案(2)|浏览(100)

我希望所有的这个样本HTML结构,以适应1屏幕没有滚动,图像已适当调整大小。但仍有滚动。

<div style="position: fixed; top:0;left:0;width:100vw;height:100vh;background:red;z-index:100000;display:flex;flex-direction:column">
    <div style="background:green">aaa</div>
    <div style="flex-grow:1">
        <img src="https://placehold.co/3200x3200" style="width: 100%; height: 100%; object-fit: contain;">
    </div>
    <div style="background:blue">bbb</div>
</div>

字符串

3ks5zfa0

3ks5zfa01#

环绕图像的div没有设置高度,它与图像的高度相匹配。这导致图像比屏幕大。尝试将div的高度设置为100%。这将匹配其父项的高度,即屏幕高度。
下面是一个示例:

<div style="position: fixed; top:0;left:0;width:100vw;height:100vh;background:red;z-index:100000;display:flex;flex-direction:column">
    <div style="background:green">aaa</div>
    <div style="display:flex;flex-grow:1;height:100%;overflow:auto;">
        <img src="https://placehold.co/3200x3200" style="width: 100%; height: 100%; object-fit: contain;">
    </div>
    <div style="background:blue">bbb</div>
</div>

字符串
这是你要找的吗

7gcisfzg

7gcisfzg2#

你可以在你的图像上使用绝对定位来确保它填充父div。另外,我会将对象的fit更改为cover而不是contain,否则它不会填充整个区域,除非区域和图像具有相同的长宽比(如果您不介意,那么可以将其保留为contain)。

<div style="position: fixed; top:0;left:0;width:100vw;height:100vh;background:red;z-index:100000;display:flex;flex-direction:column">
    <div style="background:green">aaa</div>
    <div style="flex-grow:1; position:relative;">
        <img src="https://placehold.co/3200x3200" style="object-fit: cover; position:absolute; top: 0; left:0; width: 100%; height: 100%;">
    </div>
    <div style="background:blue">bbb</div>
</div>

字符串

相关问题