1. 程式人生 > 實用技巧 >移動web基礎

移動web基礎

1.pixel

  • px:邏輯畫素,1px在不同裝置上的實際大小不一樣
  • dp,pt:物理畫素,1pt在不同裝置上的實際大小一樣
  • dpr:裝置畫素縮放比,px和pt之間的計算關係
  • 計算公式:1px = (dpr)² * pt
  • DPI、PPI:單位英寸內的畫素密度
    • 1136、640為物理畫素
    • PPI越高,螢幕縮放比越大(圖片會變小)

2.viewport(視口)

  • layout viewport: 網頁佈局區域的大小
/* 獲取layout viewport */
document.documentElement.clientWidth;
document.documentElement.clientHeight;
  • ideal viewport: 裝置螢幕區域
/* 獲取ideal viewport有兩種情形 */
/* 新裝置 */           /* 老裝置 */
window.screen.width / window.devicePixelRatio;
window.screen.height / window.devicePixelRatio;
  • 保證為PC設計的網頁在移動裝置上佈局不發生錯亂,移動裝置會預設設定一個較大的layout viewport(如IOS為980px)
  • 為了使頁面完整的顯示在手機螢幕上,裝置產商將網頁進行了縮放,縮放比例為 ideal viewport / layout viewport
  • 通過設定meta,保證頁面不被縮放
<meta name="viewport" content="width=device-width, initital-scale=1.0, user-scalable=no">

3.長度單位

  • em: 相對長度單位(參照父元素),其參照當前元素字號大小,如果當前元素未設定字號則會繼承其祖先元素字號大小。
例如:.box {font-size: 16px;} 則 1em = 16px
.box {font-size: 32px;}則 1em = 32px,0.5em = 16px
  • rem: 相對長度單位(參照 html 元素), 其參照根元素(html)字號大小
例如 :html {font-size: 16px;} 則 1rem = 16px
html {font-size: 32px;} 則 1rem = 32px,0.5rem = 16px.
  • vw:viewport width,視口寬度(1vw = 1%視口寬度)
  • vh:viewport height 視口高度(1vh = 1%視口高度)
ps:字型大小一般不用相對長度單位,因為字型的大小趨於閱讀的實用性,並不適合於排版佈局

4.移動觸屏事件

  • 事件型別:touchstart、 touchmove、 touchend、 touchcancel
  • 觸控的事件物件: touches、 targetTouches、 changedTouches。 PS:沒有對比出 touches 同 targetTouches 的差異,推薦使用 targetTouches。
  • targetTouches物件: screenX/screenY、 clientX/clientY、 pageX/pageY

5.移動端常用外掛

  • zepto.js:封裝了很多手勢
  • fastclick.js:用於解決點透和 點選事件延遲 的問題
    • 點透: 假如有兩個盒子,盒子A和盒子B,如果盒子A在盒子B的上面,當我們使用tap事件點選盒子A的時候,盒子B會觸發 click 事件,這就是點透。
  • isScroll: 一個高效能,資源佔用少,無依賴,多平臺的 javascript滾動外掛
  • swiper:輪播圖

6.響應式佈局

常見的網頁佈局方式分為以下四種: 1、固定寬度佈局:為網頁設定一個固定的寬度,通常以px做為長度單位,常見於PC端網頁。 2、流式佈局:為網頁設定一個相對的寬度,通常以百分比做為長度單位。 3、柵格化佈局:將網頁寬度人為的劃分成均等的長度,然後排版佈局時則以這些均等的長度做為度量單位,通常利用百分比做為長度單位來劃分成均等的長度。 4、響應式佈局:通過檢測裝置資訊,決定網頁佈局方式,即使用者如果採用不同的裝置訪問同一個網頁,有可能會看到不一樣的內容,一般情況下是檢測裝置螢幕的寬度來實現。 注:以上幾種佈局方式並不是獨立存在的,實際開發過程中往往是相互結合使用的。
  • 響應式佈局,意在實現不同螢幕解析度的終端上瀏覽網頁的不同展示方式
  • 響應式佈局缺點:為了適配各種裝置,會有很多冗餘程式碼, 使整體網頁的體積變大,應用在移動裝置上就會帶來嚴重的效能問題
  • 響應式佈局常用於企業的官網、部落格、新聞資訊型別網站,這些網站以瀏覽內容為主,沒有複雜的互動

7.常見的響應式框架

  • Bootstrap: 是目前最受歡迎的前端框架
  • Amaze UI: 中國首個開源 HTML5 跨屏前端框架, Amaze ~ 妹子UI,國人開發,後起之秀!
  • Framework7: 主要用於開發混合手機App或者網頁App

8.web特別樣式處理

  • 1畫素邊框
  • 相對單位rem的基值設定:1rem = screen.width/20px
  • 多行文字溢位

9.PWA(Progressvie Web App)

  • PWA技術可以使web頁面擁有像原生app一樣的使用者體驗,如快取頁面、接收推送、從桌面直接開啟等
  • 關鍵技術:
    • Web App Manifest:配置web頁面使web頁面可以有桌面圖示、快捷方式
    • Service Worker:攔截Http請求,優先開啟快取頁面
    • Push Notification:使web頁面即使在離線狀態也可以推送和接收訊息