Z jakiegoś powodu tryb emulacji urządzenia nie odczytuje moich zapytań o media. Działa na innych witrynach, w tym na moich własnych witrynach utworzonych za pomocą programu bootstrap, ale nie działa w przypadku zapytań o media, których używam od podstaw (kliknięcie przycisku zapytań o media zmienia kolor przycisku na niebieski, ale zapytania o media nie są wyświetlane). Plik testowy poniżej. Czy to błąd w przeglądarce Chrome, czy muszę coś zmienić w moim pliku?
<!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>
css
google-chrome
media-queries
developer-tools
Sam Scott
źródło
źródło
Odpowiedzi:
Rozwiązałem ten problem, dodając metatag do mojej strony:
<meta name="viewport" content="width=device-width">
AKTUALIZACJA (grudzień 2019):
Wygląda na to, że może być konieczne ustawienie skali początkowej i skali minimalnej, na przykład:
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1" />
źródło
946px
stronę do dowolnego rozmiaru ekranu, który emuluje. Możesz zobaczyć, że to prawda, sprawdzając, czy szerokość tagu body na problematycznej stronie jest zawsze946px
w emulatorze. Znacznik viewport informuje przeglądarkę, jak powinna spróbować wyrenderować stronę.width=device-width
działa tak, jak można by się tego spodziewać, jednocześniewidth=100px
skalując wszystko w górę. Możesz przeczytać więcej na ten temat tutaj: w3schools.com/css/css_rwd_viewport.aspZaakceptowana odpowiedź nie zrobiła tego za mnie, musiałem też dodać
minimum-scale=1
.<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1" />
źródło
Emulacja urządzenia w Chrome to nadal WIP. Szczerze mówiąc, myślę, że trochę za wcześnie przenieśli to do Chrome. Spróbuj użyć Canary (przeglądarki Chrome w wersji beta), aby przetestować emulację, stwierdzam, że działa znacznie lepiej niż ta w Chrome.
źródło
Pracuje dla mnie.
Po prostu umieść metatag viewport w sekcji head swojej strony. Zobacz przykład:
<head> <!--include the following meta tag to make chrome dev tools recognize media queries: --> <meta name="viewport" content="width=device-width"> </head>
źródło
Umieść ten metatag w swoim kodzie:
<head> <!--include the following meta tag to make chrome dev tools recognize media queries: --> <meta name="viewport" content="width=device-width"> </head>
źródło
Utrzymywałem ten sam problem, dopóki nie zauważyłem, że jeśli mam więcej niż jedną implementację dla tego samego zestawu reguł w zależności od rozmiaru ekranu:
Określ minimalną i maksymalną szerokość tego samego zapytania o media, aby nie zostało nadpisane przez kolejne:
@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 ; }
Lub ustaw co najmniej jeden punkt przerwania dla wszystkich:
@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 ; } }
źródło