Обнаружение планшетов и телефонов, htaccess или CSS

Итак, я некоторое время исследовал это и, кажется, есть несколько способов сделать это, медиа-запросы CSS, которые определяют размер экрана, htaccess и javascript.

Я бы предпочел пойти по пути htaccess, потому что, насколько я знаю, планшеты сейчас имеют разрешение 1024px. Не повлияет ли это на разрешение рабочего стола? Кроме того, htaccess дает мне возможность создать совершенно новый сайт для планшетов и мобильных браузеров, но как определить, планшет это или мобильный? Я не хочу определять, является ли это Google Nexus против HTC Desire или iPhone, против iPad, Acer Iconia, Xoom и т. д.

Есть ли способ определить планшет, телефон или настольный компьютер без необходимости указывать каждую марку и модель? (например, как здесь.)


person Kyle    schedule 06.07.2011    source источник


Ответы (2)


Я бы предложил использовать для этого Modernizr.

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

Я бы всегда избегал обнаружения браузера на сервере (т.е. в .htaccess или в вашем коде на стороне сервера), потому что это ненадежно - данные, которые сервер может использовать для обнаружения клиентской среды, отправляются в виде обычного текста и легко подделываются. или взломан. Что еще более важно, он также обычно подавляется прокси-серверами и приложениями для обеспечения конфиденциальности.

person Spudley    schedule 06.07.2011
comment
Это хороший ресурс, но я определенно ищу способ создать две разные структуры HTML для настольной версии и версии для мобильных устройств/планшетов. - person Kyle; 06.07.2011

Если вы хотите обнаружить мобильный браузер с помощью .htaccess, вам нужно будет указать их имена (по крайней мере, самую уникальную часть). Например, это можно сделать с помощью одного правила перезаписи (взято из другого вопроса о SO):

RewriteCond %{HTTP_USER_AGENT} "android|blackberry|ipad|iphone|ipod|iemobile|opera mobile|palmos|webos|googlebot-mobile" [NC]
RewriteCond %{REQUEST_URI} !^/mobile.php
RewriteRule .* /mobile.php?url=%{REQUEST_URI} [L]
person LazyOne    schedule 06.07.2011