为什么CSS最小宽度导致我的回应式网站将在移动放大?(Why is CSS min-width ca

2019-10-20 21:12发布

我建立一个响应网站,我有这意味着,当我认为它在移动,它会自动通过少量的放大出了问题。 我可以缩小查看的页面的整个宽度,但是当我点击一个链接到另一个网页,在稍新的页面加载在放大以及(也许10%左右)。

我给自己定一个合适的视口应处理的问题:

<meta name="viewport" content="width=device-width, initial-scale=1" />

我也设置在身上,这是必要的最小宽度低于这个宽度站点布局符:

body {
    min-width: 400px;
}

如果没有最小宽度的网站的作品在移动设备上很好,但与最小宽度,页面负载略有放大。我已经试过这对Chrome和股票的浏览器在Android(在银河S3和Galaxy Nexus的)同样的结果,这样看来我误解的东西,而不是发现了一个错误。

最后,我想完全缩小(初始规模= 1)现场,并设置为400像素,所以我并不需要在严格的宽度担心布局的最小显示宽度。 这甚至可以实现?

Answer 1:

好吧,我已经成功地找到适当的解决这个问题。 问题是,我设置了视口的设备宽度,一般好像是做了一件好事。

当该装置宽度比为我的网站(400像素在这种情况下)设置的最小宽度越低就会出现问题。 因此,举例来说,如果设备宽度为320像素,视口被设置为这个宽度导致网页约为80px过大的手机屏幕。

该解决方案是一些JavaScript从装置宽度400中的实例,其中所述窗口宽度小于或等于400点的像素改变视口宽度。 下面这段代码解决的问题:

<meta id="myViewport" name="viewport" content="width=device-width" />
    <script>
        window.onload = function () {
            if(window.innerWidth <= 400) {
                var mvp = document.getElementById('myViewport');
                mvp.setAttribute('content','width=400');
            }
        }
     </script>


Answer 2:

您可以使用该功能防止变焦。

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

但我不认为这是一个好主意,保持

body
{
   min-width: 400px;
}

因为它的内容将溢出在一个较小的口中。 您缩放的问题可能是从组合

body
{
   min-width: 400px;
   overflow: hidden;
}

所以现在看来​​似乎在放大真实。



文章来源: Why is CSS min-width causing my responsive site to be zoomed in on a mobile?