Я ищу надежное правило для медиа-запросов, которое:
If desktop width < 720px AND devices in portrait mode {}
(т.е. по мере того, как ширина уменьшается на рабочем столе, медиа-запрос срабатывает на 720px. На телефонах это должно произойти только в режиме портретной ориентации - пейзаж не должен иметь примененный медиа-запрос)
Проблема заключается в следующем: как настроить таргетинг устройств отдельно от рабочих столов.
Проблема существует, потому что: @media handheld
не поддерживается
Дополнительно max-width
воздействует на все, поэтому его нельзя использовать в сочетании с max-device-width AND portrait
Похоже, я могу использовать только таргетинг:
- все устройства ниже/между настройками ширины
- (с использованием прокладки JavaScript для исправления медиа-запросов) ниже/между настройками ширины и ориентацией.
НЕ МОЖЕТ ОБРАТИТЬСЯ к устройствам и рабочим столам отдельно.
Есть ли существующее JavaScript-решение, которое удовлетворит мои потребности?
note Я кодирую свой CSS в LESS, медиа-запросы вложены внутри.
Фон
Сайт, над которым я работаю, является отзывчивым и использует сетку. При ширине использования ширины 720px (текущая ширина тестирования) используются меньшие устройства/разрешения. Однако при тестировании сайт (полный сайт шириной 720 пикселей) был приятно читаем в пейзаже, даже на моем маленьком экране HTC Desire. Поскольку я удаляю части сайта для лучшего удобства использования с помощью медиа-запросов, я думал, почему сайт не доступен в обычном режиме.
Bellow 720px на рабочем столе без изменения столбцов столбцов элемента видит довольно измельченный сайт. Однако из-за меньшей природы мобильного устройства это не так. Однако при модификации диапазона столбцов отдельные элементы просто несоразмерны (например, заголовок), когда речь идет о ландшафте на телефоне (из-за значительно уменьшенной высоты браузера).
Проще говоря, изменение дизайна исключительно на ширине браузера не распространяется на все устройства одинаково, как мне удалось добиться на других сайтах.
Я использую следующий метатег:
<meta name="viewport" content="width=device-width,
initial-scale=1,
maximum-scale=1,
user-scalable=no" />
Что было проверено
Ориентация на рабочих столах не имеет отношения. Он изменяется в зависимости от настроек окна пользователя, разрешения и т.д. И т.д.
Я попробовал следующее настроить таргетинг на телефоны/оба:
@media handheld and (orientation:portrait) { }
Нет телефонов, которые, по-видимому, используют атрибут handheld
, по крайней мере, 100% нет - так что это бесполезно.
@media screen and (max-device-width:720px) and (orientation:portrait) { }
Будет работать отлично, но Android 2.2 и 2.3 (возможно, другие, не говоря уже о другой ОС?) имеют проблемы с max-device-width
не работают.
@media screen and (max-width:720px) and (orientation:portrait) { }
Работает на мониторах с высоким разрешением (так как высота быстро становится шириной при уменьшении ширины окна) и телефонах, но не работает на меньших мониторах, так как окна не будут портретами с шириной 720 пикселей (сайт продолжает конденсироваться за пределы я хотите).
@media screen and (max-width:720px), screen and (orientation:portrait) { }
Будет делать то, что на первом месте. Не использовать.
@media screen and (max-width:720px), screen and (max-width:500px) and (orientation:portrait) { }
и
@media screen and (max-width:720px) { }
@media screen and (max-width:500px) and (orientation:portrait) { }
Все просто использует более крупный max-width
.
У меня также была скрипка с min/max-height
без успеха.