Верстка под мобильные устройства
#1 Рано или поздно некоторые вебмастера сталкивается с иллюзией, что все источники роста аудитории сайта исчерпаны. Проведены всевозможные маркетинговые мероприятия (сео, директы, бегуны, даже баннеры, вплоть до рекламы в оффлайне), юсабилити выше некуда, коммьюнити на форуме вроде крупнейшеее в рунете в своей нише и т.д. и т.п. Что делать? Перефразировав совет Александра Садовского, можно ответить: брать пример с монстров, которые для привлечения и удержания аудитории используют 99% потенциальных возможностей. Одной из таких экзотических возможностей являются посетители с мобильных устройств. По статистике LiveInternet одних посетителей с Оперой Мини около 8%, а это хоть и большая часть мобильных устройств, но еще не все. Я считаю, что удержание на сайте около 8% посетителей (мобильных) — достойная задача, даже если у Вас менее 100 хостов в день. Что можно сделать с сайтом, чтобы "мобильным" посетителям было удобно? Для начала, скорее всего, нужно самому зайти с мобильного устройства на свой сайт, чтобы оценить масштаб бедствия. Если на сайте используется какая-нибудь стандартная CMS как то Друпал, Джумла, Вордпрес или Битрикс, то тут можно только посочувствовать, т.к. авторы этих платформ не заморачиваются над мобильным представлением. Далее есть 2 принципиально разные подхода. Вариант #1 — крутой, как у Гугла (content negotiation). Это когда и мобильные и десктопные посетители заходят на один и тот же домен, но видят разное содержимое. Чтобы посмотреть, как Гугл лихо отдает разные интерфейсы, можно под Firefox`ом установить расширение User Agent Switcher, и в нем забить несколько пробных юзер-агентов: Опера Мини: Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.14912/812; U; en) Presto/2.2.0 iPhone: Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3 Телефон Nokia E70: NokiaE70-1/3.0 (1.0610.05.06); SymbianOS/9.1 Series60/3.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 Телефон Samsung D900: SAMSUNG-SGH-D900/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Browser/6.2.3.3.c.1.101 (GUI) MMP/2.0 И совсем экзотика — Sony PSP: Mozilla/4 (PSP (PlayStation Portable); 2.00) Вариант #2 — менее изящный, когда для мобильных посетителей делается отдельный доменчик третьего уровня и как только заходит человек с мобильным юзер-агентом, то его тут же редиректят с основного на вспомогательный домен. Так делает, к примеру, Яндекс, Микрософт. У большинства мобильных браузеров в режиме просмотра нет адресной строки, так что посетитель этого редиректа не замечает. С этим вариантом все просто: отдельный домен, свой дизайн, своя верстка. Вернемся к первому варианту, с изменением контента. Чаще всего в этих случаях используется один и тот же базовый дизайн, который различными способами модифицируется для десктопных и мобильных посетителей. Вот об этих модификациях и хотелось бы поговорить. Целью модификаций контента чаще всего является уменьшение ширины самого широкого элемента. Модифицировать контент можно либо на клиенте, либо на сервере. На клиенте это можно делать с помощью JavaScript или CSS. С помощью JavaScript можно, к примеру, либо динамически менять ширину баннера-логотипа в шапке сайта, либо подставлять разные картинки в зависимости от разрешения экрана. С помощью CSS можно модифицировать мобильную версию сайта точно так же, как и версию для печати. Хотя это будет несколько сложнее, чем с print-версией, потому что производители мобильных браузеров некорректно поддерживают тип media из стандарта CSS2. Обычно верстальщики используют значения screen либо print, но мало кто знает, что для мобильных устройств есть специальное значение — handheld, и если бы мобильные браузеры использовали его, а не screen, то проблем с мобильной версткой было бы намного меньше. Вот тут есть маленький css::media тест, который определяет, какое значение css:media сейчас выставлено у браузера. Ни Опера Мини, ни браузеры с мобильников не говорят, что они handheld. Но самый эффективный способ модификации контента — это все же серверный. Состоит он из двух этапов: на первом определяем, а не мобильный ли у нас посетитель, и на втором для мобильного посетителя модифицируем верстку (что-то можем вырезать, что-то подправить). Далее очень простенькие примеры кода на PHP. Шаг 1: определяем какой возможный размер экрана у клиента (переменная $small_screen): $user_agent_current = $_SERVER["HTTP_USER_AGENT"]; $small_screen = 0; $ua_mobile_array = array("Opera Mini", "SymbianOS", "Windows CE;", "Nokia", "SonyEricsson", "SAMSUNG", "iPhone; U;"); foreach($ua_mobile_array as $ua_mobile) { if(strpos($user_agent_current, $ua_mobile) !== false) { $small_screen = 1; break; } }
Шаг 2: далее переменную $small_screen используем по своему усмотрению, к примеру, растягиваем многоколоночную верстку в одну колонку с помощью следующих вставок:</td> <?php if($small_screen) echo "</tr><tr>"; ?> <td>
Надеюсь, что факты, приведенные здесь, кому-нибудь пригодятся. |
html 2
usability 4
мобильники 3
|
NULL, 2009-11-02 21:09 |
#2 Интересно, а как насчет того, что телефон все равно сможет не открыть сайт из-за неправильной разметки под мобильные устройства? Вот сейчас протестил — на google.com зашел с моторолы L7 нормально (капризный браузер), а на ya.ru — пустая страница. Не спорю, если смарты там, нокии всякие, но тогда мы потенциально теряем аудиторию |
|
Shtirlitz, 2009-11-05 06:44 |
#3 Тут только тестировать нужно верстку под самые распространенные платформы, а ya.ru не редиректит на мобильную версию (m.yandex.ru), это только делает yandex.ru. |
|
NULL, 2009-11-05 12:21 |
|
|