Chrome 기기 모드 에뮬레이션 미디어 쿼리가 작동하지 않음


94

어떤 이유로 장치 에뮬레이션 모드가 내 미디어 쿼리를 읽지 않습니다. 부트 스트랩으로 만든 내 사이트를 포함한 다른 사이트에서는 작동하지만 처음부터 사용중인 미디어 쿼리에서는 작동하지 않습니다 (미디어 쿼리 버튼을 클릭하면 버튼이 파란색으로 바뀌지 만 미디어 쿼리는 표시되지 않음). 아래 테스트 파일. 이것은 Chrome의 버그입니까, 아니면 파일에서 변경해야 할 사항이 있습니까?

<!DOCTYPE html>
<!--
Media Queries Example 1
Sam Scott, Fall 2014
-->
<html>
<head>
    <title>MQ Example 1</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <style>
        body { font-family: sans-serif; }
        h1 { color: red; } 
        h2 { color:blue; }
        p { color:green; }

        @media (max-width: 768px) and (min-width: 481px) {
            h1 { color: green; } 
            h2 { color:red; }
            p { color:blue; }
        }

        @media (max-width:479px), print { 
            h1,h2,p { color:black; }
        }

        @media print {
            body { font-family: serif; }
        }


    </style>
</head>
<body>
    <h1>I'm a first level heading</h1>
    <p>I'm a paragraph.</p>
    <h2>I'm a second level heading</h2>
    <p>I'm another paragraph.</p>
</body>
</html>

2
Sam Scott : @BananaNeil의 대답은 내 것보다 더 만족 스럽습니다.
Digger

답변:


247

내 페이지에 메타 태그를 추가하여이 문제를 해결했습니다.

 <meta name="viewport" content="width=device-width">

업데이트 (2019 년 12 월) :

다음과 같이 초기 배율과 최소 배율을 설정해야 할 수도 있습니다.

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

7
이것은 나에게도 효과적이었습니다. 이것이 왜 문제를 해결하는지 아십니까?
리치 토마스

@BananaNeil :이 솔루션이 작동하는 이유가 무엇인지 알고 싶습니다. 이견있는 사람 ?
dreamweiver

2
크롬 에뮬레이터는 항상 946px페이지 를 렌더링하고 에뮬레이트하는 화면 크기로 축소하려고 시도하는 것처럼 보입니다 . 문제가있는 페이지의 body 태그 너비가 항상 946px에뮬레이터 에 있는지 확인하면 이것이 사실임을 알 수 있습니다 . 뷰포트 태그는 페이지 렌더링을 시도하는 방법을 브라우저에 알려줍니다. 모든 것을 확장 width=device-width하면서 예상대로 작동합니다 width=100px. 여기에서 더 많은 것을 읽을 수 있습니다 : w3schools.com/css/css_rwd_viewport.asp
BananaNeil

2
확대 / 축소 한 경우 기발하게 작동 할 수도 있습니다. 입력 할 수있는 치수 만 얻을 수 있습니다. 당신이 cmd를 교대를 할 경우 맥에서 - 결국 모바일 에뮬레이터 목록 ... 거기에 갤럭시 S5, 아이폰 6 등 wtih 다시 팝업
JGFMK

1
이것이 기본값이 아니라는 것을 기억하기 어렵습니다.)
doublejosh

19

받아 들여진 대답은 나를 위해하지 않았으며 또한 추가해야 minimum-scale=1했습니다.

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

1
당신이 맞아요 내가이 추가 된 propertyminimum-scale = 1 .. thx
adnan tariq

6

Chrome의 기기 에뮬레이션은 여전히 ​​WIP입니다. 솔직히 말해서 너무 빨리 Chrome에 푸시했다고 생각합니다. Canary (Chrome 베타 브라우저)를 사용하여 에뮬레이션을 테스트 해보세요. Chrome보다 더 잘 작동합니다.


0

나를 위해 작동합니다.

페이지의 헤드 섹션에 뷰포트 메타 태그를 넣으십시오. 예를보십시오 :

 <head>
  <!--include the following meta tag to make chrome dev tools recognize media queries: -->
  <meta name="viewport" content="width=device-width">
</head>

0

코드에 다음 메타 태그를 포함하세요.

<head>
  <!--include the following meta tag to make chrome dev tools recognize media queries: -->
  <meta name="viewport" content="width=device-width">
</head>


0

화면 크기에 따라 동일한 규칙 집합에 대해 둘 이상의 구현이있는 경우 다음과 같은 사실을 알 때까지 동일한 문제가 계속 발생했습니다.

동일한 미디어 쿼리에 대해 최소 및 최대 너비를 모두 지정하여 후속 쿼리에서 덮어 쓰지 않도록합니다.

@media screen and (min-width:9px , max-width:9px) {

    css.selector { 

        style rules gets applied : in this range of screen sizes ;

    } 

}


css.selector{


    the other style get applied : starting from 10px ;

}

또는 모두에 대해 하나 이상의 중단 점을 설정하십시오.

@media screen and (min-width:9px) {

    some styles get applied : starting from this point ;

}

}

@media screen and (min-width:99px) {

    some styles gets applied : starting from this point ;

}

}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.