標籤:
以下規範建議,均是
Alloyteam在日常開發過程中總結提煉出的經驗,規範具備較好的項目實踐,強烈推薦使用字型設定
使用無襯線字型
body { font-family: "Helvetica Neue", Helvetica, STHeiTi, sans-serif;}
iOS 4.0+ 使用英文字型 Helvetica Neue,之前的iOS版本降級使用 Helvetica。中文字型設定為華文黑體STHeiTi。 需補充說明,華文黑體並不存在iOS的字型庫中(http://support.apple.com/kb/HT5878), 但系統會自動將華文黑體 STHeiTi 相容命中系統預設中文字型黑體-簡或黑體-繁
Heiti SC Light 黑體-簡 細體 (iOS 7後廢棄)Heiti SC Medium 黑體-簡 中黑Heiti TC Light 黑體-繁 細體Heiti TC Medium 黑體-繁 中黑
原生Android下中文字型與英文字型都選擇預設的無襯線字型
4.0 之前版本英文字型原生 Android 使用的是 Droid Sans,中文字型原生 Android 會命中 Droid Sans Fallback4.0 之後中英文字型都會使用原生 Android 新的 Roboto 字型其他第三方 Android 系統也一致選擇預設的無襯線字型
基礎互動
設定全域的CSS樣式,避免圖中的長按快顯功能表與選中文本的行為
a, img { -webkit-touch-callout: none; /* 禁止長按連結與圖片快顯功能表 */}html, body { -webkit-user-select: none; /* 禁止選中文本(如無文本選中需求,此為必選項) */ user-select: none;}
移動效能要考慮
Android低端機與
2G網路情境下效能 注意!
發布前必要檢查項
- 所有圖片必須有進行過壓縮
- 考慮適度的有損壓縮,如轉化為80%品質的jpg圖片
- 考慮把大圖切成多張小圖,常見在banner圖過大的情境
載入效能最佳化, 達到開啟足夠快
- 資料離線化,考慮將資料緩衝在 localStorage
- 初始請求資源數
< 4 注意!
- 圖片使用CSS Sprites 或 DataURI
- 外鏈 CSS 中避免 @import 引入
- 考慮內嵌小型的靜態資源內容
- 初始請求資源gzip後總體積
< 50kb
- 靜態資源(HTML/CSS/JS/Image)是否最佳化壓縮?
- 避免打包大型類庫
- 確保接入層已開啟Gzip壓縮(考慮提升Gzip層級,使用CPU開銷換取載入時間) 注意!
- 盡量使用CSS3代替圖片
- 初始首屏之外的靜態資源(JS/CSS)消極式載入 注意!
- 初始首屏之外的圖片資源按需載入(判斷可視地區) 注意!
- 單頁面應用(SPA)考慮消極式載入非首屏業務模組
- 開啟Keep-Alive鏈路複用
運行效能最佳化, 達到操作足夠流暢
- 避免 iOS 300+ms 點擊延時問題 注意!
- 緩衝 DOM 選擇與計算
- 避免觸發頁面重繪的操作
- Debounce連續觸發的事件(scroll / resize / touchmove等),避免高頻繁觸發執行 注意!
- 儘可能使用事件代理,避免大量繫結事件
- 使用CSS3動畫代替JS動畫
- 避免在低端機上使用大量CSS3漸層陰影製作效果,可考慮降級效果來提升流暢度
- HTML結構層級保持足夠簡單
- 盡能少的使用CSS進階選取器與通配選取器
- Keep it simple
線上效能檢測評定工具使用指南
- 訪問 Google PageSpeed 線上評定網站
- 在地址欄輸入目標URL地址,點擊分析按鈕開始檢測
- 按 PageSpeed 分析出的建議進行最佳化,優先解決紅色類別的問題
web前端,移動開發規範概述