Я боролся с этим в течение нескольких дней, но хороший способ проверить наличие портативных устройств - это максимальная ширина устройства.Настольные ПК не отправляют это в браузер, но большинство (если не все) карманные компьютеры используют это.
В моем случае я хотел показать сжатую версию сайта на всех устройствах (включая настольные), когда их ширина меньше определенной ширины, для чего я использовал
@media all and (max-width: 640px)
Но определенное всплывающее окно наложения, которое использовало position: fixed
, нужно было изменять только на портативных устройствах (поскольку свойство css работает во всех браузерах настольных компьютеров, но не на всех портативных устройствах).Поэтому для этого я использовал дополнительное правило:
@media all and (max-device-width: 640px)
, в котором я нацеливаюсь на все карманные компьютеры ниже 640, но не на настольные браузеры.Кстати, это также не нацелено на iPad (как я и хотел), потому что его ширина устройства выше, чем 640 пикселей.
Если вы хотите настроить таргетинг на все устройства, просто выберите минимальную ширину (1 пиксель)чтобы оно не исключало ни одно устройство независимо от ширины.