首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

移動端前端開發知識總結:Meta 設定、常見坑點、主流框架與 Flex 佈局實戰

     編輯:Java 綜合教學

移動端前端開發知識總結

Meta 基礎配置

<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
<meta name="format-detection" content="telephone=no">
<meta name="format-detection" content="email=no">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">

常見問題與解決方案

問題解決方案
字體單位選擇少量適配用 px,多設備適配用 rem + 媒體查詢動態調整 html font-size
Touch 事件touchstart/move/end/cancel;winphone 用 MSPointerDown/Move/Up
300ms 點擊延遲FastClick、Zepto tap、綁定 touchstart
Retina 屏圖片模糊設計稿 2x,CSS background-size: 50%,元素尺寸除 2
iOS 點擊灰色遮罩-webkit-tap-highlight-color: rgba(0,0,0,0)
Android 點擊邊框同樣設置 tap-highlight-color,或用 div 代替 a/input
WP 點擊灰背景<meta name="msapplication-tap-highlight" content="no">
表單外觀重置-webkit-appearance:none;WP 用 ::-ms-expand/check/clear{display:none}
placeholder 顏色/換行::-webkit-input-placeholder{color:#aaa};iOS textarea 可換行
音視頻自動播放需用戶交互觸發:document.addEventListener('touchstart',()=>audio.play())
搖一搖HTML5 devicemotion 事件獲取加速度
拍照/上傳<input type="file" accept="image/*">,iOS 全功能,Android 僅選圖,WP 不支持
微信字體縮放Android 用 WeixinJSBridge.setFontSizeCallback;iOS 用 -webkit-text-size-adjust:100%;最佳方案:全站 rem/百分比佈局
Transition 閃屏-webkit-transform-style:preserve-3d; -webkit-backface-visibility:hidden
硬件加速transform:translate3d(0,0,0) 開啟 GPU
iOS 首字母大寫<input autocapitalize="off" autocorrect="off">
Android 語音輸入按鈕input::-webkit-input-speech-button{display:none}

Android 版本特有 Bug

  • 2.3:@-webkit-keyframes 必須 0%~100%、偽類不支持 animation、border-radius 不支持%、translate% 與 scale 同用失效。
  • 4.x:三星 S4 border-radius 縮寫失效、背景色溢出圓角、a:visited 變紫、無法多音頻並行。

高性能 CSS3 動畫原則

  1. 優先用 transform/opacity(合成層),避免 left/top 觸發重排。
  2. 用 translate3d 開啟 GPU 加速。

Fixed 定位坑

  • iOS 軟鍵盤彈出導致 fixed 錯位,Android 表現較好,iOS4 不支持 fixed。
  • 暫無完美方案,可嘗試 iScroll.js。

常用移動端框架

框架用途官網
Zepto.js類 jQuery API,極輕量zeptojs.com
iScroll.js彈性滾動、fixed 修復、下拉刷新cubiq.org/iscroll-5
Underscore.js函數式工具庫underscorejs.org
Slip.js / iSlider.js / fullpage.js滑屏切換-
FastClick消除 300ms 延遲github.com/ftlabs/fastclick

Flex 佈局跨瀏覽器寫法(iOS4+/Android2.3+/WP8+)

.flex{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}
.flex-v{-webkit-box-orient:vertical;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}
.flex-1{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;}
.flex-align-center{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;}
.flex-pack-center{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;}
.flex-pack-justify{-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;}

注意:Flex 子元素必須為塊級元素,否則 Android 2.3 失效。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved