移動端開發小結
前言
會了PC端開發就會了移動端開發,這個說法沒錯,只是點選(click)事件變成了觸屏事件(touch),滑輪滾動(scroll)變成了拖曳(scroll)事件。下面就說一下移動端開發的一些坑與技巧。
關於佈局
適配移動端
重點:移動端佈局一定要在head上加一句話:
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
目的:讓整個螢幕顯示寬度和手機寬度相等,方式使用者縮小和放大。
媒體查詢
移動端佈局和PC端佈局相差很多,當我們縮小時候,某些元素會發生改變,這樣會影響使用者體驗,所以CSS3出現了新的屬性 媒體查詢(media query)
CSS程式碼片段:
@media only srceen and max-width(600px) and min-width(400px) {
body{background-color:red;}
}//螢幕在400px~600px之間背景顏色為紅色
@media only srceen and max-width(1000px) and min-width(600px) {
body{background-color:blue;}
}//螢幕在600px~1000px之間背景顏色為藍色
這樣我們可以根據不同的螢幕大小來切換響應的佈局。
互動方式
手機端的互動方式不一樣
- PC有hover偽類 移動端沒有
- 移動端 touch 事件
- PC有resize 移動端沒有
- PC需要滾動條 移動端不需要
PS:電商網站已經不再使用媒體查詢了,主要是通過不同螢幕大小來判斷使用裝置,載入不同的檔案實現。 而一些新聞類網站還在使用。
關於字型
在移動端開發中,字型大小問題一直困擾著開發者,但是根據MDN提供的方案,我們可以找到一些方案。
1. 什麼是px?
px就是簡單的畫素單位,適用於固定值
2. 什麼是vh/vw?
vh = viewport height = 100vh就是佔滿全屏高度 vh單位前的值是百分比
vw = viewport width = 100vw就是佔滿全屏寬度 值同上
3. 什麼是em?
寬泛的說是一個m的字型大小,但是應用的時候都會說是一個漢字的大小,主要em繼承自身的font-size,如果沒有定義font-size會繼承父親的font-size。
4. 什麼是 rem?
rem = root em 繼承根元素的font-size,一般都是html的font-size
5. rem 和 em 的區別是什麼?
區別就是rem只繼承根元素的font-size,em繼承自身的font-size,兩者沒有關係。
手機端方案的特點是什麼
所有手機顯示的介面都是一樣的,只是大小不同
1 rem == html font-size == viewport width 一個字的大小
解決方案
使用 JS 動態調整 REM
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<script>
var pageWidth = window.innerWidth
document.write('<style>html{font-size:'+pageWidth/10+'px;}</style>') //根據頁面的寬度來設定根元素font-size
</script>
這是一種根據螢幕大小來更改字型大小的解決方案,具有很高的靈活性
當然REM 可以與其他單位同時存在
font-size: 16px;
border: 1px solid red;
width: 5rem;
小結:
CSS3提供了媒體查詢屬性,我們可以根據不同的螢幕來設計不同的頁面,Rem方案讓我們的佈局在不同的裝置下都能等比例的顯示,有了這樣的思路,這樣我們在移動端的開發會更加順暢。
相關文章
- 移動端開發小結(實戰)
- 【移動端開發】移動端開發基礎問題
- 移動端開發技巧
- 移動端App開發 - 01 - 開篇APP
- 移動web開發總結Web
- H5移動端開發H5
- 前端開發移動端除錯前端除錯
- 移動web開發小貼示Web
- 移動終端開發工程師工作流程的總結工程師
- 一點關於移動端頁面開發的總結
- web移動開發總結(六)Web移動開發
- 移動端Modal元件開發雜談元件
- 移動端開發新趨勢FlutterFlutter
- 移動端識別SDK開發包
- 移動端開發基礎瞭解
- Vue.js開發移動端APPVue.jsAPP
- 移動端H5混合開發設定覆盤與總結H5
- 移動端前端開發技術概況前端
- 移動端快速開發的祕密武器
- 移動端適配總結
- Lesktop開源IM移動端:接入LayIM移動端UIUI
- 移動端開發——關於區域性區域滾動總結 | 實戰系列
- 移動端跨平臺開發的深度解析
- 移動端開發reset.css(可用normalize替代)CSSORM
- Bytom移動端錢包SDK開發基礎
- 手摸手帶你學移動端WEB開發Web
- Web移動端適配總結Web
- vue移動端經驗總結Vue
- 移動端開發工程師的AI突圍之路工程師AI
- 淺談 2018 移動端跨平臺開發方案
- 移動端網頁版開發遇到的問題網頁
- 移動端網站開發要點-meta設定網站
- 基於 vagrant搭建移動端的開發環境開發環境
- 移動端小白,30天掌握Flutter雙端外掛開發-上Flutter
- 小李移動開發成長記 —— 大話小程式移動開發
- 雙十一移動端頁面總結
- 移動端圖片優化總結優化
- 自動化平臺開發小結(六)