スマートフォン向け...

41
益子 貴寛 2013年5月25日 土曜日 ベルサール九段 ましこ たかひろ スマートフォン向け サイト制作の基本 CSS Nite LP, Disk 27 スマートフォン対応サイト制作(3)

Transcript of スマートフォン向け...

Page 1: スマートフォン向け サイト制作の基本cssnite.jp/lp/lp27/CSSNiteLP27-s3-mashiko.pdf · 益子 貴寛 2013年5月25日 土曜日 ベルサール九段 ましこ たかひろ

益子 貴寛2013年5月25日 土曜日ベルサール九段

ましこ たかひろ

スマートフォン向けサイト制作の基本

CSS Nite LP, Disk 27

スマートフォン対応サイト制作(3)

Page 2: スマートフォン向け サイト制作の基本cssnite.jp/lp/lp27/CSSNiteLP27-s3-mashiko.pdf · 益子 貴寛 2013年5月25日 土曜日 ベルサール九段 ましこ たかひろ

益子 貴寛株式会社サイバーガーデン

ましこ たかひろ

Page 3: スマートフォン向け サイト制作の基本cssnite.jp/lp/lp27/CSSNiteLP27-s3-mashiko.pdf · 益子 貴寛 2013年5月25日 土曜日 ベルサール九段 ましこ たかひろ

このセッションの内容

かんたんな確認ツール

viewport など HTML の設定

CSS メディアクエリ

Fluid Images

CSS レイアウトの基本

HTML5 フォーム

脱ビットマップ画像の時代に

Page 7: スマートフォン向け サイト制作の基本cssnite.jp/lp/lp27/CSSNiteLP27-s3-mashiko.pdf · 益子 貴寛 2013年5月25日 土曜日 ベルサール九段 ましこ たかひろ

かんたんな確認ツール

Page 8: スマートフォン向け サイト制作の基本cssnite.jp/lp/lp27/CSSNiteLP27-s3-mashiko.pdf · 益子 貴寛 2013年5月25日 土曜日 ベルサール九段 ましこ たかひろ

Firefox のデフォルト機能レスポンシブデザインビュー

Page 9: スマートフォン向け サイト制作の基本cssnite.jp/lp/lp27/CSSNiteLP27-s3-mashiko.pdf · 益子 貴寛 2013年5月25日 土曜日 ベルサール九段 ましこ たかひろ

なお、デバイスの幅ではなく表示領域の幅に応じた

レスポンシブWebデザイン であれば

ブラウザのウィンドウ幅をせばめればOK

Page 10: スマートフォン向け サイト制作の基本cssnite.jp/lp/lp27/CSSNiteLP27-s3-mashiko.pdf · 益子 貴寛 2013年5月25日 土曜日 ベルサール九段 ましこ たかひろ

Adobe Edge Inspecthttp://html.adobe.com/edge/inspect/

マシンの画面とスマートフォンの画面を同期

Page 11: スマートフォン向け サイト制作の基本cssnite.jp/lp/lp27/CSSNiteLP27-s3-mashiko.pdf · 益子 貴寛 2013年5月25日 土曜日 ベルサール九段 ましこ たかひろ

各種シミュレータの利用

Xcode/iOSシミュレータhttps://itunes.apple.com/jp/app/xcode/id497799835?mt=12

Page 12: スマートフォン向け サイト制作の基本cssnite.jp/lp/lp27/CSSNiteLP27-s3-mashiko.pdf · 益子 貴寛 2013年5月25日 土曜日 ベルサール九段 ましこ たかひろ

viewport など HTML の設定

Page 13: スマートフォン向け サイト制作の基本cssnite.jp/lp/lp27/CSSNiteLP27-s3-mashiko.pdf · 益子 貴寛 2013年5月25日 土曜日 ベルサール九段 ましこ たかひろ

viewport

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

デバイスの幅に応じて 初期の大きさは等倍(1倍)で

iPhoneでは幅 980px

iPhoneでは幅 320px

Page 14: スマートフォン向け サイト制作の基本cssnite.jp/lp/lp27/CSSNiteLP27-s3-mashiko.pdf · 益子 貴寛 2013年5月25日 土曜日 ベルサール九段 ましこ たかひろ

ほか

<link rel="apple-touch-icon"href="shared/img/icon114x114.png" />

<meta name="format-detection" content="telephone=no, address=no, email=no" />

Page 15: スマートフォン向け サイト制作の基本cssnite.jp/lp/lp27/CSSNiteLP27-s3-mashiko.pdf · 益子 貴寛 2013年5月25日 土曜日 ベルサール九段 ましこ たかひろ

レスポンシブWebデザインを前提にした

CSSメディアクエリの設定

Page 16: スマートフォン向け サイト制作の基本cssnite.jp/lp/lp27/CSSNiteLP27-s3-mashiko.pdf · 益子 貴寛 2013年5月25日 土曜日 ベルサール九段 ましこ たかひろ

CSSメディアクエリ

@media only screen and (max-width: 768px) {

...スマートフォン向けのスタイル...

}

ブレークポイント

ブレークポイントは 768px が一般的

max-width と指定することで、表示領域の幅で切り替え(max-device-width と指定すると、デバイスの幅で切り替え)

Page 17: スマートフォン向け サイト制作の基本cssnite.jp/lp/lp27/CSSNiteLP27-s3-mashiko.pdf · 益子 貴寛 2013年5月25日 土曜日 ベルサール九段 ましこ たかひろ

768px <

< 769px

Page 18: スマートフォン向け サイト制作の基本cssnite.jp/lp/lp27/CSSNiteLP27-s3-mashiko.pdf · 益子 貴寛 2013年5月25日 土曜日 ベルサール九段 ましこ たかひろ

Fluid Images

Page 19: スマートフォン向け サイト制作の基本cssnite.jp/lp/lp27/CSSNiteLP27-s3-mashiko.pdf · 益子 貴寛 2013年5月25日 土曜日 ベルサール九段 ましこ たかひろ

Fluid Images

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

表示領域の幅に応じて画像を自動的に縮小

Page 20: スマートフォン向け サイト制作の基本cssnite.jp/lp/lp27/CSSNiteLP27-s3-mashiko.pdf · 益子 貴寛 2013年5月25日 土曜日 ベルサール九段 ましこ たかひろ

縮小前と縮小後

はみ出し

Page 21: スマートフォン向け サイト制作の基本cssnite.jp/lp/lp27/CSSNiteLP27-s3-mashiko.pdf · 益子 貴寛 2013年5月25日 土曜日 ベルサール九段 ましこ たかひろ

スマートフォンサイトのための

CSSレイアウトの基本

Page 22: スマートフォン向け サイト制作の基本cssnite.jp/lp/lp27/CSSNiteLP27-s3-mashiko.pdf · 益子 貴寛 2013年5月25日 土曜日 ベルサール九段 ましこ たかひろ

ボックスを "width: auto" に

#header-inner,#global-nav ul,#lead,#wrapper,#main,#main .highlight,#side { width: auto;}

ボックスをリキッド(流動的)に

Page 23: スマートフォン向け サイト制作の基本cssnite.jp/lp/lp27/CSSNiteLP27-s3-mashiko.pdf · 益子 貴寛 2013年5月25日 土曜日 ベルサール九段 ましこ たかひろ

ボックスを "float: none" に

#main { float: none; ...}

#side { float: none; ...}

フロートを解除してリニア(線形的)なレイアウトに

Page 24: スマートフォン向け サイト制作の基本cssnite.jp/lp/lp27/CSSNiteLP27-s3-mashiko.pdf · 益子 貴寛 2013年5月25日 土曜日 ベルサール九段 ましこ たかひろ

#page-footer ul,body#category #lead,#main h1 + p { display: none;}

不要な UI を "display: none" で消す

Page 25: スマートフォン向け サイト制作の基本cssnite.jp/lp/lp27/CSSNiteLP27-s3-mashiko.pdf · 益子 貴寛 2013年5月25日 土曜日 ベルサール九段 ましこ たかひろ

.smartphone-ui { display: none; /* hide* /}

@media only screen and (max-width: 768px) { .desktop-ui { display: none; /* hide * / } .smartphone-ui { display: block; /* show* / }}

もし UI をゴソッと変更するなら

Page 26: スマートフォン向け サイト制作の基本cssnite.jp/lp/lp27/CSSNiteLP27-s3-mashiko.pdf · 益子 貴寛 2013年5月25日 土曜日 ベルサール九段 ましこ たかひろ

CSS3セレクタの積極利用

#global-nav ul li a { width: 33.3%;}#global-nav ul li:nth-child(4) a,#global-nav ul li:nth-child(5) a { width: 50%;}

Page 27: スマートフォン向け サイト制作の基本cssnite.jp/lp/lp27/CSSNiteLP27-s3-mashiko.pdf · 益子 貴寛 2013年5月25日 土曜日 ベルサール九段 ましこ たかひろ

text-shadowbox-shadowborder-radiuslinear-gradient()transform

CSS3プロパティの積極利用

Page 28: スマートフォン向け サイト制作の基本cssnite.jp/lp/lp27/CSSNiteLP27-s3-mashiko.pdf · 益子 貴寛 2013年5月25日 土曜日 ベルサール九段 ましこ たかひろ

ほか

/* デバイスの向きによってテキストの大きさを変えない */

body { -webkit-text-size-adjust: 100%;}

/* タップ時のハイライトカラー */

a { -webkit-tap-highlight-color: rgba(204, 0, 0, 0.5);}

Page 29: スマートフォン向け サイト制作の基本cssnite.jp/lp/lp27/CSSNiteLP27-s3-mashiko.pdf · 益子 貴寛 2013年5月25日 土曜日 ベルサール九段 ましこ たかひろ

アドレスバーを自動的に隠す

<script>setTimeout(function(){ window.scrollTo(0, 1);}, 1000);</script>

Page 30: スマートフォン向け サイト制作の基本cssnite.jp/lp/lp27/CSSNiteLP27-s3-mashiko.pdf · 益子 貴寛 2013年5月25日 土曜日 ベルサール九段 ましこ たかひろ

HTML5 フォーム

Page 31: スマートフォン向け サイト制作の基本cssnite.jp/lp/lp27/CSSNiteLP27-s3-mashiko.pdf · 益子 貴寛 2013年5月25日 土曜日 ベルサール九段 ましこ たかひろ

新しい属性の積極利用

<input type="email"placeholder="例)[email protected]"required ... />

Page 32: スマートフォン向け サイト制作の基本cssnite.jp/lp/lp27/CSSNiteLP27-s3-mashiko.pdf · 益子 貴寛 2013年5月25日 土曜日 ベルサール九段 ましこ たかひろ

脱ビットマップ画像の時代に

Page 33: スマートフォン向け サイト制作の基本cssnite.jp/lp/lp27/CSSNiteLP27-s3-mashiko.pdf · 益子 貴寛 2013年5月25日 土曜日 ベルサール九段 ましこ たかひろ

ビットマップ画像の弱点

デバイスの表示領域の多様化

Retina Display

ズーム操作によって、ぼやける

GIF、JPEG、PNG など

Page 34: スマートフォン向け サイト制作の基本cssnite.jp/lp/lp27/CSSNiteLP27-s3-mashiko.pdf · 益子 貴寛 2013年5月25日 土曜日 ベルサール九段 ましこ たかひろ

ベクター表現の代表例

CSS3によるエフェクト

フォント

SVG

Page 35: スマートフォン向け サイト制作の基本cssnite.jp/lp/lp27/CSSNiteLP27-s3-mashiko.pdf · 益子 貴寛 2013年5月25日 土曜日 ベルサール九段 ましこ たかひろ

PNG CSS3とフォント

Page 36: スマートフォン向け サイト制作の基本cssnite.jp/lp/lp27/CSSNiteLP27-s3-mashiko.pdf · 益子 貴寛 2013年5月25日 土曜日 ベルサール九段 ましこ たかひろ

PNG SVG

Page 37: スマートフォン向け サイト制作の基本cssnite.jp/lp/lp27/CSSNiteLP27-s3-mashiko.pdf · 益子 貴寛 2013年5月25日 土曜日 ベルサール九段 ましこ たかひろ

SVG のサポート状況

Internet Explorer 9+

Firefox 3.0+

Google Chrome 4.0+

Safari 3.2+

Opera 9.0+

iOS Safari 3.2+

Android Browser 3.0+

Page 38: スマートフォン向け サイト制作の基本cssnite.jp/lp/lp27/CSSNiteLP27-s3-mashiko.pdf · 益子 貴寛 2013年5月25日 土曜日 ベルサール九段 ましこ たかひろ

SVG の埋め込み例

<a href="http://cybergarden.jp/"><img alt="..."src="images/logo.svg"type="image/svg+xml"width="240" height="46" />

</a>

Adobe Illustrator などが SVG 書き出しに対応

Page 39: スマートフォン向け サイト制作の基本cssnite.jp/lp/lp27/CSSNiteLP27-s3-mashiko.pdf · 益子 貴寛 2013年5月25日 土曜日 ベルサール九段 ましこ たかひろ

まとめ

Page 40: スマートフォン向け サイト制作の基本cssnite.jp/lp/lp27/CSSNiteLP27-s3-mashiko.pdf · 益子 貴寛 2013年5月25日 土曜日 ベルサール九段 ましこ たかひろ

スマートフォン対応は

レイアウトがシンプルなサイトはそれほどむずかしくない

(これまでのCSSの知識だけで対応できる)

むずかしい話や深く考えるべきポイントはこのあとのセッションで