1. 程式人生 > >移動web頁面前端開發總結

移動web頁面前端開發總結

工作筆記:移動web頁面前端開發總結

 轉載來源:http://www.cnblogs.com/gyjWEB/p/3780374.html

移動web在當今的發展速度是一日千里,作為移動領域的門外漢,在這段時間的接觸後,發現前端開發這一塊做一個小小的總結。

1.四大瀏覽器核心

1.Trident (IE瀏覽器) :因為在早期IE佔有大量的市場份額,所以以前有很多網頁是根據這個Trident的標準來編寫的,但是實際上這個核心對真正的網頁標準支援不是很好,同時存在許多安全Bug。

2.Gecko:( FireFox )優點就是功能強大、豐富,可以支援很多複雜網頁效果和瀏覽器擴充套件介面,缺點是消耗很多的資源,比如記憶體。

3.Webkit: ( Chrome/ Safari / UC )優點就是Webkit擁有清晰的原始碼結構、極快的渲染速度,缺點是對網頁程式碼的相容性較低,會使一些編寫不標準的網頁無法正確顯示。

4.Presto: ( 歐朋 ) Presto核心被稱為公認的瀏覽網頁速度最快的核心,同時也是處理JS指令碼最相容的核心,能在Windows、Mac及Linux作業系統下完美執行。

移動端開發主要物件是手持裝置,其中絕大部分是IOS和Android系統,基於Webkit核心,可使用Chrome瀏覽器除錯即可。

2.手機瀏覽器

瀏覽器已經逐漸從傳統桌面轉向手機端,競爭也越來越激烈。目前國內市場主流的手機

瀏覽器有:UC、百度、歐朋、QQ、海豚、safari、Chrome,這些瀏覽器都是基於webkit核心的,相容性方面不存在問題,同時對html5和css3的支援很好,所以,大膽地應用html5和css3技術吧。

在開始編寫webapp時,前端工程師使用HTML5,而放棄HTML4,因為HTML5可以實現一些HTML4中無法實現的豐富的WEB應用程式  的體驗,可以減少開發者很多的工作量,當然了你決定使用HTML5前,一定要對此非常熟悉,要知道HTML5的新標籤的作用。比如定義一塊內容或文章區域可使用section標籤,定義導航條或選項卡可以直接使用nav標籤等等。

3.終端解析度

手機解析度比PC解析度要龐雜得多,各種解析度有木有?大小差距那麼大有木有?這在一定程度上給頁面製作帶來了不小的麻煩。所以針對這樣的因素,必須有充分的考慮。考慮到

瀏覽器自適應,需要設計和製作完成各種不同的方法。

1) 市場上主流手機生產商的產品解析度。經過調研發現,目前主流的手機解析度為:480*800畫素、320*480畫素,而1280*720畫素(720P)會是接下來的趨勢。這些都是很粗略的統計,要有精確的資料需要花費不少的精力,那是資料分析人員的工作。

2) 專案目標群所持裝置的解析度。專案目標群即使用者,使用者擁有什麼樣的手機解析度,從一定程度上來說比第一點來得更加重要,它決定著專案開發的方向。

4.響應式web開發

在編寫CSS時,我不建議前端工程師把容器(不管是外層容器還是內層)的寬度定死。為達到適配各種手持裝置,我建議前端工程師使用自適應佈局模式(支付寶  採用了自適應佈局模式),因為這樣做可以讓你的頁面在ipad、itouch、ipod、iphone、android、web  safarik、chrome都能夠正常的顯示,你無需再次考慮裝置的解析度。

響應式web開發不是一項開創性的技術變革,簡單地說,響應式web設計採用了媒體查詢、流式佈局、液態圖片三項技術,把它們組合在一起來製作頁面,使得頁面不只在傳統桌面,在平板電腦和手機上,各種不同的解析度都能夠完美顯示。而要做到這點,我覺得不難,請繼續往下:

    1) 準備工作:


b) 編輯器安裝:subline Text2(支援html5,安裝css3擴充套件失敗)、topStyle5(支援css3)。

c) 弄清視口和螢幕的區別。視口是瀏覽器的內容顯示區域,螢幕是裝置的物理顯示區域。比如視口寬度我們一般用width表示,而螢幕寬度是用device-width來表示。相信做過手機頁面的童鞋都經常見過這段程式碼:

<meta name="viewport" content="width=device-width,initial-scale=1.0">

其中width=device-width就是說把頁面寬度設定成和螢幕寬度一樣。

d) 響應式設計創意網站收集:http://www.mediaqueri.es。這裡有很多響應式Web設計的網站,供您參考和學習。


     2) 征途ING:

e) 響應式web設計之媒體查詢:

為了減少http請求,我想在css樣式表裡進行媒體查詢會是個不錯的選擇,而不是在頁面head部分使用link進行載入。樣式表裡的媒體查詢格式為:

@media screen and (max-width:960px){}

大括號內部書寫樣式。該語句相當於判斷語句,有兩個條件,一個是視口寬度最大不超過960px,screen代表顯示屏,這兩個條件都具備了,就呼叫大括號內的樣式。

f) 響應式web設計之流式佈局:

流式佈局以百分比進行佈局。最重要是時刻關注元素的父級層,所有的元素都是以父級層為基準。流式佈局的應用是為了和媒體查詢完美地結合,形成平滑的佈局變化跳轉效果。一般而言,media裡的樣式多以width、padding、margin、font-size、line-height這些為主。

g) 響應式web設計之液態圖片:

要實現液態圖片,只需加入如下程式碼:img{max-width:100%;}

web移動頭部書寫1

<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>首頁</title>
    <meta name="keywords" content="首頁關鍵字" />
    <meta name="description" content="首頁描述" />
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta http-equiv="Cache-Control" content="no-cache" />
    <meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=2.0" />
    <meta name="apple-mobile-web-app-capable" content="yes" />
    <link rel="apple-touch-icon-precomposed" sizes="48×48" href="/images/48×48.png" />
    <link rel="apple-touch-icon-precomposed" sizes="72×72" href="/images/72×72.png" />
    <link rel="apple-touch-icon-precomposed" sizes="114×114" href="/images/114×114.png" />
</head>

1、首先我們來看看webkit核心中的一些私有的meta標籤,這些meta標籤在開發webapp時起到非常重要的作用

<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0,  user-scalable=0;" name="viewport" />

這個meta標籤表示:強制讓文件的寬度與裝置的寬度保持1:1,並且文件最大的寬度比例是1.0,且不允許使用者點選螢幕放大瀏覽;

<meta content="yes” name=" apple-mobile-web-app-capable" />

meta標籤是iphone裝置中的safari私有meta標籤,它表示:允許全屏模式瀏覽;

<meta content="black" name=" apple-mobile-web-app-status-bar-style"   />

meta標籤也是iphone的私有標籤,它指定的iphone中safari頂端的狀態條的樣式;

<meta content="telephone=no" name="format-detection" />

meta標籤表示:告訴裝置忽略將頁面中的數字識別為電話號碼

其他注意問題

1.在專案開發過程中可以會遇到內容排列排列顯示的佈局,建議你放棄float,可以直接使用display:block;

2.請保證將每條資料都放在一個a標籤中,為何這樣做?因為在觸控手機上,為提升使用者體驗,儘可能的保證使用者的可點選區域較大。

3.學會使用webkit-box。

我們說過自適應佈局模式,有些同學可能會問:如何在移動裝置上做到完全自適應呢?很感謝webkit為display屬性提供了一個 "webkit-box" 的值,它可以幫助前端工程師做到盒子模型靈活控制。

4、如何去除Android平臺中對郵箱地址的識別
看過iOS webapp API的同學都知道iOS提供了一個meta標籤:用於禁用iOS對頁面中電話號碼的自動識別。在iOS中是不自動識別郵件地址的,但在Android平臺,它會自動檢測郵件地址,當用戶touch到這個郵件地址時,Android會彈出一個框提示使用者傳送郵件,如果你不想Android自動識別頁面中的郵件地址,你不妨加上這樣一句meta標籤在head中

 <meta content="email=no" name="format-detection" />
 


5、如何去除iOS和Android中的輸入URL的控制元件條
你的老闆或者PD或者互動設計師可能會要求你:能否讓我們的webapp更加像nativeapp,我不想讓使用者看見那個輸入url的控制元件條?答案是可以做到的。我們可以利用一句簡單的javascript程式碼來實現這個效果

 setTimeout(scrollTo,0,0,0);

 請注意,這句程式碼必須放在window.onload裡才能夠正常的工作,而且你的當前文件的內容高度必須是高於視窗的高度時,這句程式碼才能有效的執行。

6、如何禁止使用者旋轉裝置
我曾經也想禁止使用者旋轉裝置,也想實現像某些客戶端那樣:只能在肖像模式或景觀模式下才能正常執行。但現在我可以很負責任的告訴你:別想了!在移動版的webkit中做不到!至少Apple webapp API已經說到了:我們為了讓使用者在safari中正常的瀏覽網頁,我們必須保證使用者的裝置處於任何一個方位時,safari都能夠正常的顯示網頁內容(也就是自適應),所以我們禁止開發者阻止瀏覽器的orientationchange事件,看來蘋果公司的出發點是正確的,蘋果確實不是一般的蘋果。iOS已經禁止開發者阻止orientationchange事件,那Android呢?對不起,我沒有找到任何資料說Android禁止開發者阻止瀏覽器orientationchange事件,但是在Android平臺,確實也是阻止不了的。

7、如何檢測使用者是通過主屏啟動你的webapp


看過Apple webapp API的同學都知道iOS為safari提供了一個將當前頁面新增主屏的功能,按下iphone\ipod\ipod touch底部工具中的小加號,或者ipad頂部左側的小加號,就可以將當前的頁面新增到裝置的主屏,在裝置的主屏會自動增加一個當前頁面的啟動圖示,點選該啟動圖示就可以快速、便捷的啟動你的webapp。從主屏啟動的webapp和瀏覽器訪問你的webapp最大的區別是它清除了瀏覽器上方和下方的工具條,這樣你的webapp就更加像是nativeapp了,還有一個區別是window對像中的navigator子物件的一個standalone屬性。iOS中瀏覽器直接訪問站點時,navigator.standalone為false,從主屏啟動webapp時,navigator.standalone為true, 我們可以通過navigator.standalone這個屬性獲知使用者當前是否是從主屏訪問我們的webapp的。在Android中從來沒有新增到主屏這回事!

6、如何關閉iOS中鍵盤自動大寫
我們知道在iOS中,當虛擬鍵盤彈出時,預設情況下鍵盤是開啟首字母大寫的功能的,根據某些業務場景,可能我們需要關閉這個功能,移動版本webkit為input元素提供了autocapitalize屬性,通過指定autocapitalize="off"來關閉鍵盤預設首字母大寫。

********************分割線*************************

快取控制 <meta http-equiv="Cache-Control" content="no-cache"/> <meta http-equiv="Cache-Control" content="max-age=300"/> 下面這行: <meta http-equiv="Cache-Control" content="max-age=0"/> 與下面一行有相同的效果: <meta http-equiv="Cache-Control" content="no-cache"/> 某些 WAP 瀏覽器不支援用 <meta/> 標籤來控制快取, 但它們確實知道 HTTP 頭 "Cache-Control: no-cache" 的意思. 這種情況下, 解決方案是在伺服器端的 HTTP 響應中設定 HTTP 頭. HTTP重新整理 <meta http-equiv="Cache-Control" content="no-cache"/> <meta http-equiv="refresh" content="15"/> 注意的是這個 XHTML MP 例子中需要 <meta http-equiv="Cache-Control" content="no-cache"/>. 如果上述程式碼沒被包含, WAP 瀏覽器將僅僅顯示快取中的文件的複本, 而不需要每次重新整理都連線伺服器. <meta http-equiv="refresh" content="15;URL=hello_world_example1.xhtml"/> 某些 WAP 瀏覽器是不支援 HTTP 重新整理的. 例如, HTTP 重新整理在 Openwave 移動瀏覽器 6.2.2 版上執行良好, 但在 Nokia 移動瀏覽器 4.0 版, Sony Ericsson T610 和 T68i 行動電話模擬器上是不起作用的. 註釋 <meta name="author" content="mark"/> clearType字型 <META HTTP-EQIV="cleartype" CONTENT="ON|OFF"> 定義頁面尺寸 IE的使用:<META NAME="MobileOptimized" CONTENT="240"> google搜尋中知道這個可以解決flash不能全屏的問題,自己沒遇到過。 其他使用:<meta id="viewport" name="viewport" content="width=320; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" />