移動webAPP前端開發技巧匯總2

來源:互聯網
上載者:User

標籤:

一、關於單位的使用

可能在傳統的PC端來說,1px=1px的比例。而在移動端卻不是這樣,1px = ?。 因為出現了一個像素密度這樣個東西,就不能在移動端使用“PX”這個單位。可能在你的大屏手機是1px等於1點幾個像素,可能在小屏手機卻剛好。就好比網頁的相容性一樣,瀏覽器的核心不同,解析當然會有所不同!

正好,CSS3又給你出現了一個新的單位“rem”。當然出現了這樣的問題,首先我們就會去問問神奇的“百度”。大多數網友給出的答案是:“給html根項目的字型大小設定font-size:62.5%,再來使用rem這個單位就能很好的解決這個問題!”

這樣設定後:就會得到一個兌換比例值:1rem = 10px; 如果我們要給一個"h1"標籤設定字型大小為20px的時候。我們就直接設定為rem就好了!

代碼如下:

html{font-size:62.5%;}h1{fon-size:2rem} ==>h1{fon-size:20px}

二、布局上

相信布局不用我多說什麼了,就按照正常的網頁布局來寫,一般設計師給的是640*960.我們就按照320的比例來做,就是寬度減少一半。可能多數人跟我之前是一樣,字型用單位“rem”。其它照樣使用px這個單位。好吧!最近又被嚴格的UI設計師,找出問題來了,你怎麼這裡跟我對不上呀!....

好吧!原來想偷工減料的就這樣寫的,沒辦法,既然被嚴格的查起來了,又得去找解決方案!(可能之前也沒太在意這些細節,一直就這樣拖著)

暫時找了個合適的解決方案,這樣既解決了字型單位的問題,又相容單位像素的問題,只是換算麻煩點!

比如:我們要設定一個寬度為60px的盒子.換算成rem單位就是:60/2/20 = 1.5rem; 前提是我們需要在頭部添加以下代碼:

PS:實際像素為60px,在手機端就是30px,在轉化成rem單位就在除以20。

html {    font-size : 20px;}@media only screen and (min-width: 401px){    html {        font-size: 25px !important;    }}@media only screen and (min-width: 428px){    html {        font-size: 26.75px !important;    }}@media only screen and (min-width: 481px){    html {        font-size: 30px !important;    }}@media only screen and (min-width: 569px){    html {        font-size: 35px !important;    }}@media only screen and (min-width: 641px){    html {        font-size: 40px !important;    }}

可能還有更好的解決方案,暫時沒找到更好的方案...

三、細節處理

可能處理細節就是在解決相容性的問題吧!還好手機端沒有蹦出個IE來,基本都是webkit核心和IOS內建的瀏覽器。

1、禁止自動識別電話和android自動識別郵箱

2、使用無襯線字型

body {       font-family: "Helvetica Neue", Helvetica, STHeiTi, sans-serif;    }

OS 4.0+ 使用英文字型 Helvetica Neue,之前的iOS版本降級使用 Helvetica。中文字型設定為華文黑體STHeiTi。需補充說明,華文黑體並不存在iOS的字型庫中,但系統會自動將華文黑體 STHeiTi 相容命中系統預設中文字型黑體-簡或黑體-繁

Heiti SC Light 黑體-簡 細體 (iOS 7後廢棄)Heiti SC Medium 黑體-簡 中黑Heiti TC Light 黑體-繁 細體Heiti TC Medium 黑體-繁 中黑

原生Android下中文字型與英文字型都選擇預設的無襯線字型

4.0 之前版本英文字型原生 Android 使用的是 Droid Sans,中文字型原生 Android 會命中 Droid Sans Fallback

4.0 之後中英文字型都會使用原生 Android 新的 Roboto 字型

其他第三方 Android 系統也一致選擇預設的無襯線字型

3、禁止選擇文本

html, body {      -webkit-user-select: none;   /* 禁止選中文本(如無文本選中需求,此為必選項) */      user-select: none;}

4、禁止長按連結與圖片快顯功能表

a, img {       -webkit-touch-callout: none; /* 禁止長按連結與圖片快顯功能表 */    }

5、去除A串連input標籤,點擊出現內建的陰影樣式

a,input{    -webkit-tap-highlight-color:rgba(0,0,0,0);/*ios android去除內建陰影的樣式*/    }

6、屏蔽陰影:

-webkit-appearance:none;

可以同時屏蔽輸入框怪異的內陰影,解決iOS下無法修改按鈕樣式,測試還發現一個小問題就是,加了上面的屬性後,iOS下預設還是帶有圓角的,不過可以使用 border-radius屬性修改。

7、單擊延遲

click 事件因為要等待雙擊確認,會有 300ms 的延遲,體驗並不是很好。

開發人員大多數會使用封裝的 tap 事件來代替click 事件,所謂的 tap 事件由 touchstart 事件 + touchmove 判斷 + touchend 事件封裝組成。

移動webAPP前端開發技巧匯總2

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.