CSS медиа-запрос для таргетинга только на устройства iOS

Есть ли запрос @media для таргетинга только на устройства под управлением iOS?

Например:

@media (min-device-width:320px) and (max-device-width:768px) {
    #nav {
        yada: yada;
    }
}

Изменит ли это также поведение страницы на устройствах Android с такой шириной устройства?

Ответ 1

Да, ты можешь.

@supports (-webkit-overflow-scrolling: touch) {
  /* CSS specific to iOS devices */ 
}

@supports not (-webkit-overflow-scrolling: touch) {
  /* CSS for other than iOS devices */ 
}

YMMV.

Это работает, потому что только Safari Mobile реализует -webkit-overflow-scrolling: https://developer.mozilla.org/en-US/docs/Web/CSS / -webkit-overflow-scrolling

Обратите внимание, что @supports не работает в IE. IE пропустит оба вышеуказанных блока @support выше. Чтобы узнать больше, смотрите https://hacks.mozilla.org/2016/08/using-feature-queries-in-css/. Рекомендуется не использовать @supports not из - за этого.

Ответ 2

Краткий ответ №. CSS не относится к брендам.

Ниже приведены статьи для реализации для iOS с использованием только медиа.

https://css-tricks.com/snippets/css/media-queries-for-standard-devices/

http://stephen.io/mediaqueries/

Infact вы можете использовать PHP, Javascript для обнаружения браузера iOS и в соответствии с этим вы можете вызвать CSS файл. Например,

http://www.kevinleary.net/php-detect-ios-mobile-users/

Ответ 3

Как упоминалось выше, короткий ответ - нет. Но мне нужно что-то подобное в приложении, над которым я сейчас работаю, но области, где CSS должен быть разным, ограничены очень специфическими областями страницы.

Если вы похожи на меня и не нуждаетесь в обслуживании совершенно другой таблицы стилей, другим вариантом будет обнаружение устройства, работающего под управлением iOS, способом, описанным в этом вопросе, выбранным ответом: Определить, является ли устройство iOS

Как только вы обнаружили устройство iOS, вы можете добавить класс в таргетинг области, используя Javascript (например, document.getElementsByTagName("yourElementHere")[0].setAttribute("class", "iOS-device");, jQuery, PHP или что-то еще, и, соответственно, стиль этого класса с использованием ранее существующей таблицы стилей.

.iOS-device {
      style-you-want-to-set: yada;
}