EC studio EC studio デザインブログ

このところのスマートフォンの広がりにより、デザイン部でもWebサイトのスマートフォン対応の必要性をひしひしと感じています。

実際のスマートフォン対応の取り組みとしてはこれからなのですが、その時のために従来のサイトをスマートフォンに対応させる方法、特に今回は閲覧環境に応じてページレイアウトを柔軟に切り替える、レスポンシブ・デザイン レスポンシブ・ウェブデザイン(Responsive Web Design)(ご指摘ありがとうございます。)に関していまさらながら調べてみたので、大枠的なことをふわっとまとめておこうと思います。

レスポンシブ・ウェブデザインって

まず「レスポンシブ・ウェブデザインとはなんぞや」と言うところですが、
Webサイトのページレイアウトを閲覧環境(パソコン、iPhone、Android など)に応じて動的に変更させる手法で去年あたりからよく耳にするようになりました。

ブラウザのウィンドウ幅に合わせてページ幅が変わるリキッド・レイアウトとも似ていますが、レスポンシブ・ウェブデザインは、閲覧環境に応じて、その環境に合わせたレイアウト構造に柔軟に切り替えるというところがポイントです。

そして、それを実現するためにメディア・クエリ(Media Queries)でスタイル(CSS)を振り分けてレイアウトなどを切り替えます。

スタイル(CSS)の振り分け

先程も書きましたが、スタイルの振り分けはメディア・クエリを利用します。
出力媒体、閲覧環境に応じてスタイルを切り替えることができるメディア・クエリですが、レスポンシブ・ウェブデザインでは、閲覧環境ごとでスタイルを設定します。

iPhone用に設定する場合は次のように記述します。

HTML:
  1. <link rel="stylesheet" type="text/css" media="screen and (max-device-width: 480px)" href="iphone.css" />

iPhoneのmobile Safariはディスプレイを320 x 480 ピクセルで認識するようなので、
max-device-width を 480px にして、iPhone(正確にはディスプレイの最大幅が480pxのデバイス)で閲覧したら iPhone用のスタイルが書かれた iphone.cssが読み込まれるようにします。

また、CSS内に直接記述することもできます。

CSS:
  1. @media screen and (max-device-width: 480px) {
  2.   .column {
  3.     float: none;
  4.     iPhone用のスタイル
  5.   }
  6. }

こうすることで、CSSを1ファイルだけで済ませることができます。

ページ構造をデバイスで切り替える

閲覧デバイスに応じて適用するスタイルの振り分けをおこないましたので、次にそれぞれでのスタイルを設定します。

今回は下記のようなPCサイトを例にレイアウト構造を切り替えます。
PC用の2カラムのレイアウト

PC用のサイトでは、”content”、”footer”が float で”nav”の右に配置される2カラムです。

しかしこのままのレイアウトだと、iPhoneで見た場合は、ディスプレイ幅が狭くなりますので若干見づらくなります。そのためにiPhoneの場合は1カラムにレイアウト構造を切り替えるような設定にしてみます。
iPhone用の1カラムのレイアウト

CSS:
  1. @media screen and (max-device-width: 480px) {
  2.   .nav,
  3.   .content,
  4.   .footer {
  5.     float: none;
  6.   }
  7. }

という具合に、floatを適用しないようにスタイルを設定します。

各ブロックや要素のサイズを調整する

基本のレイアウト構造を振り分けたあとは、各ブロック(.content や .header など)や画像の幅を調整します。

各ブロックの横幅を%設定に

表示領域に合わせてレイアウトブロックの幅が動的に変わるように%指定に変更します。
例:表示領域 960px に 940px のヘッダーの場合
940 / 960 * 100 = 97.9166667%
なので

CSS:
  1. .header {
  2.  width: 97.9166667%;
  3. }

と言う感じです。

細かなレイアウト設定もレスポンシブ・ウェブデザイン用に調整

レイアウト構造以外にも次のような設定をおこないます。

・画像も相対的に表示されるように、max-width を100% で指定
・スマートフォンはディスプレイが小さくなりますので、文字サイズの調整
・場合に応じては、各ブロック内のレイアウトも変更
 例(上記画像):.nav内のナビゲーションをPC用では縦並びに、iPhoneでは横並び

などの設定をおこなうことで、各デバイスに合わせたレイアウトでWebサイトを表示させることができるようになります。

まとめ

今回調べてみたものは一つの方法で、この他にもいろいろなパターンがありますし、これからもまだまだ新しい手法が編み出されていくのだと思いますが、このレスポンシブ・ウェブデザインを取り入れることでWebサイトをスマートフォンに対応させることができます。しかし、そのためにはページ構造の組み立てがさらに重要になる、ページ設計段階でスマートフォン対応も見据えておく必要があるなと感じました。

また、モバイル・ファーストという言葉もあるように、見た目だけをスマートフォンに対応させるだけでは十分な対応とは言えないかもしれません。
各デバイスの特性にフォーカスしたコンテンツをそれぞれに用意して、アプローチを変えてWebサイトを展開していくのがこれからのモバイル対応ということになるのでしょうか。

レスポンシブ・ウェブデザイン 参考サイト

Responsive Web Design by ETHAN MARCOTTE A LIST apart
http://www.alistapart.com/articles/responsive-web-design/

レスポンシブ・ウェブデザインって何? allWebクリエイター塾 ブログ
http://all-web-blog.blogspot.com/2011/03/blog-post_09.html

Media Queries (レスポンシブ・ウェブデザインを採用したWebサイト集)
http://mediaqueri.es/


関連した記事:

■ 「日本でいちばん社員満足度が高い会社の非常識な働き方」

日本でいちばん社員満足度が高い会社の非常識な働き方

この記事へのコメント (5)

「各ブロックの横幅を%設定に」という項目で97.9166667%となっておりますが、何故100%ではないのでしょうか。

投稿者: t | 2011/4/19 火曜日 9:50:47

コメントありがとうございます!
ページレイアウト領域の幅いっぱいに各ブロックを配置させるのであれば、100%の指定になります。
この記事の例では、幅960pxのレイアウト領域に対して幅940pxの各ブロックが配置されるWebサイトを基にサイズを計算していますので、このような数値になっています。

ここでのポイントとしてはpx指定から%指定に変更することで、こうすることにより多種多様なディスプレイサイズを持つ様々な端末で見た場合でもブロック幅が調節されて表示されるようにしています。

投稿者: 西口 誠二 | 2011/4/19 火曜日 11:56:19

こんにちは、為になる記事をありがとうございます。表題の「レスポンシブ・デザイン」という表現ですが、正しくは「レスポンシブ・ウェブ・デザイン」です。「レスポンシブ・デザイン」という表記ですが、元々は建築物の用語になります。すいません、お手透きのときに宜しくお願いいたします。

投稿者: 菊池崇 | 2011/9/15 木曜日 21:15:19

菊池さん、こんにちは。
コメントありがとうございます。
また、ご指摘もありがとうございます。
表題、記事内の表記を修正させていただきます。

投稿者: 西口 誠二 | 2011/9/16 金曜日 9:21:11

さっそくの修正ありがとうございます!なんか海外でも言葉が最近ぶれてきているので気になってしまいました。浸透してくると、しょうがないですかね。

投稿者: 菊池崇 | 2011/9/16 金曜日 14:56:50
コメントを投稿

HTML5+CSS3で作る 魅せるiPhoneサイト

デザイン部の谷がiPhoneサイト
制作の書籍を出版しました

取材に関するお問い合わせ


(担当:大崎)

投稿者
カテゴリー
人気のエントリー
最近のエントリー
アーカイブ

BLOG オフィシャルブログ

社長ブログ
EC studio社長ブログ

ブログを読む

技術ブログ
技術部のブログ

ブログを読む

デザインブログ
デザイン部のブログ

ブログを読む

RECRUIT 採用情報

EC studio 採用情報の詳細はこちら

Copyright© EC studio, All Rights Reserved.