响应式媒体查询在 Google Chrome 中不起作用

问题描述 投票:0回答:13

我编写了一段 CSS 代码来根据用户的屏幕宽度流畅地切换网站布局的宽度。如果用户可用的屏幕空间较少,布局的宽度会增加以填充更多的窗口并留下更少的空白,如果用户有更多的空间,布局会缩小以保持吸引人的外观。

我使用以下代码来实现此目的:

#bg{
    background:-webkit-linear-gradient(90deg, #0f0f0f 0%,#222222 400px);
    background:-moz-linear-gradient(90deg, #0f0f0f 0%,#222222 400px);
    background:-o-linear-gradient(90deg, #0f0f0f 0%,#222222 400px);
    background:linear-gradient(90deg, #0f0f0f 0%,#222222 400px);
    margin-left:auto;
    margin-right:auto;
    margin-bottom:1.6rem;
    border-width:0 0.1rem 0.1rem 0.1rem;
    border-style:solid;
    border-color:#303030 #101010 #000;
    border-radius:0.8rem;
    min-width:94.2rem
}

@media (min-width: 70rem){
    #bg{
        border-radius:4px;
        border-radius:0.4rem;
        width:90%
    }

}

@media (min-width: 91rem){
    #bg{
        width:80%
    }

}

@media (min-width: 112rem){
    #bg{
        width:70%
    }

}

这在 Firefox 30 中工作得很好,但是 Google Chrome 总是以 70% 宽度显示元素。

之前,我还在查询中使用过 max-width,在这种情况下 Chrome 会做相反的事情;无论我调整浏览器窗口大小多少,它总是以 90% 显示元素。

规则是使用SASS编译的。这里到底有什么问题呢?如何更改查询以在所有浏览器中工作?

可以在此链接找到受影响的网站。

css google-chrome firefox width media-queries
13个回答
117
投票

将此行添加到

<head>

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

13
投票

如果您在桌面上使用Chrome(或任何浏览器),则浏览器缩放应为100%。不多也不少。否则,响应式不起作用(在 Windows 中使用 Ctrl + 滚动,或在 Mac 中使用 Cmd +/- 进行调整)。


6
投票

您可以根据您的需要进行调整

// css for mobile here
// ...

/* desktop */
@media (min-width: 900px) and (orientation: landscape)
{
    // css for desktop here
    // ...
}

别忘了

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

3
投票

我在使用 chrome 时遇到了一个问题,一旦我们穿过应该受到影响的像素,它就会加载 css,添加十进制值可以解决我的问题。

@media (max-width: 767.98px){...}

Bootstrap 4 CSS 中也遵循同样的做法。


2
投票
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <style>
        body{
            background:green;
        }
        @media only screen and (max-width: 500px) {
            body{
                background:yellow;
            }
        }
    </style>
</head>
<body>

</body>
</html>

2
投票

试试这个,和Hassan的回复类似,只需添加

minimum-scale=1

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

1
投票

看看这种更常用的语法是否效果更好:

@media screen and (min-width: 112rem){ ... }

0
投票

全部都是正确的,但是Chech this

@media only screen and (min-width : 320px) {...}

@媒体屏幕和(最小宽度:320px){...}

/*==========  Mobile First Method  ==========*/

        /* Custom, iPhone Retina */ 
        @media only screen and (min-width : 320px) {

        }

        /* Extra Small Devices, Phones */ 
        @media only screen and (min-width : 480px) {

        }

        /* Small Devices, Tablets */
        @media only screen and (min-width : 768px) {

        }

        /* Medium Devices, Desktops */
        @media only screen and (min-width : 992px) {

        }

        /* Large Devices, Wide Screens */
        @media only screen and (min-width : 1200px) {

        }



        /*==========  Non-Mobile First Method  ==========*/

        /* Large Devices, Wide Screens */
        @media only screen and (max-width : 1200px) {

        }

        /* Medium Devices, Desktops */
        @media only screen and (max-width : 992px) {

        }

        /* Small Devices, Tablets */
        @media only screen and (max-width : 768px) {

        }

        /* Extra Small Devices, Phones */ 
        @media only screen and (max-width : 480px) {

        }

        /* Custom, iPhone Retina */ 
        @media only screen and (max-width : 320px) {

        }

0
投票

请用“;”结束您的代码试试这个

@media (min-width: 70rem){
#bg{
    border-radius:4px !important;
    border-radius:0.4rem !important;
    width:90% !important;
}

0
投票

正如其他人上面所说,在桌面上,您需要检查缩放是否设置为 100% 以及使用视口元标记


0
投票

我的问题是我试图使用

@media (width > x)
风格的媒体查询,而不是
@media (min-width: x)
。 Firefox 正确处理了媒体查询,但 Chrome 忽略了它。


0
投票

还请指出。

如果你写一个这样的媒体查询 `

@media screen and(max-width:500px){
    body {
        color:green;   
    }
}

`

如果它不起作用,问题是没有像这样间隔单词和和括号

and (


0
投票

我有一个问题,我的代码媒体查询最初在 chrome 上工作得很好,但突然间它停止工作,显示扭曲,特别是当其中有 php 代码时,但如果它没有 php 代码,它显示正常,同样的代码显示在其他浏览器中,即使使用 php bt chrome 也不会接受它,请问我该怎么办?

© www.soinside.com 2019 - 2024. All rights reserved.