Tag: Web

WEBサイトをスマートフォンの表示に対応させる方法。

スマートフォンからのアクセスかどうかの判断

ユーザーエージェント(UA)に含まれる文字列で判断する。

  1. OSで判断(PHPで記述すると)
    $useragents = array(
      'iPhone',         // Apple iPhone
      'iPod',           // Apple iPod touch
      'Android',        // 1.5+ Android
      'blackberry',     // Blackberry
      'webOS',          // Palm Pre
    );
    $pattern = '/'.implode('|', $useragents).'/i';
    if (preg_match($pattern, $_SERVER['HTTP_USER_AGENT'])) {
        $mobile = true;
    }
    但し、Android の場合スマートフォンかタブレットかは判断できない。
  1. 'Mobile'で判断
    if (preg_match('/Mobile/', $_SERVER['HTTP_USER_AGENT'])) {
        $mobile = true;
    }
    iPhone や Androidスマートフォンでは'Mobile'が含まれるため、これで判断できる。但し、webOS や Blackberry は判断できない。

以上2つを上手く組合わせて判断する必要がある。

Viewportの変更

PC用のサイトをスマートフォンで表示すると文字が小さく見づらいため、対応としてヘッダーに以下を追加。

<meta name="viewport" content="width=【横幅】, initial-scale=【初期の倍率】, maximum-scale=【拡大可能な最大の倍率】">
  • 横幅 : 画面の横幅をピクセル単位で指定。device-widthを指定すると、端末の横幅に合わせて自動的に調整される。
  • 初期の倍率 : 表示した時の画面の倍率を指定。
  • 拡大可能な最大の倍率 : スマートフォン上でユーザーが表示を拡大させる時の最大倍率を指定。

【例】

<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=2" />

HTML5の利用

スマートフォン用ブラウザはHTML5に対応しているため、従来は画像を使わないと出来ないような表現もCSSだけで実現できるものも多い(グラデーションや丸角など)。これを利用して、画像を少なくしてデータ転送量を減らす。

参考

実践!iPhone&Androidサイト制作ガイド