HTML5移動(dòng)端手機(jī)網(wǎng)站開(kāi)發(fā)流程

最近一直在研究移動(dòng)手機(jī)網(wǎng)站的開(kāi)發(fā),發(fā)現(xiàn)做手機(jī)網(wǎng)站沒(méi)有想象中的那么難。為什么會(huì)這么說(shuō)呢?我們?cè)囅胂?我們連傳統(tǒng)的PC網(wǎng)站都會(huì)做,難道連一個(gè)小小的手機(jī)網(wǎng)站難道都搞不定嗎?其實(shí)手機(jī)網(wǎng)站就是一個(gè)微縮版的PC網(wǎng)站罷了!至于為什么覺(jué)得難、覺(jué)得無(wú)從下手。
覺(jué)得有以下幾點(diǎn):
一、沒(méi)有完整的思路和流程
就像做網(wǎng)站的流程一樣,如果你能知道它的流程,我相信就不會(huì)覺(jué)得做手機(jī)網(wǎng)站難!真正難的是你沒(méi)有思路。
二、把html5這門(mén)技術(shù)想的高深莫測(cè)
好像覺(jué)得學(xué)會(huì)用html5+css3做手機(jī)網(wǎng)站,就相當(dāng)于學(xué)會(huì)了頂尖的絕世武功。其實(shí)你錯(cuò)了!不要把html5這玩意想的太高深,其實(shí)做手機(jī)網(wǎng)站,真正意義上用不到什么的html5的強(qiáng)大功能。(可能對(duì)于一些不懂什么技術(shù)的小白而言:你的手機(jī)網(wǎng)站是用HTML5+CSS3做的??!能用上目前互聯(lián)網(wǎng)上最新最前沿的技術(shù)。其實(shí)明眼人一看,就知道是用什么技術(shù)做的。俗話(huà)說(shuō)的好:"外行看熱鬧,內(nèi)行看門(mén)道")
好了扯了這么多,下面就說(shuō)說(shuō)怎么來(lái)開(kāi)發(fā)移動(dòng)手機(jī)網(wǎng)站吧!
基本上開(kāi)發(fā)手機(jī)網(wǎng)站,可大致分為兩大類(lèi)。一類(lèi)是用框架開(kāi)發(fā)手機(jī)網(wǎng)站。一類(lèi)是自己手寫(xiě)手機(jī)網(wǎng)站。
一、框架開(kāi)發(fā)手機(jī)網(wǎng)站
一般用現(xiàn)在常用的開(kāi)發(fā)框架有:目前Web前端最火的框架(BootStrap)、Jquery mobile..當(dāng)然可能還有一些移動(dòng)端開(kāi)發(fā)的框架,這些我就沒(méi)具體去研究過(guò)。
為什么說(shuō)BootStrap是目前前端最火熱的開(kāi)發(fā)框架呢?
因?yàn)閎ootstrap自帶響應(yīng)式布局(柵格系統(tǒng)),而且能做到移動(dòng)設(shè)備優(yōu)先的原則。
運(yùn)用bootstrap來(lái)開(kāi)發(fā)網(wǎng)站有什么好處呢?
1.不懂設(shè)計(jì)也可以做網(wǎng)站
就算不懂設(shè)計(jì),你的網(wǎng)頁(yè)在Bootstrap的幫助下,也能擁有超高顏值。它強(qiáng)大的內(nèi)置樣式庫(kù)讓你的作品變成尤物。
主要體現(xiàn)在:字體文件和bootstrap自帶的UI樣式。(為廣大不會(huì)UI設(shè)計(jì)的程序員,提供了福音)
2.上手快
你可以專(zhuān)心解決問(wèn)題,冗繁的細(xì)節(jié)都丟給Bootstrap操心??梢宰龅揭淮伍_(kāi)發(fā),就可適配所有終端,并且能迅速上手并建出網(wǎng)站原型。還提供很多豐富的插件,就算你不會(huì)JS,基本能看懂常見(jiàn)的API,網(wǎng)站上的效果,基本能解決。
缺點(diǎn):
1.不遵循最佳實(shí)踐
2. Bootstrap 太重
直接點(diǎn)說(shuō):就是CSS和JS有點(diǎn)點(diǎn)大。CSS壓縮后115k,JS壓縮后35k
如果你想要使用Bootstrap的所有功能,你應(yīng)該好好考慮資源的加載時(shí)間。當(dāng)然,對(duì)于一些地方這可能不是問(wèn)題,但是在新西蘭互聯(lián)網(wǎng)不得不橫跨太平洋,這時(shí)數(shù)據(jù)達(dá)到那兒將是很緩慢的。因此考慮你的目標(biāo)市場(chǎng)。
相信任何框架都有它的優(yōu)點(diǎn),同時(shí)也是有它的缺點(diǎn)的。沒(méi)有一個(gè)產(chǎn)品是很完美的,所以根據(jù)自身實(shí)際情況進(jìn)行選擇。至于一些其它框架暫時(shí)不做過(guò)多的解釋了,相信只要你肯愿意百度一下,就可以找到你想要的答案。
移動(dòng)手機(jī)端開(kāi)發(fā)流程
二、手寫(xiě)手機(jī)網(wǎng)站
一般我們自己手動(dòng)開(kāi)發(fā)手機(jī)網(wǎng)站的話(huà),基本可以劃分兩類(lèi)來(lái)做到。一類(lèi)是通過(guò)在網(wǎng)頁(yè)頭部添加meta標(biāo)簽進(jìn)行實(shí)現(xiàn)(網(wǎng)頁(yè)指html5的格式來(lái)開(kāi)發(fā))。另一類(lèi)是通過(guò)CSS3的Media標(biāo)簽(媒介查詢(xún))來(lái)實(shí)現(xiàn)。不了解媒介查詢(xún)的朋友,可以看看這篇文章:響應(yīng)式布局。
在這里我們?cè)敿?xì)講解下,利用添加meta標(biāo)簽來(lái)做手機(jī)網(wǎng)站。
基本在網(wǎng)頁(yè)頭部我們只需添加四個(gè)meta標(biāo)簽就可以實(shí)現(xiàn)一個(gè)手機(jī)網(wǎng)站的框架。我一起來(lái)看看是哪些meta標(biāo)簽。
1、添加viewport標(biāo)簽
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" />
詳細(xì)屬性:
width ---- viewport的寬度(width=device-width意思是:寬度等于設(shè)備寬度)
height ------ viewport的高度(height=device-height意思是:高度等于設(shè)備寬度)
initial-scale ----- 初始的縮放比例
minimum-scale ----- 允許用戶(hù)縮放到的最小比例
maximum-scale ----- 允許用戶(hù)縮放到的比例
user-scalable ----- 用戶(hù)是否可以手動(dòng)縮放
關(guān)于viewport的詳細(xì)原理和知識(shí)點(diǎn),各位就百度吧!在這里我就不做詳細(xì)的講解了。
2、禁止將數(shù)字變?yōu)殡娫?huà)號(hào)碼
<meta name="format-detection" content="telephone=no" />
一般情況下,IOS和Android系統(tǒng)都會(huì)默認(rèn)某長(zhǎng)度內(nèi)的數(shù)字為電話(huà)號(hào)碼,即使不加也是會(huì)默認(rèn)顯示為電話(huà)的,so,取消這個(gè)很有必要!
3、iphone設(shè)備中的safari私有meta標(biāo)簽
<meta name="apple-mobile-web-app-capable" content="yes" />
它表示:允許全屏模式瀏覽,隱藏瀏覽器導(dǎo)航欄
4、iphone的私有標(biāo)簽
<meta name="apple-mobile-web-app-status-bar-style" content="black">
它指定的iphone中safari頂端的狀態(tài)條的樣式
默認(rèn)值為default(白色),可以定為black(黑色)和black-translucent(灰色半透明)
另外還有一個(gè)個(gè)性化的link標(biāo)簽,它支持用戶(hù)將網(wǎng)頁(yè)創(chuàng)建快捷方式到桌面時(shí),其圖標(biāo)變?yōu)槲覀冏约憾x的圖標(biāo)。比如手機(jī)騰訊網(wǎng)上的標(biāo)簽:
<link rel="apple-touch-icon-precomposed" href="http://3gimg.qq.com/wap30/info/info5/img/logo_icon.png">
不過(guò)騰訊對(duì)這個(gè)png圖標(biāo)的命名并不規(guī)范,常規(guī)我們要求文件名應(yīng)為 apple-touch-icon.png 或 apple-touch-icon-precomposed.png ,前者的命名iOS會(huì)為這個(gè)圖標(biāo)自動(dòng)添加圓角、陰影和高亮覆蓋層,后者則不會(huì)添加這些效果。
手機(jī)網(wǎng)站基本框架代碼:
- <!doctype html>
- <html>
- <head>
- <meta charset="utf-8">
- <title>手機(jī)網(wǎng)站</title>
- <meta name="keywords" content="" />
- <meta name="description" content="" />
- <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" />
- <meta name="format-detection" content="telephone=no" />
- <meta name="apple-mobile-web-app-capable" content="yes" />
- <meta name="apple-mobile-web-app-status-bar-style" content="black">
- <meta name="author" content="duanliang, duanliang920.com" />
- <style>
- body{font-size:62.5%;font-family:"Microsoft YaHei",Arial; overflow-x:hidden; overflow-y:auto;}
- .viewport{ max-width:640px; min-width:300px; margin:0 auto;}
- </style>
- </head>
- <body>
- <div>
- 大家好!我是段亮,這是我的第一個(gè)手機(jī)網(wǎng)頁(yè)哦!
- </div>
- </body>
- </html>
下面是我做的基于微信二次開(kāi)發(fā)的手機(jī)頁(yè)面案例:
其實(shí)在移動(dòng)端的開(kāi)發(fā)讓我糾結(jié)的是在字體單位上的選擇。
隨著CSS3的興起,有一種叫rem的單位漸漸的出現(xiàn)在我們的視野中。它是一個(gè)相對(duì)單位,能實(shí)現(xiàn)響應(yīng)式的那種。它是相對(duì)于html根元素來(lái)設(shè)置當(dāng)前文字大小,或者寬高的。因?yàn)樗且粋€(gè)不固定值,不像PX。聽(tīng)說(shuō)在PX這個(gè)單位在PC和移動(dòng)的解析不同,所以才使用rem的。這點(diǎn)我也不是很清楚,也請(qǐng)教了一些做手機(jī)網(wǎng)站的高手,了解了一些信息。
原來(lái)大部分的人依舊是使用PX來(lái)布局,rem都用的少。目前來(lái)說(shuō),就移動(dòng)端的淘寶首頁(yè)就是采用rem來(lái)作為單位來(lái)布局的。關(guān)于使用rem單位這個(gè)問(wèn)題以及它的好處:還得需要大神來(lái)解答這個(gè)問(wèn)題,畢竟我也只是剛接觸。
關(guān)于手機(jī)網(wǎng)站的調(diào)試問(wèn)題
一般我們采用的:在瀏覽器調(diào)試+真機(jī)測(cè)試,因?yàn)闉g覽器畢竟只是一個(gè)模擬工具,實(shí)際開(kāi)發(fā)的話(huà),我們還得用真機(jī)去測(cè)試。
比如:(Android類(lèi)手機(jī),iPhone5、5s、6、6Plus...)
而在瀏覽器上測(cè)試,可以chrome(谷歌瀏覽器)的F12調(diào)試工具:有個(gè)手機(jī)樣的小圖標(biāo),點(diǎn)擊就能模擬手機(jī)測(cè)試。
如下圖:
手機(jī)測(cè)試效果圖
或者用火狐的測(cè)試工具:按shift+ctrl+M進(jìn)行查看。
寫(xiě)在最后:其實(shí)等你真正熟悉做手機(jī)網(wǎng)站這套流程后,你會(huì)發(fā)現(xiàn)做手機(jī)網(wǎng)站沒(méi)有你想象的那么難,真正難的是不知道如何去下手。對(duì)于移動(dòng)端的JS效果可能和PC端有些不同,因?yàn)橐苿?dòng)端有移動(dòng)端的事件,這也是我為什么老是強(qiáng)調(diào)學(xué)JS,是學(xué)原生JS,而不是學(xué)Jquery。我的下篇文章就會(huì)講到"為什么學(xué)JS要學(xué)原生JS",喜歡的朋友可以關(guān)注下博客。
相關(guān)文章
- Microdata作為HTML5新增的一個(gè)特性,它允許開(kāi)發(fā)者在HTML文檔中添加更多的語(yǔ)義信息,以便于搜索引擎和瀏覽器更好地理解頁(yè)面內(nèi)容,本文將探討HTML5中Microdata的使用方法以及2025-04-21
- 在HTML語(yǔ)法中,表格主要通過(guò)< table >、< tr >和< td >3個(gè)標(biāo)簽構(gòu)成,本文通過(guò)實(shí)例代碼講解HTML5表格語(yǔ)法格式,感興趣的朋友一起看看吧2025-04-21
- 這篇文章主要介紹了HTML5中使用媒體查詢(xún)和Flexbox進(jìn)行響應(yīng)式布局的方法,簡(jiǎn)要介紹了CSS Grid布局的基礎(chǔ)知識(shí)和如何實(shí)現(xiàn)自動(dòng)換行的網(wǎng)格布局,感興趣的朋友一起看看吧2025-04-21
基于Canvas的Html5多時(shí)區(qū)動(dòng)態(tài)時(shí)鐘實(shí)戰(zhàn)代碼
本文介紹了如何使用Canvas在HTML5上實(shí)現(xiàn)一個(gè)多時(shí)區(qū)動(dòng)態(tài)時(shí)鐘的web展示,通過(guò)Canvas的API,可以繪制出6個(gè)不同城市的時(shí)鐘,并且這些時(shí)鐘可以動(dòng)態(tài)轉(zhuǎn)動(dòng),每個(gè)時(shí)鐘上都會(huì)標(biāo)注出對(duì)應(yīng)的2025-03-11HTML5 data-*自定義數(shù)據(jù)屬性的示例代碼
HTML5的自定義數(shù)據(jù)屬性(data-*)提供了一種標(biāo)準(zhǔn)化的方法在HTML元素上存儲(chǔ)額外信息,可以通過(guò)JavaScript訪(fǎng)問(wèn)、修改和在CSS中使用,文章還介紹了高級(jí)用法,如存儲(chǔ)JSON數(shù)據(jù)、事2025-03-11HTML5中下拉框<select>標(biāo)簽的屬性和樣式詳解
在HTML5中,下拉框(<select>標(biāo)簽)作為表單的重要組成部分,為用戶(hù)提供了一個(gè)從預(yù)定義選項(xiàng)中選擇值的方式,本文將深入探討<select>標(biāo)簽的屬性、樣式,并重點(diǎn)介2025-02-27- 本文介紹了HTML5InputDatePicker對(duì)象表示HTML``元素,是HTML5中的新對(duì)象,介紹了日期、周、月份、時(shí)間、日期+時(shí)間、本地日期時(shí)間等不同類(lèi)型的日期選擇器,感興趣的朋友一起看2025-02-17
- 本文介紹了HTML5中的超鏈接、相對(duì)路徑和圖片的使用方法,超鏈接可以創(chuàng)建指向另一個(gè)文檔或頁(yè)面內(nèi)部書(shū)簽的鏈接,相對(duì)路徑用于在同一服務(wù)器內(nèi)部跳轉(zhuǎn)頁(yè)面,圖片標(biāo)簽用于引入外部圖2025-02-17
- 本文介紹了HTML5超鏈接的創(chuàng)建方法,包括基本語(yǔ)法、創(chuàng)建圖像超鏈接的邊框去除方法以及錨點(diǎn)鏈接的使用,還討論了超鏈接的四種不同狀態(tài)(link、visited、hover、active)的CSS樣2025-02-17
HTML5使用details標(biāo)簽:展開(kāi)/收縮信息
最近看一些技術(shù)網(wǎng)站發(fā)現(xiàn)了details 標(biāo)簽的妙用,這個(gè)不用js即可實(shí)現(xiàn)展開(kāi)/收縮信息,很方便用來(lái)讓用戶(hù)先才答案,然后下面點(diǎn)擊再給出答案的效果,這里就為大家簡(jiǎn)單介紹一下,2024-11-03