Функция media
запросов CSS3 привела ко многим интересным возможностям с точки зрения разработки веб-сайтов, которые приспосабливаются к различным размерам экрана и устройствам.
Однако на практике я начинаю понимать, что media
функция запросов CSS3 и весь процесс «Отзывчивый веб-дизайн» могут не оправдать своего обещания.
Проблема, которую я вижу, заключается в том, что, в конце концов, веб-разработчики в основном заботятся о том, чтобы их пользователи просматривали контент через настольный компьютер, планшет или мобильное устройство. Но CSS3 предоставляет только средства для определения разрешения экрана . Теоретически, определение разрешения экрана кажется отличным способом настройки для различных устройств. Но на практике ...
Предположим, у нас есть простая функция Javascript, которая просто выводит ширину экрана:
function foo()
{
alert(screen.width);
}
На моем Blackberry Touch это выводит:
768
На моем Samsung Galaxy это выводит:
800
Итак ... на данный момент разрешение обычных смартфонов приближается к разрешению на уровне рабочего стола. Возможность определить, просматривает ли пользователь ваш сайт с помощью смартфона, планшета или настольного компьютера, кажется все более сложной, если все, что вам нужно, - это разрешение экрана.
Это заставляет меня подвергнуть сомнению всю мудрость всего движения CSS3 «Отзывчивый веб-дизайн», основанного на медиа-запросах. Похоже, что media
функция запроса лучше подходит для адаптации к окну браузера с изменением размера на экране рабочего стола, а не для различных мобильных устройств.
Другой возможный метод обнаружения мобильных или планшетных устройств - это использование функции обнаружения путем проверки, ontouchstart
поддерживается ли событие. Но даже это становится ненадежным, так как многие экраны рабочего стола начинают поддерживать сенсорный экран.
Вопрос: Итак ... как веб-разработчик, если я не могу полагаться на RWD или обнаружение функций, является ли анализ пользовательского агента (как обычно ненадежным, как всегда) действительно лучшим вариантом для обнаружения мобильных устройств?
device-width
очень плохая?