Upgrade to Pro — share decks privately, control downloads, hide ads and more …

行動版網頁不就是把網頁縮小而已嗎?

jiimmysu
July 13, 2014

 行動版網頁不就是把網頁縮小而已嗎?

jiimmysu

July 13, 2014
Tweet

More Decks by jiimmysu

Other Decks in Design

Transcript

  1. 你的網站在行動裝置上能看嗎? • 線上輸入表單 : 挑戰人類耐心極限的 • 一直縮放、拖曳、縮放、換頁、拖曳、縮放 • 很難點的按鈕 •

    「滑鼠移過」才會看到某些按鈕,但手機上沒有滑鼠移過這回事。 • 全Flash的網站、或是選單是Flash的網站,在行動裝置根本看不到 • ….族繁不及備載
  2. 在行動裝置呈現資料的選擇 原生APP RWD 行動專屬網站 特色 • 可使用較多的手機硬體、軟 體功能,如推播通知、各種 感應器、離線操作、讀取手 機文件…等。

    • 要通過審核跟繳年費才能上 架 • 行動/桌機的網址相同,利於搜尋 引擎索引與分享 • 後端程式只要寫一次,其他都是 美工跟前端的事。 • 可引導客戶將網站「加入主畫 面」,在客戶桌面佔有一席之地。 • 區分手機版網站 與完整版網站 • 編排與效能最佳 化 缺點 • iOS/Android 跨平台問題 • App後續維護與更新問題 • 搜尋引擎難以索引app內容 • 動線的規劃與設計 • 資料呈現需有規劃 • 高度依賴客戶端瀏覽環境 • 載入速度問題 • 要維護兩個網站 適合 • 預算充足的客人 • 有特別互動需求者 • 需要極快速反應的程式、複 雜的動畫、遊戲 … 等 • 需要下載付費才能使用的網 路服務 • 一個網站打天下的客人 • 原有網站架構龐 大、改版工程浩 大的客人
  3. 其他行動裝置資料呈現方案 Web App AIR For Android/iOS App套版程式、 App開店程式 製作電子書 (Epub格式或各大軟體

    市集架上的電子書/互 動電子書) 用網頁方式製作, 再用 Phonegap 之類 的程式,封裝編譯 各手機平台的 App。 使用 Flash 相關開發 工具製作,編譯成 App。 範例: • Android Authority、 • Xure Apps • United Cloud Apps • 91mai • … 使用 Adobe Indesign 等 的程式製作互動電子書, 在市集上架。
  4. RWD(Responsive Web Design) 實作技術細節 • 基本心法1 – 流動布局 • <head>內的設定

    • 判斷使用者 • 基本心法2 –Media Query • Media Query & Media Type • Media Query - device-pixel-ratio • 掌握解析度-慎選 Breakpoint • Table 如何 RWD • 選單如何 RWD • 行動裝置上的網頁動畫 • 圖片也要RWD • 圖示也要RWD • 嵌入多媒體也要 RWD • 設定Flash替代內容 • 表單準備好了嗎? • 按鈕準備好了嗎? • 網頁原本用的Plugins準備 好了嗎? • 文書人員上資料時要小心 • 測試工具
  5. <head>內可以設定的 <meta name="viewport" content="width=device-width; initial-scale=1.0" /> • Width=device-width / 固定數值

    設定網頁與手機可視寬度或是實際寬度同寬 • user-scalable 設定網頁是否可被縮放 • initial-scale 初始縮放倍率 • maximum-scale 最高縮放倍率 • minimum-scale 最小縮放倍率
  6. <head>內可以設定的 • 主畫面圖示相關設定 <link rel="apple-touch-icon" href="icon.png" /> • iOS隱藏瀏覽器按鈕列 (網頁要加到主畫面)

    <meta name=“apple-mobile-web-app-capable” content=“yes”> • 電話號碼不讓人點 <meta name=“format-detection” content=“telephone=no”/> 網頁裡有一堆數據資料,容易被手機誤判為電話號碼時可使用 • 讓IE用最新的文件模式來執行網頁,而不要進入相容性模式 <meta http-equiv=“X-UA-Compatible” content=“IE=edge”> 不然網頁在PC IE上看可能會爆炸
  7. 判斷使用者 方法1 : 依裝置的 User Agent 做切換 (ex.LV網站) if ((navigator.userAgent.match(/iPhone/i))

    {alert(“iPhone!!”);} 前後端各種User Agent偵測法整理 http://detectmobilebrowsers.com/ 方法2: 使用 Modernizr 判斷裝置是否支援某項功能,來執行對應的JS語法 http://modernizr.com/docs/
  8. 基本心法2 –Media Query 方法3 : 使用CSS3 Media Query判斷裝置特性,執行 對應的CSS •

    螢幕方向 @media (orientation:landscape){} • 螢幕比例@media screen and (device-aspect-ratio: 16/9){} • 螢幕dpi @media screen and (min-resolution: 192dpi){} • 螢幕寬度 @media screen and (max-device- width:600px){}
  9. Media Query & Media Type • @media all and (max-device-width:

    400px) – 裝置寬度,PC瀏覽器不認得 – max-device-width 最大到… (小於) • @media all and (max-width: 400px) – 視窗寬度 – max-width 最大到… (小於) • @media screen and (max-width: 400px) – screen: 電腦螢幕、手機、平板螢幕 – print: 印表機 – projection: 投影機 – tv: 電視機
  10. 常見裝置的 device-pixel-ratio 線上檢測您的裝置 device-pixel-ratio http://bjango.com/articles/min-device-pixel-ratio/ 1.0 1.3 1.5 2.0 3.0

    • 一般PC • <iPhone 3GS • <iPad 2 • iPad mini 1 代 • Nexus 7 (1代) • Asus MemoPad HD 7 • HTC Desire HD • Kindle Fire HD • Samsung S2 • 視網膜 Mac • iPhone 4+ • iPad 3+ • HTC One X • Samsung S3 • Samsung Note 2 • Nexus 7 (2代) • HTC One (M7) • HTC Butterfly • LG G2 • Samsung S4 • Samsung Note 3
  11. 用device-pixel-ratio判斷裝置特性, 執行對應的CSS @media only screen and (-webkit-min-device- pixel-ratio: 2), only

    screen and ( min--moz-device-pixel-ratio: 2), only screen and ( -o-min-device-pixel-ratio: 2/1), only screen and ( min-device-pixel-ratio: 2), only screen and ( min-resolution: 2dppx) { CSS code } 要對應各家瀏覽器,必須要寫這麼多行 你也可以用Sass或一些編輯器外掛來幫你補瀏覽器前綴詞(prefix)
  12. 掌握解析度-慎選 Breakpoints • 320 : Smartphone 手機打直 • 481 or

    568 : Smartphone 手機打橫 • 768 : 平板 打直 • 961 : 平板打橫 / 小筆電 / 瀏覽器視窗沒有放到最大的PC • 1025 : 桌機 • 1281 : 寬螢幕 Style.css @media only screen and (min-width : 320px) and (max-width : 480px) {手機直} @media only screen and (min-width : 480px) and (max-width : 595px) {手機橫} @media only screen and (min-width : 595px) and (max-width : 800px) {平板直} @media only screen and (min-width : 800px) and (max-width : 1024px) {平板橫} @media only screen and (min-width : 1024px) and (max-width : 1224px){寬螢幕}
  13. Media Query - 另一種寫法 <head> <link rel=“stylesheet” href=“layout.css”> <link media=“(max-width:600px)”

    href=“layout-small.css” rel=“stylesheet” > <link media=“(min-width:601px)” href=“layout-large.css” rel="stylesheet" > </head> 缺點 : 改變breakpoint時要動 html,或是一次要修改好幾支css檔
  14. Table 如何 RWD 網頁還是離不開表格 • 會員購物紀錄、訂單 • 報表 • 菜單

    • 規格資料 • 購物車結帳畫面 • 表單類 • 在後台用table排資料 X 目標 : 一長串的資料在小螢幕要如何呈現
  15. 選單如何 RWD • 目的: 一組menu的html,隨環境顯示正確的選單 這就是為什麼我們要用一些前端的framework,因為他都幫我們做好初步規劃了 <nav> <ul id=”menu”> <li><a

    href=“a.html”>項目1</a></li> <li><a href=“b.html”>項目2</a> <ul class=“submenu”> <li><a href=“a.html”>項目1</a></li> <li><a href=“b.html”>項目2</a> </ul> </li> <li><a href=“c.html”>項目3</a></li> </ul> </nav>
  16. 選單如何 RWD – 範例3 Off canvas Menu 側邊展開選單 Ex. Foundation,

    Google starter kit, Jquery Mobile, Yahoo Pure… 以上framework的行動選單樣式都是 Off canvas Menu
  17. 選單如何 RWD – 現實面 項目超多又有圖… ? ? 選單整塊都是圖片…. 網頁有好幾組選單的時候... •

    主選單 • 註冊、登入、等會員功能選單 • 切換語系選單 • 搜尋功能 • 左邊分類選單…
  18. 技術/格式 可用軟體 優點 缺點 Gif Adobe Flash, Photoshop 相容性高 檔案大、256色、半透明邊緣爆炸

    Javascript + css 繪圖軟體+文字編輯器 相容性高 製作時間拉長 Html5 canvas Adobe Flash, Google web designer, Adobe Edge animate 效能 IE8、不夠直覺 Svg Adobe Edge animate / 繪 圖軟體+文字編輯器 效能、向量 IE8、不夠直覺 Css3 Adobe Edge animate / 繪 圖軟體+文字編輯器 效能、方便 IE8、不夠直覺 嵌入影片 (flv, mp4) Adobe After Effect 符合一般作 動畫的流程 • 影片載入前->畫面沒東西 • 串流影音->播到一半lag或停 住 • 無法與影片中的元件互動 • 有些裝置會鎖自動播放 比較常見、相容性高的解決方案 行動裝置上的網頁動畫
  19. 圖片也要RWD 目的 圖片類型 手段 • 小螢幕顯示比較小張的 圖, 減少載入流量 提高縮放與滑動時的整 體網頁效能

    • 高品質螢幕(如Retina Display)顯示更好的圖 • CSS 圖片 • 使用media query切換 • HTML 圖片 • 使用 javascript 套件切換 ex. rwd.images.js <img class="rwdimage" data-rwdimage=" { src: url(/images/4-by-3.jpg); }, (min-width: 501px) { src: url(/images/16-by-9.jpg); } " /> <script src="/js/enquire.min.js"></script> <script src="/js/rwd.images.min.js"></script> • 由伺服器端處理 • Picture element (未定案) • srcset (未定案) 隨螢幕滿版縮放,符合全 畫面(Fit Screen) 使用相關Css 屬性 max-width, min-width, width max-height, min-height, height Background-size, background-cover
  20. 圖片也要RWD – 應用題 ??? 如果使用 Fit screen 方案 • 字太小看不清楚

    • 要一直縮放,滑動才能看完整張圖 一般製作網頁輪播展示圖片,或是電子郵件 edm 會遇到的問題… http://placekitten.com/
  21. 嵌入多媒體也要 RWD <iframe width="853" height="480" src="//www.youtube.com/embed/CfpzKs XeluY?rel=0" frameborder="0" allowfullscreen></iframe> 縮放寬高的算式要寫好,不然會出

    現黑邊。 要額外再寫 css 覆寫 iframe 寬度, 不然影片會被裁掉 、或是超出版面 ex.Responsive Youtube Embed, fitvids.js
  22. 表單準備好了嗎? 一般網站的輸入表單 • 搜尋 • 聯絡表單 • 報名表單 • 線上訂購單

    • 網站管理後台 購物網站常見的輸入表單 • 會員註冊表單 • 會員登入表單 • 忘記密碼表單 • 購物結帳 • 金流相關表單 • 物流相關表單
  23. 表單準備好了嗎? 如何改善在行動裝置上痛 苦的輸入流程? • 自動完成(auto complete) • 正確的表單屬性設置 • 減少必填欄位

    • 欄位驗證失敗可以即時提示 (不要等全部填完送出之後才提示) • 如果欄位驗證失敗,不會把使用者輸入 的資料清掉。 • Oauth第三方登入功能 • HTML5 Geolocation API • 賣非常棒的產品,表單再難用,客人也 會買。(???)
  24. 表單準備好了嗎? 選項A 選項A <input type=“radio”>選項A <label> <input type=“radio”>選項A </label> 感應區域

    感應區域 讓選項文字也變成可點擊的感應區域 Checkbox, radio 點擊區域問題
  25. 按鈕準備好了嗎? 按鈕 按鈕 • 西方研究: 按鈕最好大於48px http://touchlab.mit.edu/p ublications/2003_009.pdf • 清楚知道點擊範圍

    • 實際感應區域有多大? <------- 48px ------> <------- 48px ------> • 是按鈕還是字? • 畫面較簡潔, 感應區域感覺也變大了 穩 潮
  26. 網頁原本用的Plugins準備好了嗎? • Modal box 功能 (如Lightbox, jQuery UI Dialog)之類的 特效,在行動裝置上的版面會不會有被裁掉、點不到按鈕

    的情況發生? • 是否有經由hover滑鼠事件才能觸發的重要功能或按鈕? • 是否有需按住鍵盤某鍵,滑鼠再點擊某處,才能使用的重 要功能? • 一些變更瀏覽器預設表單樣式的套件,在行動裝置上能否 正常點擊、瀏覽、使用? • 一些PC only的表單元件(如select multiple),在行動裝置該 如何讓人操作? • 網頁上是否有使用flash元件的功能(如多檔選取上傳),在 行動裝置上會功能失效?
  27. 文書人員上資料時要小心 • 避免手動換行 • 有些高級文書人員在PO新聞或商品資料時會用 table排資料,但是在行動裝置上… • 實際測試圖文、多媒體混排在不同裝置上的呈現 是否適當。 (中央社記者林孟汝台北30日電)

    國際液化瓦斯需求增加,依浮動氣價機 制估計,7月桶裝瓦斯每公斤恐上漲新 台幣0.5元,天然氣價格每立方公尺則 微幅調漲;實際調幅要等中油公司7月 1日下午公布。 (中央社記者林孟汝台北 30日電) 國際液化瓦斯需求增加, 依浮動氣價機 制估計,7月桶裝瓦斯每 公斤恐上漲新 台幣0.5元,天然氣價格每 立方公尺則… 寬度變動時… 手動斷行,表面上創造美觀的版面
  28. 多看、多學、多做 • 看看別人的作品 http://responsive-jp.com/ http://mediaqueri.es/ • 查詢裝置資訊 Viewport Sizes •

    查詢瀏覽器支援度 http://caniuse.com/ • 查詢device-pixel-ratio http://bjango.com/articles/min-device-pixel-ratio/ • The Current State of HTML5 Forms http://www.wufoo.com/html5
  29. 測試工具 • All-New ScreenQueries • Viewport Resizer • Android SDK

    • Opera Mobile Classic Emulator • Remote Debugging