移動web頁面前端開發總結


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

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

 

移動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) 准備工作:

a) 插件安裝:window resize。您可以通過以下鏈接 https://chrome.google.com/webstore/search-extensions/window%20resize下載安裝谷歌瀏覽器插件,安裝成功后,當您調整瀏覽器窗口時,在瀏覽器右下角會有灰度提示當前窗口和類似於手機視口的大小提示。截圖如下:

移動web頁面前端開發總結

 


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;" />


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM