Location via proxy:   [ UP ]
 No cookies    No scripts    No ads    No referrer

このサイトはJavaScriptがオンになっていないと正常に表示されません

少しのコードで実装可能な15のスマートフォンサイト用小技集

iphonesnippets

スマートフォンが普及してきて、Webサイトを作る時、スマートフォンサイトも一緒に制作している方も多くなってきていると思います。私もスマホサイトを制作する機会が増え、だんだんEvernoteに保存していたスマートフォンサイトを作る時の小技がたまってきたので、iPhoneで使える小技を中心にまとめて記事にしてみます。いくつかサンプルも作っているので、スマートフォンからあわせてご覧下さい!

IT系、Web業界の求人に強い転職サイト【green】

スマートフォンサイト用小技集 目次

いくつかサンプルも作ったのでスマートフォンから、もしくはブラウザーからユーザーエージェントをiPhoneなどに切り替えてご覧ください!

サンプル

  1. 横幅をデバイスの幅にあわせる
  2. 文字サイズの自動調整をオフ
  3. リストのクリック(タップ)範囲を広げる
  4. 画面の幅にあわせてCSSを変える
  5. リンクテキストのあるDiv全体をクリック(タップ)できるようにする
  6. 画像のサイズを自動調整
  7. 背景画像の解像度を倍にする
  8. ユーザーエージェントでページを切り替える
  9. アドレスバーを隠す
  10. ホーム画面のブックマークアイコンを設定
  11. リンクテキストをタップした時の色を変更
  12. 入力フィールドで数字キーを表示
  13. 電話番号のリンクを消す
  14. ページを全画面表示する
  15. ステータスバーの色を変更する

1. 横幅をデバイスの幅にあわせる

スマートフォンは幅が狭いので、PC・Mac版の幅にあわせていると文字が小さすぎて非常に読みづらくなります。そこで、下記のメタタグを <head>〜</head> 内に記述して横幅をあわせましょう。ViewportについてはiPhone生活さんの記事でかーなーり詳しく説明されているので、あわせて読んでみてください!

<meta name="viewport" content="width=device-width, initial-scale=1.0">

スマートフォンサイト用小技集 目次へ。

2. 文字サイズの自動調整をオフ

スマートフォンではデバイスにあわせて文字のサイズを自動的に調整する機能がついています。CSSで装飾する際にこの調整が不要な場合は値を none にしてオフにしましょう。デフォルトでは auto です。パーセントで数値指定もできます。

html {-webkit-text-size-adjust: none}

スマートフォンサイト用小技集 目次へ。

3. リストのクリック(タップ)範囲を広げる

人の指って意外と太いんですよね。Web上では大きく見えるナビゲーションメニューも、スマートフォンで見るとタップしにくいものもたくさんあります。そこで、少しでもクリック(タップ)範囲を広げるため、メニューに使っている <a> 要素をCSSでブロック要素にしましょう。

#nav li a{ display: block; }

» サンプルを見る

スマートフォンサイト用小技集 目次へ。

4. 画面の幅にあわせてCSSを変える

iPhoneの横幅は320px、横向きにした時の幅は480pxです。CSSのMedia Queriesを使って幅を指定し、CSSを変更することができます。幅が長い方を上に記述しないとスタイルが上書きされちゃうので注意。サンプルでは通常時(320px)に背景色をピンク、横向き(480px)の時に青にしています。

@media screen and (max-width: 480px){ /* 画面が480pxの場合 */
     body{ background: #80D0FF }
}
@media screen and (max-width: 320px){ /* 画面が320pxの場合 */
    body{ background: #FFDBF3 }
}

» サンプルを見る

スマートフォンサイト用小技集 目次へ。

5. リンクテキストのあるDiv全体をクリック(タップ)できるようにする

テキストリンクは本当にタップしにくいので、リンクがある時はDiv全体をリンク範囲にしてしまいましょう。ここではjQueryを使った方法を紹介します。jQueryファイルを読み込むことを忘れずに!「続きを読む」リンクなどがある場合に重宝しそうです。

$(function(){
     $("div").click(function(){
         window.location=$(this).find("a").attr("href");
         return false;
    });
});

» サンプルを見る

スマートフォンサイト用小技集 目次へ。

6. 画像のサイズを自動調整

画像がデバイスの幅より大きい場合、画面からはみ出して横スクロールバーが表示されてしまいます。それを防ぎ、デバイスの幅にあわせて画像を表示するよう、下記CSSを追加しておくといいでしょう。

img {
     max-width: 100%;
     height: auto;
     }

» サンプルを見る

スマートフォンサイト用小技集 目次へ。

7. 背景画像の解像度を倍にする

iPhone4からRetinaディスプレイが搭載され、解像度が従来の倍になりました。そのため通常サイズでは画像が劣化して見えてしまいます。きれいに表示させるには、表示させたい画像の倍のサイズを用意する必要があります。HTMLで画像を表示する場合は img要素の width と height を調整してサイズ指定すればいいのですが、背景画像の場合はどうすればいいのでしょう?答えは -webkit-background-size 。横幅・縦幅の順にサイズを指定するとうまく縮小されて表示できます。サンプルでは600x300pxの画像をCSSで300x150pxに指定して表示しています。

div{ -webkit-background-size: 300px 150px; } /* 横px 縦px */

» サンプルを見る

スマートフォンサイト用小技集 目次へ。

8. ユーザーエージェントでページを切り替える

PC・Macとスマートフォンで違うページを指定したい場合は、ユーザーエージェントを判別して切り替えることができます。スマートフォン用サイトでよく使うユーザーエージェントは「iPhone」の他、「iPod」「iPad」「Android」ですかね。以下の例ではiPhoneで閲覧した場合、「http://mobile.example.com」にジャンプするように設定しています。読み込むCSSをデバイスによって変えたい場合も使えますね。

JavaScript

var ua = navigator.userAgent.toLowerCase();
var isiPhone = ua.indexOf("iphone") > -1;
if(isiPhone) {
     window.location = 'http://mobile.example.com';
}

PHP

<?php
$ua = strtolower($_SERVER['HTTP_USER_AGENT']);
if(stripos($ua,'iPhone') !== false) {
     header('Location: http://mobile.example.com');
     exit();
}
?>

.htaccess

RewriteCond %{HTTP_USER_AGENT} ^.*iPhone.*$
RewriteRule ^(.*)$ http://mobile.example.com [R=301]

スマートフォンサイト用小技集 目次へ。

9. アドレスバーを隠す

JavaScriptでページを読み込んだら自動的にアドレスバーを引っ込めます。下記コードの「100」はページを読み込んでからアドレスバーを引っ込めるまでの時間です。お好みで調整してください。

window.onload = function(){
     setTimeout("scrollTo(0,1)", 100);
}

» サンプルを見る

スマートフォンサイト用小技集 目次へ。

10. ホーム画面のブックマークアイコンを設定

Webサイトをホーム画面にブックマークした時に表示されるアイコンを設定できます。 <head>〜</head> 内に以下のコードを記述。iPhoneでは自動的に光沢が追加されますが、光沢が不要な時は rel="apple-touch-icon-precomposed" とすればOK。画像形式はPNG、サイズはiPhoneで114x114px(iPhone4以前は57×57px)、iPadでは72x72pxです。

<link rel="apple-touch-icon" href="favicon_big.png">

スマートフォンサイト用小技集 目次へ。

11. リンクテキストをタップした時の色を変更

リンクテキストをタップすると、デフォルトでは文字列にグレーの背景色が表示されますが、-webkit-tap-highlight-color を指定することで好みの色に変更することができます。

a{-webkit-tap-highlight-color: #FF0}

» サンプルを見る

スマートフォンサイト用小技集 目次へ。

12. 入力フィールドで数字キーを表示

以前Twitterでも紹介した方法です。

 

入力フィールドの type属性を number で指定すると、数字だけでなく英字キーも同時に表示されます。かといって数字のみが表示される tel では用途が変わってきちゃいます。下記のコードだと数字キーのみが表示され、type属性も text なのでうまく使えると思います。

<input type="text" pattern="[0-9]*">

» サンプルを見る

スマートフォンサイト用小技集 目次へ。

13. 電話番号のリンクを消す

文章内などで電話番号が記述されていた場合、iPhoneでは自動的にリンクテキストに変更します。リンクに設定したくない場合は <head>〜</head> 内に下記メタタグを記述し、 telephone の値を no にします。

<meta name="format-detection" content="telephone=no">

スマートフォンサイト用小技集 目次へ。

14. ページを全画面表示する

Safariなどのブラウザーでサイトを開くと表示される、アドレスバーとツールバーを非表示にすることができます。ただし、ホーム画面にブックマークした場合のみ有効な技です。アプリのような表示方法が可能ですね。<head>〜</head> 内に下記メタタグを記述し、content の値を yes にします。

<meta name="apple-mobile-web-app-capable" content="yes">

スマートフォンサイト用小技集 目次へ。

15. ステータスバーの色を変更する

こちらもホーム画面にブックマークした場合のみ有効な技です。デフォルトではグレーで表示されているステータスバーの色(default)を、黒(black)や半透明の黒(black-translucent)に変更できます。

<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">

スマートフォンサイト用小技集 目次へ。

役にたちそうな小技が見つかりましたか?もっと手軽にできる方法や、おすすめの小技があればコメントください! ;)

Source:

Advertisement

IT系、Web業界の求人に強い転職サイト【green】

シェアする

  • このエントリーをはてなブックマークに追加

関連する記事

コメント

  • Ke_Y

    参考になる記事をありがとうございます。

    8のJSでのユーザーエージェント振り分けですけどtoLowerCase()を使っているので条件に使う文字列は”iphone”になるかなと思います。
    indexOfは大文字小文字を区別するので。あと細かいですけど1の横幅をデバイス~のところで”Vioport”ってタイポがあります><

    細かい指摘をして恐縮ですけど、
    スマフォサイト制作は色々ベストプラクティスを模索中なので他の方の制作は大変ありがたいです。
    これからも記事の更新楽しみにしています。

  • nasa114

    自分のサイトもスマフォ対応しないといけないので参考になります。
    そういえば、4.の部分でiPhoneの部分は確かRetinaディスプレイになってから解像度が変わったと思います。今記載されている内容だと3か3GSの幅だと思います。
    Retinaディスプレイは960px×640px(縦x横)です。確認してみてください。※ ウェブページだけ違うのかもしれないです…間違えていたらすみません。

  • http://webcreatorbox.com Webクリエイターボックス

    はい、解像度は変わっているので、全画面表示の画像(壁紙など)を用意するなら、画像のサイズは640x960pxです。ただそれは画像の解像度のお話なので、デバイスの幅自体は変わらず、320x480pxとなります。

  • http://webcreatorbox.com Webクリエイターボックス

    ご指摘ありがとうございます!さっそく修正しました!

  • http://twitter.com/dan813 長坂 断 | Dan Nagasaka

    こんにちは。

    なぜか私のところでは「9. アドレスバーを隠す」ができませんでした。
    結局、下記のサイトの通りにやって、可能になりました。
    http://blog.iscw.jp/?p=574

  • http://twitter.com/nyamarukun にゃー丸くん

    はじめまして、いつも参考にさせていただいてるにゃ。
    viewport属性の区切りがセミコロンになっています。
    調べたところ、カンマが正しいのではないかと思いますがいかがでしょうか。

  • http://webcreatorbox.com Webクリエイターボックス

    ご指摘ありがとうございます!修正しました!

  • http://twitter.com/asudeza_a アスデザ

    いつも参考になる記事をありがとうございます!
    5のリンク方法ですが、スマホ専用のサイトにする場合は、初めからHTML5で実装して、Div全体をaタグで囲んでしまうのもありですね。

  • http://www.facebook.com/profile.php?id=100002649700679 Mikiko Kikuchi

    ありがとうございます、参考にします!

  • Pingback: WordPressサイトをスマートフォン表示へ対応させるためにやったこと

  • http://www.facebook.com/kondo.korehiro Kondo Korehiro

    質問があるのですが宜しくお願いします。

    通常のfont-familyだと、i-Phone明朝体は出ませんので’Hiragino Mincho Pro’ にNを加えて’Hiragino Mincho ProN’でi-Phoneに明朝体がでましたがAndroidではゴシック体のままで明朝体は出ません。Androidで明朝体が出るCSSの記述があれば教えて下さい。オサレ小倉堂http://osarekokurado.info/wi/ 

ページトップへ戻る

Web関連記事・お知らせ

もっと表示

Web制作テクニック

もっと表示

インスピレーション・デザイン

もっと表示

Twitter 人気のつぶやき

もっと表示

サイト内検索

本書きました

Webクリエイターズガイドブック

Twitter

    フォローする

    Facebookページ

    中の人ってこんな人

    このブログの中の人、Manaです。

    カナダ・バンクーバー在住のWebデザイナーManaです。 日本で2年間グラフィックデザイナーとして働いた後、バンクーバーにあるWeb制作の学校を卒業。 現地企業で経験を積んだ後オーストラリアへ。そして再びカナダへ。 さらに詳しく知りたいという方はこちらへ。 個人的などうでもいいことはこちらでつぶやいてます。

    • ランダム
    • 新着記事