6.12日音訊,wap網(wǎng)站的mp要求。隨著智能手機的普遍wap網(wǎng)站的重要性便不言而喻,如何才能在各大屏幕不等的手機上做好同樣的效果成了網(wǎng)頁設(shè)計制作者的共同要求和能力的展示,我們知道,網(wǎng)頁制作的語言是相通的只是語法、樣式會有所改變,所以做好以上兩點是基礎(chǔ),下面
邯鄲網(wǎng)站建設(shè)首創(chuàng)網(wǎng)絡(luò)小編就來給大家介紹一下相關(guān)的知識:
一:XHTMLMP的語法規(guī)則
我們知道,我們通常用電腦訪問的網(wǎng)站的網(wǎng)頁是用html構(gòu)建的。類似的,現(xiàn)在WAP2.0網(wǎng)站是用XHTMLMP
構(gòu)建,以供手持設(shè)備的訪問,如手機、PDA等。
XHTMLMP是XHTML的子集,因此繼承了它的語法。
XHTML是更嚴(yán)格和簡潔的HTML版本。現(xiàn)在來看看XHTMLMP的語法規(guī)則:
1:標(biāo)簽必須正確閉合!
<p>XHTMLMP教程段落1</p>
<p>XHTMLMPtutorialparagraph2</p>
<p>XHTMLMPtutorialparagraph3</p>
有些標(biāo)簽是不含內(nèi)容的(開始標(biāo)簽和結(jié)束標(biāo)簽之間的東東,如上面的XHTMLMPtutorialparagraph1),
就必須用這種形式:Linebreak<br/>。請注意一定要加上斜杠
2:標(biāo)簽和屬性都必須是用小寫
正確的寫法:
<pid="p1">XHTMLMPtutorialparagraph1</p>
<pid="p2">XHTMLMPtutorialparagraph2</p>
<pid="p3">XHTMLMPtutorialparagraph3</p>
3:屬性的值必須放置在雙引號內(nèi)
<pid="p1">XHTMLMPtutorialparagraph1</p>
4:不支持屬性簡寫
在html中,如下寫法是正確的:
<inputtype="checkbox"checked/>
而xhtml中必須這樣寫:
<inputtype="checkbox"checked="checked"/>
下面再舉一個例子:
<selectmultiple="multiple">
<option>XHTMLMPTutorialPart1</option>
<optionselected="selected">XHTMLMPTutorialPart2</option>
<option>XHTMLMPTutorialPart3</option>
</select>
5:標(biāo)簽的嵌套必須正確
不支持標(biāo)簽的重疊,所以下面的寫法是錯誤的!
<p><b>XHTMLMPtutorialparagraph1</p></b>
應(yīng)該這樣子寫:
<p><b>XHTMLMPtutorialparagraph1</b></p>
二:XHTMLMP的MIME類型和文件擴展名
XHTMLMP支持下面三種MIME類型
1.application/vnd.wap.xhtml+xml
2.application/xhtml+xml
3.text/html
第一種類型是一些wap瀏覽器所需要的(如某些諾基亞S60瀏覽器),以便正確顯示XHTMLMP文檔。
第二種是XHTML系列文檔的類型
第三種是HTML文檔的類型。這樣用IE6就可以正常瀏覽這些文檔,而如果遇到上面的兩種類型就會彈出一個對話框
讓你保存這些文檔。
動態(tài)選擇MIME類型
比如服務(wù)器端判斷某個客戶端請求可以處理application/vnd.wap.xhtml+xmlMIME類型,那所有的XHTMLMP文檔就
都使用application/vnd.wap.xhtml+xmlMIME類型發(fā)送給客戶端。
要實現(xiàn)這個就必須通過服務(wù)器端編程,獲取客戶端HTTP請求的Header值,這里面的值包含客戶端可以處理的所有MIME類型。
如果支持就設(shè)置XHTMLMP的MIME類型為application/vnd.wap.xhtml+xml,如果支持其它的,就設(shè)置成其它的。
下面的例子是JSP的,但是你如果使用其它技術(shù)的話,原理是一樣的,代碼也是大同小異!
<%
StringacceptHeader=request.getHeader("accept");
if(acceptHeader.indexOf("application/vnd.wap.xhtml+xml")!=-1)
response.setContentType("application/vnd.wap.xhtml+xml");
elseif(acceptHeader.indexOf("application/xhtml+xml")!=-1)
response.setContentType("application/xhtml+xml");
else
response.setContentType("text/html");
%>
這里的代碼很簡單,我就不多加解釋了!
文件的擴展名
靜態(tài)XHTMLMP文檔的典型擴展名包括:.xhtml、.html和.htm。當(dāng)然,你也可以使用其它擴展名,只要你在
WAP服務(wù)配置文件里面設(shè)置清楚就OK了。如果你要使用服務(wù)器端技術(shù)(如JSP、PHP、ASP、SSI等),你就必須
使用相應(yīng)的擴展名,如PHP使用.php,SSI使用.shtml。
三:XHTMLMP文檔結(jié)構(gòu)
第一個例子一個典型的XHTMLMP文檔結(jié)構(gòu)
講解:
前面的預(yù)聲明不是XHTMLMP元素的一部分,所以不必遵守XHTMLMP的約定。
剩下的內(nèi)容和普通的html沒有什么不同了。
記?。海兀龋裕停蹋停斜仨毎?lt;html>,<head>,<title>,和<body>元素。
四:XML聲明和字符編碼
<?xmlversion="1.0"encoding="UTF-8"?>
所有的XHTMLMP文檔都是XML文檔,因此開始都會有一個XML聲明。這里也可以指定文檔的字符編碼。
如果文檔的字符編碼是UTF-8orUTF-16的話,其實可以省略掉。
雖然這個XML聲明是可以省略的,但是我們不建議這么做,因此這樣可能導(dǎo)致某些索愛的WAP瀏覽器產(chǎn)生錯誤。
五:DOCTYPE聲明
聲明是必須的。這個聲明規(guī)定了DTD名稱和URL。這個DTD包含標(biāo)記語言的語法信息,可供驗證工具驗證你寫的XHTMLMP文檔的語法正確性。
這些驗證工具集成在很多IDE中了。
六:各標(biāo)記簡析
<html>是XHTMLMP的根標(biāo)記。目前,該標(biāo)記的xmlns屬性只能是http://www.w3.org/1999/xhtml這個值,這個用來保證
嚴(yán)格遵守XHTMLMP標(biāo)準(zhǔn)。但是即使缺失了這個標(biāo)記,大部分瀏覽器還是能正常顯示頁面。
<head>標(biāo)記用來存放關(guān)于文檔本身的信息。比如<title>和<link>,還有<meta>,這幾個標(biāo)記的功能和在傳統(tǒng)的html里面的功能是一樣的!
這里不再廢話了。
還有<body>標(biāo)記也不重復(fù)解釋了。
<p>標(biāo)記的text-align屬性已經(jīng)被取消了,你可以在css中定義實現(xiàn)這個功能,如:
p{
text-align:right
}
七:XHTMLMP的Metadata
先看下面的例子:
<head>
<title>XHTMLMPTutorial</title>
<metaname="author"content="Andrew"/>
</head>
WAP瀏覽器會自動忽略你自定義的meta屬性(它不會顯示在你的頁面中),如這里的name,這并不會對你的頁面的界面有任何影響。
八:XHTMLMP的緩存控制
這里的緩存就是客戶端用來臨時存儲XHTML文檔的空間,如果瀏覽器發(fā)現(xiàn)緩存里面有這個頁面了而且沒有過期,那它就
直接顯示這個頁面,而不需要再次聯(lián)網(wǎng)下載,這樣節(jié)省了時間。
當(dāng)然,你可以禁止緩存,你可以這樣做:
<head>
<title>XHTMLMPTutorial</title>
<metahttp-equiv="Cache-Control"content="no-cache"/>
</head>
上面的也可以這樣寫:<metahttp-equiv="Cache-Control"content="max-age=0"/>
如果你要設(shè)置緩存時間是300秒的話,可以這么做:
<head>
<title>XHTMLMPTutorial</title>
<metahttp-equiv="Cache-Control"content="max-age=300"/>
</head>
還要注意的一點是,上面的設(shè)置和所用的設(shè)備是有關(guān)系的。有些wap瀏覽器是沒有緩存的,所以你設(shè)置了也未必能起到作用。
面對這種情況,更好的方法是通過服務(wù)器端編程技術(shù)設(shè)置HTTPheader和HTTPresponse。
九:XHTMLMP的定時刷新
<head>
<title>XHTMLMPTutorial</title>
<metahttp-equiv="Cache-Control"content="no-cache"/>
<metahttp-equiv="refresh"content="15"/>
</head>
上面的代碼讓頁面每隔15秒刷新一次!
注意:必須包含這句:<metahttp-equiv="Cache-Control"content="no-cache"/>,
如果沒有的話,那可能刷新后只是看到緩存中的副本,并沒有重新從服務(wù)器下載頁面。
還有一個用法就是用來URL自動跳轉(zhuǎn),例子如下:
需要注意的是,不是所有瀏覽器都支持refresh,如:諾基亞瀏覽器4.0和EricssonT610和T68i
不過,阿佛使用的WindowsMobile手機是支持的,所以推薦使用。
隨著智能手機的降價,上面的那些不支持的也很快要淘汰了吧。
十:注釋
和html的一樣啦:
<!--ThisisacommentinXHTMLMP-->
十一:換行
<BR/>,例子:
<body>
<p>
Line1<br/>
Line2<br/><br/>
Line3
</p>
</body>
十二:<hr/>標(biāo)記
這個標(biāo)記會給你的頁面添加一條水平線。注意:
這個標(biāo)記不能在<p></p>標(biāo)記之間使用?。。?/div>
例子:
<body>
<p>
TableofContents:<br/>
</p>
<hr/>
<p>
Part1XHTMLMPIntroduction<br/>
Part2DevelopmentofWirelessMarkupLanguages<br/>
Part3AdvantagesofXHTMLMP<br/>
Part4WMLFeaturesLostinXHTMLMP
</p>
</body>
十三:標(biāo)題標(biāo)記
<h1>,<h2>,<h3>,<h4>,<h5>,和<h6>
瀏覽器將以不同的大小顯示置于此標(biāo)記中的文字,具體效果你可以測試下面的代碼:
<body>
<h1>Level1Heading</h1>
<h2>Level2Heading</h2>
<h3>Level3Heading</h3>
<h4>Level4Heading</h4>
<h5>Level5Heading</h5>
<h6>Level6Heading</h6>
</body>
十四:文字樣式
首先聲明的是有些瀏覽器并不支持XHTMLMP支持的標(biāo)記。
例子:
<body>
<p>
<b>Bold</b><br/>
<i>Italic</i><br/>
<b><i>Bolditalic</i></b><br/>
<small>Small</small><br/>
<big>Big</big><br/>
<em>Emphasis</em><br/>
<strong>Strong</strong>
</p>
</body>
你還可以通過WAPCSS進行更精確的控制,比如把文字大小設(shè)置為12pt。
更多關(guān)于WAPCSS的信息請訪問:(下面將不再重復(fù)聲明)
十五:預(yù)格式文本
在XHTMLMP中,段落中的多個空格在手持設(shè)備中顯示時只顯示為一個空格。請看下面的例子:
<body>
<p>Hello,welcome
to
our
XHTMLMPtutorial.</p>
</body>
為了能夠保持你希望的格式,可以使用<pre>標(biāo)簽:
<body>
<pre>Hello,welcome
to
our
XHTMLMPtutorial.</pre>
</body>
這樣最后顯示的格式就和上面代碼中排列的一樣了。
十六:列表標(biāo)簽
使用<ul>標(biāo)簽來建立無序列表,每個列表項前將顯示一個小圓點。
<li>標(biāo)簽用來包圍每個列表項。
請看下面的例子:
<body>
<p>TableofContents:</p>
<ul>
<li>Part1XHTMLMPIntroduction</li>
<li>Part2DevelopmentofWirelessMarkupLanguages</li>
<li>Part3AdvantagesofXHTMLMP</li>
<li>Part4WMLFeaturesLostinXHTMLMP</li>
</ul>
</body>
使用<ol>標(biāo)簽來建立有序列表,請看下面的例子:
<body>
<p>TableofContents:</p>
<ol>
<li>XHTMLMPIntroduction</li>
<li>DevelopmentofWirelessMarkupLanguages</li>
<li>AdvantagesofXHTMLMP</li>
<li>WMLFeaturesLostinXHTMLMP</li>
</ol>
</body>
其中,在<ol>標(biāo)簽中可以設(shè)置start屬性的值來決定列表序號的起始值,例如:
<olstart="4">
通過WAPCSS你可以對列表的外觀進行更精確的控制。例如,可以修改顯示序號的方式,
比如使用i,ii,iii來替代1,2,3。
十七:顯示圖片
和HTML中一樣,使用<img>標(biāo)簽來顯示圖片。height和width屬性用來指定圖片的高和寬(像素)。
WAP2.0支持常用的GIF、JPG、PNG圖像格式,當(dāng)然這還跟用戶所有設(shè)備有關(guān),一些設(shè)備只能顯示
其中的一部分格式。要想知道客戶端支持的圖片格式,很容易,和先前講過的一樣,可以通過檢查
HTTPHeader,請看下面的代碼:
<p>
<imgsrc="monkey.gif"alt="coolMonkey"height="50"width="50"/><br/>
Hello,welcometoourXHTMLMPtutorial.
</p>
其中alt屬性在圖片無法顯示的時候會顯示其設(shè)置的文本值。
十八:大圖片問題
很多WAP瀏覽器沒有水平滾動條(我的WMIE也是,但是它會自動縮放圖片到合適尺寸)。因此如果圖片超過設(shè)備的屏幕尺寸,
很多瀏覽器就只能顯示局部圖片,這樣從用戶看來很糟糕!還有注意的就是height和width屬性設(shè)置只是影響外觀,加載圖片的時間
和圖片大小有關(guān),與你設(shè)置的height和width的值無關(guān)。使用大圖片將讓你的訪問用戶掏更多錢(并花費更多的時間)去支援移動,因為大圖片帶來大流量,
移動的瘋狂收費已經(jīng)嚇住了不少潛在的客戶(你不希望你的網(wǎng)站嚇走用戶吧)。阿佛的哥哥就是個例子,移動的1元包月5M套餐,
而他超過了流量(不少普通用戶根本沒有流量的概念),移動收了幾十元,從此就再也不敢用手機GPRS上網(wǎng)了。
因此從優(yōu)化XHTMLMP頁面圖像的角度來看,控制圖片的大小有下面幾招:
1:使用PS等圖片處理軟件減小圖片的尺寸,而不是傳送大圖片給無線設(shè)備,然后通過height和width來設(shè)定顯示尺寸。
2:如果使用的GIF格式的圖片,那么請使用小型顏色調(diào)色板,使用小型調(diào)色板會降低圖片的質(zhì)量,不過你可以在二者
之間做一個較好的平衡。
3:如果圖片是JPG格式,你應(yīng)該用合適壓縮比率來壓縮。這個平衡(圖片尺寸和顯示質(zhì)量)也要你來控制。
4:期待移動降低上網(wǎng)資費并提高龜速網(wǎng)絡(luò)(這僅僅是期待)。
更好的提高你的手機網(wǎng)站性能方式是先處理頁面的文檔請求,再接著處理圖片的顯示。但是如果構(gòu)建這樣的網(wǎng)站已經(jīng)超過了本文要
描述的范圍,如果你感興趣的話請自行搜索關(guān)鍵字:Multipartmessages
這些知識當(dāng)然只是一部分,只能帶領(lǐng)大家進入到學(xué)習(xí)當(dāng)中,我們要做好它們的基礎(chǔ),然后才能進一步更加深入的去了解和學(xué)習(xí),做好合適的作品。
本文由邯鄲網(wǎng)絡(luò)公司首創(chuàng)網(wǎng)絡(luò)整理編輯發(fā)布,請勿轉(zhuǎn)載、復(fù)制、摘抄等!