图片不能超过 iPhone 上的设备宽度 5

Image cannot exceed device width on iPhone 5

我的问题是为什么 iPhone 5 上的图像不能超过其设备宽度,而我将图像的宽度设置为 200%。它在 Chrome 的开发模式下看起来和我预期的一样,但在真实设备上却不是。虽然我没有测试过其他设备,但我猜其他宽度小于320px的设备也会有同样的问题?


This is the screenshot from iPhone 5

And these are screenshots from Chrome's dev mode

这是相关的 html 片段

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=2.0, user-scalable=1">

<div class="landing">
    <div class="landing-container">
        <div class="landing-title-container" >
            <h1 class="landing-title">Let's Make Impacts</h1>
        </div>
        <div class="landing-img-container">
            <img class="landing-img landing-front" src="/materials/landing.png" alt="landing">
        </div>
    </div>
</div>

这是相关的 sass 片段

.landing {  
    width: 100%;
    height: 120vw;

    .landing-container {
        width: 100%;
        height: 100%;
    }

    .landing-img-container {
        height: 120vh;
        width: 100%;
        position: absolute;
        z-index: -1;
        overflow: hidden !important;    
        display: flex;
        justify-content: center;
        align-items: center;

        .landing-img {
            width: 200%;
            height: auto;
            display: block;
            margin: auto;                   
        }
}

如果这些片段不够详尽,请随时使用 Chrome 的开发模式检查我的代码。

感谢您的帮助!!

您在图像的父级上使用 flexbox 以使图像居中,这将影响缩放。 flex-shrink 的默认 属性 将防止图像比容器宽。

给图片添加flex-shrink: 0。这仍将允许居中,但不会限制图像的大小。

经常看到 max-width: 100%; 也应用于您可能需要撤消的图像。

.landing-img {
    width: 200%;
    height: auto;
    display: block;
    margin: auto;  
    flex-shrink: 0;  
    max-width: none;               
}

文档:https://developer.mozilla.org/en-US/docs/Web/CSS/flex-shrink