101
小川 裕之 レスポンシブWebデザインの基礎 13108日火曜日

レスポンシブWebデザインの基礎

Embed Size (px)

DESCRIPTION

レスポンシブWebデザインの概要から実装の基本まで。

Citation preview

Page 1: レスポンシブWebデザインの基礎

小川 裕之

レスポンシブWebデザインの基礎

13年10月8日火曜日

Page 2: レスポンシブWebデザインの基礎

印刷会社で DTP オペレーターとして 2 年間勤めたあと退職し、

Web デザイナーのアルバイトとして複数の制作会社を転々としたり

海外に行ったりしたあと横浜の制作会社に務める。

制作会社でデザイン、コーディング、ディレクション、

コンサル等を幅広く経験する。2012 年 4 月よりフリーランスとして独立。

「レスポンシブWebデザイン入門」執筆

小川 裕之

barchin  hiro.ogw

13年10月8日火曜日

Page 3: レスポンシブWebデザインの基礎

レスポンシブWebデザインとは

13年10月8日火曜日

Page 4: レスポンシブWebデザインの基礎

13年10月8日火曜日

Page 5: レスポンシブWebデザインの基礎

Photo by Jeremy Keith

スマートデバイスの増加

13年10月8日火曜日

Page 6: レスポンシブWebデザインの基礎

1日の平均インターネット接続時間

博報堂DYメディアパートナーズ メディア環境研究所「メディア定点調査2013」より

72,8分

50.6分

13年10月8日火曜日

Page 7: レスポンシブWebデザインの基礎

マルチデバイス対応の手法

•レスポンシブWebデザイン•デバイス専用サイト•プログラム変換

13年10月8日火曜日

Page 8: レスポンシブWebデザインの基礎

RWDの特徴

•URLがひとつ•ワンソース•更新が比較的簡単•新しいデバイスにも対応しやすい

13年10月8日火曜日

Page 9: レスポンシブWebデザインの基礎

ワンソースで各デバイスの画面サイズに対応したレイアウトを実現

HTML

CSSCSS CSS

幅768px以下

幅480px以下

幅769px以上

13年10月8日火曜日

Page 10: レスポンシブWebデザインの基礎

URLがひとつ

13年10月8日火曜日

Page 11: レスポンシブWebデザインの基礎

ワンソース

13年10月8日火曜日

Page 12: レスポンシブWebデザインの基礎

HTML

CSSCSS CSS

更新の手間が少ない

更新

! !!

13年10月8日火曜日

Page 13: レスポンシブWebデザインの基礎

新しいデバイスにも対応しやすい

? ??

??

13年10月8日火曜日

Page 14: レスポンシブWebデザインの基礎

それぞれのメリット・デメリット

手法 メリット デメリット

レスポンシブWebデザイン更新がラクURLがひとつ無数のデバイスに適応できる

構成の制限設計が難しいテストの工数が増える

デバイス専用サイト デバイスの特性にあった最適化ができるデザインの自由度が高い

開発コストがかかる更新の手間がかかる新しいデバイスを判定する必要がある

プログラム変換更新が比較的ラクURLが共通デザインの自由度が高い

開発コストがかかる新しいデバイスを判定する必要がある

13年10月8日火曜日

Page 15: レスポンシブWebデザインの基礎

レスポンシブWebデザインの実装

13年10月8日火曜日

Page 17: レスポンシブWebデザインの基礎

RWDを実現する要素

•Fluid Grid

•Fluid Image

•Media Queries

13年10月8日火曜日

Page 18: レスポンシブWebデザインの基礎

Fluid Grid

13年10月8日火曜日

Page 19: レスポンシブWebデザインの基礎

規則性をもったライン(Grid)にそってコンテンツを配置

Grid Design

13年10月8日火曜日

Page 20: レスポンシブWebデザインの基礎

グリッドの幅を相対値で指定

Fluid Grid

%

13年10月8日火曜日

Page 21: レスポンシブWebデザインの基礎

求める要素の幅÷親要素の幅×100%

相対値の求め方

620px 300px

960px

60px 20px

13年10月8日火曜日

Page 22: レスポンシブWebデザインの基礎

=64.58333%300÷960×100

960px

相対値の求め方

620÷960×100=31.25%

求める要素の幅÷親要素の幅×100%

13年10月8日火曜日

Page 23: レスポンシブWebデザインの基礎

Fluid Grid Systemが便利

pxからいちいち計算するのは手間

13年10月8日火曜日

Page 24: レスポンシブWebデザインの基礎

960px

60px 20px

1カラム=60px÷960px×100%=6.25%

13年10月8日火曜日

Page 25: レスポンシブWebデザインの基礎

960px

60px 20px

1カラム=60px÷960px×100%=6.25%2カラム=(60px×2+20)÷960px×100%=14.58333%

13年10月8日火曜日

Page 26: レスポンシブWebデザインの基礎

960px

60px 20px

1カラム=60px÷960px×100%=6.25%2カラム=(60px×2+20)÷960px×100%=14.58333%3カラム= (60px×3+20×2) ÷960px×100%=22.91667%4カラム= (60px×4+20×3) ÷960px×100%=31.25%5カラム= (60px×5+20×4) ÷960px×100%=39.5833%

13年10月8日火曜日

Page 27: レスポンシブWebデザインの基礎

8カラム 4カラム

100%

=31.25%=64.58333%

13年10月8日火曜日

Page 28: レスポンシブWebデザインの基礎

px %

幅を相対値にする

13年10月8日火曜日

Page 29: レスポンシブWebデザインの基礎

Fluid Image

13年10月8日火曜日

Page 30: レスポンシブWebデザインの基礎

画像が親要素よりはみ出してしまう

画像を可変にする

13年10月8日火曜日

Page 31: レスポンシブWebデザインの基礎

<img src="photo.jpg" alt="photo">

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

}

HTML

CSS

画像を可変にする

親要素内に収まる

13年10月8日火曜日

Page 32: レスポンシブWebデザインの基礎

Media Queries

13年10月8日火曜日

Page 33: レスポンシブWebデザインの基礎

メディアタイプと特性に関する条件を調べその結果に応じて処理を行う

13年10月8日火曜日

Page 34: レスポンシブWebデザインの基礎

@media screen and (min-width: 640px){body{background-color: red;}

}

メディアがスクリーンで表示領域幅が640px以上の場合背景色を赤にする

メディアタイプ メディア特性

13年10月8日火曜日

Page 35: レスポンシブWebデザインの基礎

メディア特性 情報 max-/min-

width 表示領域の幅 ○

height 表示領域の高さ ○

device-width デバイスの横方向の解像度 ○

device-height デバイスの縦方向の解像度 ○

orientation 表示領域の向き ☓

resolution 解像度 ○

13年10月8日火曜日

Page 36: レスポンシブWebデザインの基礎

@import url ("pc.css") screen and (min-width:600px);

<link rel="stylesheet" href="pc.css" media="screen and (min-width:600px)">

@media screen and (min-width:600px){/*style*/}

CSS

CSS

HTML

13年10月8日火曜日

Page 37: レスポンシブWebデザインの基礎

body{ backgorund-color:red; }

モバイルファースト

1025px768px

全サイズに適用

13年10月8日火曜日

Page 38: レスポンシブWebデザインの基礎

body{ backgorund-color:red; }@media screen and (min-width:768px){ body{ backgorund-color:blue; }}

モバイルファースト

1025px768px

幅768px以上に適用

全サイズに適用

13年10月8日火曜日

Page 39: レスポンシブWebデザインの基礎

幅1025px以上に適用

body{ backgorund-color:red; }@media screen and (min-width:768px){ body{ backgorund-color:blue; }}@media screen and (min-width:1025px){ body{ background-color:yellow; }}

モバイルファースト

1025px768px

幅768px以上に適用

全サイズに適用

13年10月8日火曜日

Page 40: レスポンシブWebデザインの基礎

body{ backgorund-color:red; }

767px1024px

デスクトップファースト

全サイズに適用

13年10月8日火曜日

Page 41: レスポンシブWebデザインの基礎

body{ backgorund-color:red; }@media screen and (max-width:1024px){ body{ backgorund-color:blue; }}

767px1024px

デスクトップファースト

幅1024px以下に適用

全サイズに適用

13年10月8日火曜日

Page 42: レスポンシブWebデザインの基礎

body{ backgorund-color:red; }@media screen and (max-width:1024px){ body{ backgorund-color:blue; }}@media screen and (max-width:767px){ body{ background-color:yellow; }}

767px1024px

デスクトップファースト

幅767px以下に適用

幅1024px以下に適用

全サイズに適用

13年10月8日火曜日

Page 43: レスポンシブWebデザインの基礎

モバイルファーストのメリット

•スタイルが少なくなる

#main{float:left;width:80%;}@media screen and (max-width: 639px){#main{float: none;width: auto;}

}

デスクトップファースト

@media screen and (min-width: 640px){#main{float: left;width: 80%;}

}

モバイルファースト

13年10月8日火曜日

Page 44: レスポンシブWebデザインの基礎

デスクトップファーストのメリット

•Media Queriesに非対応のブラウザ対応が簡単デスクトップファーストモバイルファースト

13年10月8日火曜日

Page 45: レスポンシブWebデザインの基礎

ブレイクポイント

13年10月8日火曜日

Page 46: レスポンシブWebデザインの基礎

@media screen and (min-width: 480px){/*style*/

}@media screen and (min-width: 940px){ /*style*/}

940px480px

ブレイクポイント

13年10月8日火曜日

Page 47: レスポンシブWebデザインの基礎

Sorce:Design Spice

サイトによって様々

13年10月8日火曜日

Page 48: レスポンシブWebデザインの基礎

ブレイクポイントを決めるヒント

•主要となるデバイスの幅から•コンテンツの最適なレイアウトから

13年10月8日火曜日

Page 49: レスポンシブWebデザインの基礎

デバイスの幅から

主要となるデバイス、シェアの多いデバイスなどを元に決める

13年10月8日火曜日

Page 50: レスポンシブWebデザインの基礎

コンテンツから

動かしてみて調整が必要な部分に適時ブレイクポイントを追加する

13年10月8日火曜日

Page 51: レスポンシブWebデザインの基礎

@media screen and (min-width: 768px){body{background-color: red;}

}

幅をemで指定

768px=48em1em=16px

13年10月8日火曜日

Page 52: レスポンシブWebデザインの基礎

メディアがスクリーンで表示領域幅が48文字以上の場合、背景色を赤にする

幅をemで指定

768px=48em1em=16px

@media screen and (min-width: 48em){body{background-color: red;}

}

13年10月8日火曜日

Page 53: レスポンシブWebデザインの基礎

Viewport

13年10月8日火曜日

Page 54: レスポンシブWebデザインの基礎

Viewportに指定されたサイズでページを描画する

980pxのウインドウサイズでアクセスしたときと同じ表示

13年10月8日火曜日

Page 55: レスポンシブWebデザインの基礎

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

そのデバイスの幅でサイトが表示される

13年10月8日火曜日

Page 56: レスポンシブWebデザインの基礎

RWDでよくある問題点

13年10月8日火曜日

Page 57: レスポンシブWebデザインの基礎

RWDでよくある問題点

•古いブラウザ対応の考え方•どのようなワークフローで進めるのか•カンプをどのようにつくるか

13年10月8日火曜日

Page 58: レスポンシブWebデザインの基礎

古いブラウザ対応の考え方

Photo by rosefirerising13年10月8日火曜日

Page 59: レスポンシブWebデザインの基礎

最近のブラウザ

古いブラウザ装飾は劣るが最低限の機能は提供

グレイスフルデグラデーション

基準

グレイスフルデグラデーション

13年10月8日火曜日

Page 61: レスポンシブWebデザインの基礎

•特定のデバイス対応•コンテンツの幅は固定•どの表示領域幅でもレイアウトは変わらない

ワークフローを見直す

今までのサイト

•マルチデバイス対応•コンテンツの幅は可変•表示領域幅でレイアウトが変わる

RWD

13年10月8日火曜日

Page 62: レスポンシブWebデザインの基礎

作ってみないとわからない

13年10月8日火曜日

Page 63: レスポンシブWebデザインの基礎

情報設計

画面設計

プロトタイプ デザイン

実装

調整 テスト

テスト

ワークフロー例

13年10月8日火曜日

Page 64: レスポンシブWebデザインの基礎

情報設計

画面設計

プロトタイプ デザイン

実装

調整 テスト

テスト早めにプロトタイプを作成してテストをしながら完成へと近づける

13年10月8日火曜日

Page 65: レスポンシブWebデザインの基礎

カンプをどのようにつくるか

13年10月8日火曜日

Page 66: レスポンシブWebデザインの基礎

=

従来のサイト制作におけるカンプ

13年10月8日火曜日

Page 67: レスポンシブWebデザインの基礎

=       

RWDにおけるカンプ

13年10月8日火曜日

Page 68: レスポンシブWebデザインの基礎

体制や案件に応じて作り方を変える

•各ブレイクポイントで作成•PCサイズのみ作成する•主要な部分のみ作りこんで他はざっくりと

•Designing in the browserで

13年10月8日火曜日

Page 69: レスポンシブWebデザインの基礎

その都度都度で体制を柔軟に変えられることが大事

13年10月8日火曜日

Page 70: レスポンシブWebデザインの基礎

さらに最適化を

13年10月8日火曜日

Page 71: レスポンシブWebデザインの基礎

Responsive Web Design

Performance

Responsive Web Design

Usability

Content Strategy User Interface

Readability

SEO

Accessibility

Information Architecture

User Experience

Visual Design

13年10月8日火曜日

Page 72: レスポンシブWebデザインの基礎

Responsive Web Design

Usability

Performance

Content Strategy User Interface

Readability

SEO

Accessibility

Information Architecture

User Experience

Visual Design

13年10月8日火曜日

Page 73: レスポンシブWebデザインの基礎

Good performance is good design

Brad Frost

13年10月8日火曜日

Page 74: レスポンシブWebデザインの基礎

表示に時間がかかる

光回線3G回線

13年10月8日火曜日

Page 75: レスポンシブWebデザインの基礎

画像の最適化

•CSSを使う•画像を圧縮する•Webフォント•画像を差し替える

13年10月8日火曜日

Page 76: レスポンシブWebデザインの基礎

CSSを使う

#btn{ padding: 0.5em; display: inline-block; font-size: 40px; color: #333; font-weight: bold; letter-spacing: 0.1em; background: #83a603; background: -webkit-linear-gradient(top, #83a603, #769300); background: -moz-linear-gradient(top, #83a603, #769300); background: -o-linear-gradient(top, #83a603, #769300); background: linear-gradient(to bottom, #83a603, #769300); border-radius: 10px; box-shadow: 0px 5px 2px #274000,0px 0px 3px #96b618 inset; text-shadow: -1px -1px 0px rgba(255,255,255,0.2); border: 4px solid #558b00;}

13年10月8日火曜日

Page 77: レスポンシブWebデザインの基礎

画像を圧縮する

JPEGmini

13年10月8日火曜日

Page 78: レスポンシブWebデザインの基礎

画像を圧縮する

•JPEGmini

•ImageOptim

•PunyPNG

13年10月8日火曜日

Page 79: レスポンシブWebデザインの基礎

画像を圧縮する

915kb

1200px×800px

350kb

38%!!

13年10月8日火曜日

Page 80: レスポンシブWebデザインの基礎

Webフォントを使う

Google Fonts

13年10月8日火曜日

Page 82: レスポンシブWebデザインの基礎

Webアイコンフォントを使う

Ico Moon

13年10月8日火曜日

Page 84: レスポンシブWebデザインの基礎

<script src="matchmedia.js"></script><script src="picturefill.js"></script>

<span data-picture data-alt="pic"> <span data-src="img/smallImage.jpg"></span> <span data-src="img/largeImage.jpg" media="(min-width: 600px)"></span> <noscript><img src="img/smallImage.jpg" alt="pic"></noscript></span>

600pxsmallImage.jpg

largeImage.jpg

画像を差し替える

13年10月8日火曜日

Page 87: レスポンシブWebデザインの基礎

RWDとこれからのWeb

13年10月8日火曜日

Page 88: レスポンシブWebデザインの基礎

Android Fragmentation Visualized

多様化するデバイス

13年10月8日火曜日

Page 89: レスポンシブWebデザインの基礎

Future of Screen Technology

Productivity Future Vision

13年10月8日火曜日

Page 90: レスポンシブWebデザインの基礎

それぞれのデバイス専用にサイトを作るのは現実的ではなくなってくる

少ない労力でより多くのデバイスに対応できるのが理想

13年10月8日火曜日

Page 92: レスポンシブWebデザインの基礎

RWDは発展途上

•Media Queries Level4•Responsive Images•flexbox ,Regions,Column,...•vw,vh

13年10月8日火曜日

Page 93: レスポンシブWebデザインの基礎

Photo by Barb Dybwad

考え方も変える

13年10月8日火曜日

Page 94: レスポンシブWebデザインの基礎

完全を求めない

Photo by Peter Miller13年10月8日火曜日

Page 95: レスポンシブWebデザインの基礎

“The control which designers know in the print medium, and often desire in the web medium, is simply a function of the limitation of the printed page. We should embrace the fact that the web doesn’t have the same

constraints, and design for this flexibility. But first, we must 'accept the ebb and flow of things.'”

John Allsopp, “A Dao of Web Design”

13年10月8日火曜日

Page 96: レスポンシブWebデザインの基礎

   

   

13年10月8日火曜日

Page 97: レスポンシブWebデザインの基礎

   

   

13年10月8日火曜日

Page 98: レスポンシブWebデザインの基礎

What is king?

Photo by Kyle Johnston13年10月8日火曜日

Page 99: レスポンシブWebデザインの基礎

未来を想像し、変化に順応する

Photo by dalioPhoto13年10月8日火曜日

Page 100: レスポンシブWebデザインの基礎

まとめ

13年10月8日火曜日

Page 101: レスポンシブWebデザインの基礎

本日のまとめ

•RWDはワンソースでマルチデバイスに対応する手法

•RWDを実装する要素(Fluid Grid,Fluid Image,Media Queries)

•グレイスフルデグラデーションで進められるとよい

•早めにテストを行いリスクを減らし効率的に進める

•カンプをつくるつくらないは案件に応じて

•パフォーマンスを上げるため画像を最適化する

•変化は必ず訪れるので少しずつ順応していく

13年10月8日火曜日