#javascript #reactjs
#javascript #reactjs
Вопрос:
У меня есть веб-страница, которая отображает выпадающий список. По замыслу я хочу отключить выпадающий список в мобильном приложении. Я использовал размер порта просмотра в качестве критерия для определения того, является ли текущее устройство мобильным или нет. Всякий раз, когда я увеличиваю масштаб до 200 процентов или выше, размер области просмотра уменьшается, и он выводится как мобильное устройство. Следовательно, выпадающий список не отображается. Я не хочу использовать navigator.UserAgent для этой цели. Любой другой обходной путь для этого?
Комментарии:
1. Можете ли вы поделиться своим CSS для выполнения медиа-запросов?
2. На данный момент у меня нет медиа-запросов. Я использовал js, чтобы просто сразу не отображать выпадающий список, когда он мобильный.
Ответ №1:
Всякий раз, когда я увеличиваю масштаб до 200 процентов или выше, размер области просмотра уменьшается, и он выводится как мобильное устройство.
То, что вы описываете, — это разница между пикселями устройства и пикселями CSS при увеличении. По мере увеличения масштаба браузера увеличивается и соотношение CSS к пикселям устройства. Именно так устроено большинство браузеров, и именно этого обычно ожидают посетители.
Итак, если ширина вашей страницы составляет 1000 пикселей:
- при увеличении на 125% ваши пиксели CSS будут составлять 800 пикселей (1,000 / 1,25)
- при увеличении на 150% ваши пиксели CSS будут 667 пикселей (1,000 / 1,5)
- при 200% масштабировании ваши пиксели CSS будут составлять 500 пикселей (1,000 / 2)
Если вы хотите увеличить страницу, НЕ затрагивая пиксели CSS, вы можете сделать что-то пользовательское, используя свойство CSS transform
.
body {
transform: scale(2);
transform-origin: 0 0;
}
Проблема, которую я предвижу при таком подходе, заключается в том, что для этого обязательно потребуется боковая прокрутка.
WCAG 2.1 SC 1.4.10 требует, чтобы:
Контент может быть представлен без потери информации или функциональности и без необходимости прокрутки в двух измерениях для вертикальной прокрутки содержимого шириной, эквивалентной 320 пикселям CSS https://www.w3.org/WAI/WCAG21/Understanding/reflow.html
Ответ №2:
Вы можете использовать медиа-запрос max-device-width
, который получает фактический размер экрана рендеринга устройства, а не размер области просмотра.
Например:
.nav-menu {
@media only screen and (max-device-width: 768px) {
display: none;
}
}
Комментарии:
1. Не могли бы вы поделиться каким-нибудь примером/
2. добавлен пример для css медиа-запроса