Мой iPhone считает, что его ширина составляет 980 пикселей.

Я пытаюсь создать набор из трех очень простых медиа-запросов для обработки экрана различных размеров. Вот что я придумал после нескольких головокружений:

@media all and (min-width: 0px) and (max-width: 480px)  { styles here }  
@media all and (min-width: 481px) and (max-width: 1023px)   {  styles here } 
@media all and (min-width: 1024px) {  styles here } 

В браузерах это работает так, как я ожидал, но когда я направляю на него свой iphone, он настаивает на отображении слогов для среднего размера. Играя с числами, я обнаружил, что только с максимальной шириной 980 пикселей iphone реагирует на стили в этом запросе.

Обратите внимание, что я использовал «все» в этих запросах, чтобы исключить какое-либо отношение к тому, нужно ли кодировать «портативный» или «экранный, портативный» и т. Д. Попытка упростить, чтобы помочь мне понять проблему.

Я подумал, что это могло иметь какое-то отношение к содержимому разрабатываемой мной страницы, поэтому я создал тестовую страницу без содержимого, чтобы попытаться определить проблему. Это в:

http://rgdaniel.com/test-mediaquery.php

Если я смотрю на эту страницу в своих браузерах на рабочем столе, она ведет себя так, как ожидалось, когда я увеличиваю и уменьшаю размер окна. Но iPhone сообщает о моем сообщении «среднего разрешения» при любой указанной максимальной ширине менее 980 пикселей. Любая помощь приветствуется, заранее спасибо.


person rgdaniel    schedule 13.11.2013    source источник
comment
Зачем нужно комбинировать минимальную ширину и максимальную ширину? Я видел только постепенное увеличение минимальной ширины.   -  person Aram Kocharyan    schedule 13.11.2013
comment
Также см. stephen.io/mediaqueries, если вы ориентируетесь конкретно на мобильные устройства.   -  person Aram Kocharyan    schedule 13.11.2013
comment
Сначала я использовал только max-width для первого, а затем min-width для двух других. У меня все еще возникали проблемы, как описано, поэтому я поигрался с запросами. Это как раз то место, где я приземлился.   -  person rgdaniel    schedule 13.11.2013
comment
Да, я использовал эти запросы из stephen.io точно так, как они были закодированы в какой-то момент, не мог заставить вещи вести себя ...   -  person rgdaniel    schedule 13.11.2013
comment
Вы это включили, <meta name="viewport" content="width=device-width, initial-scale=1.0">? Я не вижу этого в имеющейся у вас ссылке, и если вы этого не сделали, вам нужно включить это в свой тег head.   -  person Josh Powell    schedule 13.11.2013
comment
Я попробую это сейчас спасибо   -  person rgdaniel    schedule 13.11.2013
comment
Нет проблем, если поможет, добавлю как ответ. Это позволяет веб-сайту знать, что он используется на устройстве, а не на рабочем столе. Первый раз с media queries для меня привел к множеству головных болей, пока я не обнаружил, что забыл большую часть из них.   -  person Josh Powell    schedule 13.11.2013
comment
Аллилуйя, это сработало! СПАСИБО!!   -  person rgdaniel    schedule 13.11.2013
comment
Добро пожаловать, я включил ответ с небольшой дополнительной информацией. Если ответ устранил вашу проблему, отметьте его как принятый ответ. Удачи!   -  person Josh Powell    schedule 13.11.2013


Ответы (1)


При использовании media queries вам необходимо добавить это в свой head тег.

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

Это позволяет веб-сайту определять, что он используется на устройстве.

Вы также можете сделать это,

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

Эта часть, user-scalable=0;, не позволяет пользователю изменять масштаб изображения пальцами и полезна, если у вас есть position: fixed элементов.

person Josh Powell    schedule 13.11.2013
comment
Без проблем! Я рекомендую вам найти действительно хорошие уроки на media queries и углубиться в них! - person Josh Powell; 13.11.2013
comment
@LihO Я рад, что смог помочь. Удачи в вашем дизайне! - person Josh Powell; 02.04.2014
comment
Я бился головой о стену, пока не нашел это. Спасибо. - person Blake Frederick; 18.02.2015
comment
@BlakeFrederick Не нужно больше бить себя по голове! Удачи, дружище. - person Josh Powell; 19.02.2015
comment
@JoshPowell Chrome говорит Error parsing a meta element's content: ';' is not a valid key-value pair separator. Please use ',' instead.. Вам следует потерять точку с запятой или использовать запятую, если у вас есть дополнительная пара "ключ-значение", поэтому это вопрос, получивший наибольшее количество голосов. - person CESCO; 14.11.2015
comment
@CESCO Я разберусь с этим и пока поменяю, спасибо, дружище! - person Josh Powell; 18.02.2016