Медиа-запросы CSS3 не работают в Safari на iPod/iPhone

Я разрабатываю сайт с адаптивным дизайном. Веб-сайт будет оптимизирован для iPhone и iPod (оба имеют ширину 640 пикселей).

Я использую следующие медиа-запросы CSS3:

    @media screen and (max-width: 640px) {
        .display-none-mobile{
            display: none;
        }
    }
    @media screen and (min-width: 641px) {
        .display-none-desktop{
            display: none;
        }
    }

Приведенный выше код отлично работает в моих браузерах для настольных компьютеров, когда я уменьшаю ширину браузера до 640 пикселей. Однако код не работает, когда я пытаюсь протестировать веб-сайт на iPod с помощью браузера Safari.

Я изменил медиа-запросы CSS3 на

    @media screen and (max-device-width: 640px) {
        .display-none-mobile{
            display: none;
        }
    }
    @media screen and (min-device-width: 641px) {
        .display-none-desktop{
            display: none;
        }
    }

Теперь адаптивный дизайн работал для Safari на iPod, но мешал макетам во всех других настольных браузерах. Эти медиа-запросы css3 полностью игнорировались oChrome, IE, FF на моем рабочем столе (для ширины 640 пикселей).

Итак, к настоящему времени я понял, что есть что-то, связанное с кросс-браузерной совместимостью с медиа-запросами css3, но не смог найти много информации об этом. Какими способами я могу обновить свой код, чтобы медиа-запросы css3 работали во всех браузерах (или, по крайней мере, в основных). я ориентируюсь по крайней мере

  1. IE Windows
  2. Сафари Windows
  3. Хром Windows
  4. Фаерфокс Windows
  5. Сафари айпод
  6. Хромированный iPod

person CodeMonkey    schedule 08.05.2013    source источник
comment
Взгляните на quirksmode.org/blog/archives/2010/09/ Combine_meta.html для получения некоторой информации о метатегах и медиа-запросах. Я думаю, может быть, это то, с чем вы столкнулись. Ширина устройства и ширина контента не совпадают, поэтому медиа-запрос на самом деле работает так, как ожидалось, просто не в соответствии с тем, что вам нужно.   -  person aaronburrows    schedule 08.05.2013


Ответы (1)


Если вы не добавите следующий тег <meta> в свой HTML, устройство будет игнорировать ваши медиа-запросы.

<!DOCTYPE html>
<html lang="en-us">
    <head>
        <meta name="viewport" content="width=device-width">
    </head>
    <body>
    </body>
</html>
person Vinícius Moraes    schedule 09.05.2013
comment
Благодарю. но дело в том, что мне все еще нужно исправить множество вещей пользовательского интерфейса, таких как отступы, ширина, поля и т. д. - person CodeMonkey; 09.05.2013
comment
@CodeMonkey, но медиа-запросы работают правильно? поэтому вы должны закрыть этот вопрос. Я надеюсь, что вы можете исправить эти проблемы, удачи, братан - person Vinícius Moraes; 09.05.2013
comment
да, да, мне нужно сделать небрежное кодирование. какое-то жесткое кодирование. вещи, которые я вообще не предпочитаю. сроки в моем конце, поэтому пришлось подтолкнуть это. Спасибо за ваши 2 цента - person CodeMonkey; 09.05.2013
comment
Что касается заполнения/маржи и т. д., вам просто нужно использовать normalize.css? - person CodeFinity; 17.04.2016
comment
Что делать, если у вас уже есть метатег, но медиа-запросы по-прежнему не работают? - person Bas van Dijk; 06.11.2018