移动网站开发——标记语言
移動(dòng)互聯(lián)網(wǎng)被稱為“第五次科技革命”,而隨著iPhone和Android等智能手機(jī)的日漸流行和iPad等平板電腦的出現(xiàn),移動(dòng)互聯(lián)網(wǎng)的潛力和趨勢(shì)也愈發(fā)顯現(xiàn),針對(duì)移動(dòng)設(shè)備的網(wǎng)站開(kāi)發(fā)越來(lái)越受到關(guān)注,國(guó)內(nèi)很多公司也開(kāi)始重視面向所有移動(dòng)設(shè)備的網(wǎng)站開(kāi)發(fā)。
一般來(lái)說(shuō),對(duì)于移動(dòng)網(wǎng)站可以采取兩種方式:
- 專門(mén)開(kāi)發(fā)一個(gè)獨(dú)立的移動(dòng)版本
- 使用media type和media query控制網(wǎng)站在移動(dòng)瀏覽器的表現(xiàn)
本文和下一篇文章將介紹第一種方案,后面的文章將介紹第2種方案。
本文我們先了解一下移動(dòng)網(wǎng)站的標(biāo)記語(yǔ)言。
移動(dòng)網(wǎng)站標(biāo)記語(yǔ)言的演進(jìn)
我們先看一下 @AdrianF2E 分享的一張《移動(dòng)web相關(guān)標(biāo)記語(yǔ)言的演進(jìn)》的圖表,一目了然:
這張圖形象的展示了標(biāo)記語(yǔ)言的發(fā)展歷程,包括移動(dòng)網(wǎng)站標(biāo)記語(yǔ)言。
移動(dòng)網(wǎng)站開(kāi)發(fā)要比普通的網(wǎng)站開(kāi)發(fā)復(fù)雜的多,選擇一種用于移動(dòng)網(wǎng)站的標(biāo)記語(yǔ)言同樣相當(dāng)糾結(jié)。
在 最初,WAP論壇(后來(lái)和NTT合并,組成OMA,Open Mobile Alliance)創(chuàng)建了一種基于XML的語(yǔ)言,稱為WML,這是用于WAP網(wǎng)站的標(biāo)記語(yǔ)言。它并不是理想的方案,因?yàn)樗鼘⒕W(wǎng)站分割為兩部分:普通頁(yè)面使 用(X)HTML,而移動(dòng)網(wǎng)站使用WML。網(wǎng)站開(kāi)發(fā)者想要做一個(gè)移動(dòng)網(wǎng)站也不得不學(xué)習(xí)一種新的語(yǔ)言而不是轉(zhuǎn)換技術(shù),“一站式”的信條也被打破,用戶不能訪 問(wèn)他們喜歡的網(wǎng)站并且不得不發(fā)現(xiàn)這個(gè)網(wǎng)站的WAP版本——如果它們存在的話。另外日本的NTT創(chuàng)建了他們自己的語(yǔ)言cHTML(compact HTML),但是它并不能與XHTML和WML兼容。
由于這與理想中的方案相去甚遠(yuǎn),W3C創(chuàng)建了XHTML Basic 1.0。正如其名,這是一個(gè)XHTML 1.1的子集。由于XHTML 1.1將XHTML改善為小型的模塊,一個(gè)子集就可以只包含一些必須的或者可以在低端移動(dòng)設(shè)備上控制的基本的模塊、元素和屬性。
基于XHTML
XHTML Basic為針對(duì)移動(dòng)網(wǎng)站的標(biāo)記語(yǔ)言提供基礎(chǔ)的模塊。與其基礎(chǔ)的XML一樣,它也被設(shè)計(jì)用于擴(kuò)展。這正好結(jié)合了WAP和NTT的合并之后(也就是OMA) 的做法,他們創(chuàng)建了cHTML和WML的繼承者XHTML Mobile Profile——它在XHTML Basic的基礎(chǔ)上添加了一些在它們之前的版本中有的特性。XHTML Basic和XHTML MP共存的狀況看起來(lái)有些混亂,但是之后不久W3C就發(fā)布了XHTML 1.1版本,吸收了在XHTML MP中加入的一些特性。所以現(xiàn)在看來(lái)這兩個(gè)版本差不多是一樣的,至于使用哪個(gè)很多時(shí)候只是看個(gè)人喜好了。這里我們選擇XHTML Basic,因?yàn)樗荳3C推薦的….. :)
開(kāi)始使用XHTML Basic
由于XHTML Basic是XHTML的一個(gè)子集,如果你已經(jīng)了解XHTML的開(kāi)發(fā),那么開(kāi)始制作XHTML Basic的頁(yè)面就手到擒來(lái)了。
| 1 2 3 4 5 6 7 8 9 | <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang=="en"> <head> <title>Hello Mobile</title> </head> <body> </body> </html> |
是的,只是加了個(gè)XML的頭聲明,然后使用xhtml basic的DTD。
XHTML Basic 支持的模塊
| html, head, title, body |
| abbr, acronym, address, blockquote, br, cite, code, dfn, div, em, h1, h2, h3, h4, h5, h6, kbd, p, pre, q, samp, span, strong, var |
| a |
| dl, dt, dd, ol, ul, li |
| button, fieldset, form, input, label, legend, select, optgroup, option, textarea |
| caption, table, td, th, tr |
| img |
| object, param |
| b, big, hr, i, small, sub, sup, tt |
| meta |
| link |
| base |
| onblur, onfocus, onload, onunload, onreset, onsubmit, onchange |
| script, noscript |
| 支持style元素 |
| 支持style屬性 |
| 支持target屬性 |
不支持的內(nèi)容:
- 不支持外部CSS文件
- 不支持嵌套table;
- 不支持thead、tbody、tfood等;
- 不支持name屬性;
- 不支持框架;
- 不支持del、ins、basefont、center、dir、font、isindex、menu、sstricke、u等元素。
注意事項(xiàng):
- 對(duì)事件的支持依賴具體的瀏覽器支持,有些瀏覽器不一定支持這些事件;
- webkit支持更多的事件
- opera mini由于是基于自己的代理服務(wù)器,有些事件是不支持的,詳見(jiàn):JavaScript support in Opera Mini 4
XHTML MP
正如之前提到的,XHTML MP是對(duì)XHTML Basic的一個(gè)擴(kuò)展,所以XHTML MP有更好的適用性。而XHTML MP對(duì)于Basic最大的優(yōu)勢(shì)就是支持外部樣式文件——雖然這會(huì)導(dǎo)致多一個(gè)HTTP請(qǐng)求。
這里是一份關(guān)于XHTML MP和XHTML basic的對(duì)比表。
PS:事實(shí)上,WAP 2.0也就是XHTML MP,也就是說(shuō),WAP 2.0與WAP 1.0關(guān)系不大。
兼容性與現(xiàn)狀
所以,如果你想要開(kāi)發(fā)一個(gè)移動(dòng)版的網(wǎng)站,可以放心的使用XHTML Basic 1.1 /MP。
HTML5
Mobile Webkit是目前對(duì)標(biāo)準(zhǔn)支持最好的移動(dòng)瀏覽器,它支持所有的XHTML特性,同時(shí)對(duì)HTML5的支持也非常棒。如果你的項(xiàng)目只針對(duì)iPhone 和(或) Android,完全可以使用HTML 5來(lái)編碼。
事實(shí)上作為又一個(gè)很強(qiáng)勁的趨勢(shì),HTML 5眾望所歸要成為下一代的網(wǎng)頁(yè)標(biāo)準(zhǔn),Google、apple、opera和微軟等互聯(lián)網(wǎng)巨頭一直在努力推廣和推進(jìn)HTML 5。opera認(rèn)為HTML 5是統(tǒng)一移動(dòng)互聯(lián)網(wǎng)的關(guān)鍵。
總結(jié)與展望
正 如之前所說(shuō)的,XHTML basic支持了大部分在XHTML中定義的基礎(chǔ)特性,所以對(duì)于大部分前端開(kāi)發(fā)人員來(lái)說(shuō),開(kāi)發(fā)一個(gè)基于XHTML Basic 1.1或XHTML MP的網(wǎng)站并不困難。但是由于移動(dòng)設(shè)備廠商和設(shè)備都非常的多,所以各個(gè)設(shè)備在對(duì)某個(gè)細(xì)節(jié)上可能會(huì)有差異。
W3C存在的最大價(jià)值,是為我們提供成熟而統(tǒng)一的解決方案,雖然XHTML MP成了事實(shí)上的Mobile 標(biāo)準(zhǔn),但是顯然XHTML Basic功不可沒(méi),如果說(shuō)兩者并存尚容易讓我們混淆的話,希望在不久的將來(lái),HTML 5能夠成為移動(dòng)互聯(lián)網(wǎng)中事實(shí)上的標(biāo)準(zhǔn),這無(wú)疑將大大減少我們的開(kāi)發(fā)需求。
但 是由于現(xiàn)實(shí)中很難將所有的設(shè)備統(tǒng)一,這就造成實(shí)現(xiàn)方式的必然存在差異。可以預(yù)見(jiàn),XHTML Basic /MP和HTML 5將成為兩種并行的規(guī)范存在,我們不得不用XHTML Basic/MP為低端設(shè)備開(kāi)發(fā)基礎(chǔ)頁(yè)面,同時(shí)使用HTML 5為iPhone和Android等系統(tǒng)實(shí)現(xiàn)富界面。
整理自:Mobile markup – XHTML Basic 1.1
參考:
- XHTML MP (XHTML Mobile Profile) Introduction
- http://www.w3.org/TR/xhtml-basic/
轉(zhuǎn)載于:https://www.cnblogs.com/wqj0405/archive/2010/09/17/1829437.html
總結(jié)
以上是生活随笔為你收集整理的移动网站开发——标记语言的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 查看JVisualVM查看信息
- 下一篇: 西门子step7安装注册表删除_西门子S