スマートフォンブラウザ不具合特集
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

スマートフォンブラウザ不具合特集

on

  • 102,857 views

CSS Nite in OSAKA, Vol.29 で発表したスライドです。改訂版を http://www.slideshare.net/HiroakiWakamatsu/ss-14011485 にアップしました。

CSS Nite in OSAKA, Vol.29 で発表したスライドです。改訂版を http://www.slideshare.net/HiroakiWakamatsu/ss-14011485 にアップしました。

Statistics

Views

Total Views
102,857
Views on SlideShare
77,993
Embed Views
24,864

Actions

Likes
198
Downloads
400
Comments
2

52 Embeds 24,864

http://ke-tai.org 12047
http://cssnite.jp 7798
http://neulog.example.jp 1004
http://bikkuri.me 658
http://blog.bluearrowslab.com 607
https://twitter.com 468
http://www.d-wood.com 409
https://wri.pe 344
http://temping-amagramer.blogspot.jp 285
https://twimg0-a.akamaihd.net 239
http://s.deeeki.com 201
https://si0.twimg.com 193
http://osaka.cssnite.jp 170
http://192.168.33.10 115
http://slide.yoshiday.net 83
http://tweetedtimes.com 49
http://us-w1.rockmelt.com 29
http://a0.twimg.com 26
http://webcache.googleusercontent.com 20
http://tech-pon.tumblr.com 14
http://feedly.com 13
http://twitter.com 13
https://www.chatwork.com 9
http://ss.dotbranch.com 7
http://localhost 5
http://www.google.co.jp 5
https://kcw.kddi.ne.jp 5
http://storify.com 4
https://www.google.co.jp 3
http://cloud.feedly.com 3
http://paper.li 3
http://purecrest.blogspot.jp 3
http://feeds2.feedburner.com 3
http://safe.tumblr.com 3
http://b.hatena.ne.jp 3
http://temping-amagramer.blogspot.de 2
http://reader.aol.com 2
http://www.twylah.com 2
http://wiki.onakasuita.org 2
http://hrt.happy.nu 2
http://www.google.com 2
http://sc.dotbranch.com 1
http://geechscamp.lovepop.jp 1
http://twicli.neocat.jp 1
http://www12243uf.sakura.ne.jp 1
http://favtile.com 1
https://drive.jolicloud.com 1
http://temping-amagramer.blogspot.com 1
http://temping-amagramer.blogspot.com.au 1
http://reader.mydns.jp 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

スマートフォンブラウザ不具合特集 Presentation Transcript

  • 1. スマートフォンブラウザ不具合特集 若松 浩昭(株式会社ジークス)
  • 2. 自己紹介若松 浩昭(Hiroaki Wakamatsu) iPhone 3G・Webサイトの設計・フロントエンド周りの実装 003SH・スマートフォン案件が主体 Galaxy S Ⅱ・HTML5-WEST.jpコアメンバー Galaxt Nexus SO-01BTwitter : azuyuu IS05ブログ : goo.gl/x1kk4 My Desktop!! 2
  • 3. セッションのテーマ 不具合をうまく回避して、 案件を成功に導こう!! 3
  • 4. セッションの内容1. スマートフォン案件の現状2. 不具合を回避するための事前準備3. 代表的な不具合とその回避方法4. その他、気をつけていること5. 最後に・・・ 4
  • 5. Chapter. 1スマートフォン案件の現状 5
  • 6. 日本におけるスマートフォン 6
  • 7. 案件の多くは・・・ 7
  • 8. 苦労するのがAndroid対応•Android OS のバージョン•端末の解像度•ブラウザ•機種に依存する不具合 8
  • 9. Chapter. 2不具合を回避するための事前準備 9
  • 10. これだけはしておこう:対クライアント編•Webで実現可能な表現・機能の説明•iPhone Androidの説明•Androidの機種依存問題の説明•案件で対応する範囲を明確に 10
  • 11. •Android 2.2以下も動作対象?•標準ブラウザ以外のブラウザは?•動作検証(担保)の対象となる機種は? 11
  • 12. これだけはしておこう:クリエイター編•とにかくノウハウが大事。日頃から不具合等の情報収集に励む•要件に対しては事前に必ず検証•検証端末の確保(できれば複数台) 12
  • 13. Chapter. 3代表的な不具合と回避方法 13
  • 14. ・・・の前に、不具合に対応するための準備•UserAgentによる判別処理var ua = navigator.userAgent;var isIphone = /iphone/.test(ua);var isAndroid = /android/.test(ua);// Android端末なら、class="android"をHTMLタグに指定if (isAndroid) { $("html").addClass("android");} 14
  • 15. Case. 1太字•標準フォントの「Droid Sans Japanese」は、全角文字には非対応•機種によっては、太字に完全対応したオリジ ナルフォントがインストールされている SAMSUNG製Android端末 Sharp製Android端末 15
  • 16. Case. 1太字 ー 回避方法の例 ー•text-shadow を使って太字を再現 (機種別で分けるのは・・・さすがにしんどい) E{ font-weight: bold; } .android E { font-weight: normal; text-shadow: 0 0 1px 文字の色; } 16
  • 17. Case. 2リンク要素のアウトライン•ブロック要素のアウトライン反応がおかしい <a href="リンク先URL">リンクのタイトル</a> a { display: block; } /* aをブロック要素としてレンダリング */ 17
  • 18. Case. 2リンク要素のアウトライン ー 回避方法の例 ー•aタグの直下にdivタグを挿入 (pタグや、display:block; にしたspanタグはNG) <a href="リンク先URL"><div>リンクのタイトル</div></a> 18
  • 19. Case. 3translate3d•translate3d実行後のレンダリングに崩れ リンク要素のアウトライン、transform系プロパティ、 各種インプット系要素 ... 19
  • 20. Case. 3translate3d•translate3dと同時に指定した、その他の transform系プロパティが反映されない iPhone4 IS05 20
  • 21. Case. 3translate3d•translate3dを実行した要素内では、 インプット系要素が不可思議な動き デモURL : goo.gl/8oNXZ 21
  • 22. Case. 3translate3d ー 回避方法の例 ー•Androidではtranslate3dを使用しない E{ transition: all 0.75s ease-out; transform: translate3d(0, 400px, 0); } .android E { transform: translate(0, 400px); } 22
  • 23. Case. 4オーバーレイ•下層レイヤーのクリック要素(プルダウン含 む)が反応 Case 1 23
  • 24. Case. 4オーバーレイ•条件によっては、オーバーレイ上の要素が 操作できなくなる可能性も・・・ Case 2 Case 3 Case 4 24
  • 25. Case. 4オーバーレイ ー 回避方法の例 ー 方法1:ハイライトカラーを透明化 -webkit-tap-highlight-color: rgba(0, 0, 0, 0); Case 1 Case 2 Case 3 Case 4 ハイライトは消えるが、要素は反応している 25
  • 26. Case. 4オーバーレイ ー 回避方法の例 ー 方法2:タップ時のイベントをキャンセル $("E").on("touchstart", function(e) { e.preventDefault(); } Case 1 Case 2 Case 3 Case 4 プルダウンが機能しなくなる 26
  • 27. Case. 4オーバーレイ ー 回避方法の例 ー 方法3:クリック(プルダウン)要素を非表示 visibility: hidden; Case 1 Case 2 Case 3 Case 4 下層レイヤーのaタグやプルダウンが全て非表示になるが・・・ 27
  • 28. Case. 5固定配置 iOSなら5以上、Android OSなら2.2以上 で、position: fixed; が使用可能 28
  • 29. Case. 5固定配置•iOS4でも対応するなら、ライブラリの使用 を推奨 iScroll4 http://cubiq.org/iscroll-4 29
  • 30. Case. 5固定配置•Androidでは、iScroll等のライブラリは動 作が不安定•position: fixed; を使用する場合は、 viewportに user-scalable=no の指定が 必須(Android4は除く) 30
  • 31. Case. 5固定配置•Galaxy S Ⅱなどの一部の機種では、 position: fixed; がうまく動かない 31
  • 32. Case. 5固定配置 ー 回避方法の例 ー•スクロール途中は固定配置の要素を 非表示にする等、調整を入れる デモURL : goo.gl/jLJwZ 32
  • 33. Case. 6text-shadow•必ずぼかしの設定値は1px以上にする (Android4は除く) text-shadow: 0 0 1px rgba(0, 0, 0, 0.75); 33
  • 34. Case. 6text-shadow•Galaxy Nexusでは、特定の文字で文字飛 びが発生するので、text-shadowは無効に if (/Galaxy Nexus/.test(navigator.userAgent)) { $("E").css("text-shadow", "none"); } 34
  • 35. Case. 7拡大と縮小•3種類のアクション ピンチイン・アウト ダブルタップ 拡大・縮小ボタン 35
  • 36. Case. 7拡大と縮小•2種類の拡大結果 全体がそのまま拡大 画面幅に合わせて改行 36
  • 37. Case. 7拡大と縮小•拡大(縮小)時のアクションと結果は、 機種によって違う場合がある 例) Xperia acro: → ピンチアウト ... 全体がそのまま拡大 → ダブルタップ/拡大アイコン ... 画面幅に合わせて改行 HTC EVO 3D: → ピンチアウト/ダブルタップ ... 画面幅に合わせて改行•端末の仕様と割り切る 37
  • 38. Chapter. 4その他、気をつけていること 38
  • 39. Point. 1スワイプ系のライブラリの選定•選定する時は「Androidでも動くか?」を 基準にする 39
  • 40. Point. 1スワイプ系のライブラリの選定•flickSimple イトーヨーカドー、スターバックス、セブンイレブン•flipsnap JRおでかけネット、ドミノピザ、UNO(資生堂)•flickslide 海遊館、ミスタードーナツ、モスバーガー•etc... まとめURL : goo.gl/eagSn 40
  • 41. Point. 2フォーム系のスタイルを調整•テキストフィールドの調整•プルダウンの高さ調整 input { padding: 8px 5px; } select { height: 36px; } 41
  • 42. Point. 2フォーム系のスタイルを調整•チェックボックスやラジオボタンのサイズ調 整と、labelタグへのイベント登録 <label onclick=""> <input type="checkbox" /> </label> input[type=checkbox] { -webkit-transform: scale(1.8); } 42
  • 43. Chapter. 5 最後に・・・ 43
  • 44. 最後に・・・•スマートフォン案件は、Androidの不具合をどれだけうまく回避できるかが鍵•Androidに関しては、 格好いい 動きの実装は避けた方が幸せ•HTML5のAPIを使用する際は、特に入念な検証が必要 44
  • 45. スマートフォンブラウザ不具合特集 若松 浩昭(株式会社ジークス) @azuyuu