X/HTML5 和 XHTML2
2024-09-05 07:19:39
供稿:網(wǎng)友
在了解了XHTML 2的進(jìn)展之后,我們?cè)賮砜纯碭/HTML 5 的進(jìn)展。
X/HTML 5酷在什么地方
章節(jié)元素的構(gòu)想
X/HTML 5引入新的元素用于把Web頁面分成若干章節(jié)。這些組成部分有助于搜索引擎和輔助工具更好地理解頁面內(nèi)容。使用這些新元素可以使標(biāo)簽更具可讀性。
章節(jié)化內(nèi)容的構(gòu)想很酷!但是請(qǐng)看一下為什么使用章節(jié)的技術(shù)不夠酷。
對(duì)話元素
對(duì)話元素用來表示一段交談。它包括一個(gè)用于定義會(huì)話者的dt元素和代表會(huì)話者講話內(nèi)容的dd元素。例如:
<dialog>
<dt>Costello</dt>
<dd>Look, you gotta first baseman?</dd>
<dt>Abbott</dt>
<dd>Certainly.</dd>
<dt>Costello</dt>
<dd>Who's playing first?</dd>
<dt>Abbott</dt>
<dd>That's right.</dd>
<dt>Costello</dt>
<dd>When you pay off the first baseman every month, who gets the money?</dd>
<dt>Abbott</dt>
<dd>Every dollar of it.</dd>
</dialog>
figrue元素
在印刷發(fā)行(教科書、報(bào)紙、雜志等)媒體對(duì)象(照片、插圖、圖表等)中經(jīng)常會(huì)使用到標(biāo)頭。到目前為止,Web標(biāo)記語言還沒有可以產(chǎn)生這種效果的結(jié)構(gòu)。figrue元素有一個(gè)legend子元素可以用來指定圖像的標(biāo)頭。例如:
XML/HTML代碼
<figure>
<legend>Credit: Media Inc., 2007</legend>
<img src="smith.jpg" alt="Photo: J. Smith" />
</figure>
m元素
m元素代表一段文本被標(biāo)記或者是高亮。這在動(dòng)態(tài)網(wǎng)頁中顯示搜索關(guān)鍵字時(shí)候非常有用,此時(shí)頁面中的關(guān)鍵字就可以使用m元素來標(biāo)出來了。例如,響應(yīng)用戶搜索的關(guān)鍵字snow時(shí),Web頁面可以生成下面這樣一段內(nèi)容:
XML/HTML代碼
<p>A <m>snow</m>man is a man-like sculpture constructed out of <m>snow</m>.</p>
input元素得到加強(qiáng)
input元素功能加強(qiáng)之后可以支持email、url、數(shù)據(jù)相關(guān)、時(shí)間相關(guān)、和數(shù)字等數(shù)據(jù)類型。這就意味著更加的驗(yàn)證功能可以在客戶端完成了。
開放的進(jìn)程
X/HTML的開發(fā)進(jìn)程比XHTML 2開放得多。每個(gè)人都可以參與到X/HTML 5創(chuàng)意明細(xì)中。
X/HTML 5的美中不足
章節(jié)元素的使用
采用章節(jié)元素的的想法是好的,但是X/HTML 5的應(yīng)用中顯得有點(diǎn)累贅。甚至有些解釋會(huì)讓你更加困惑。例如:
aside元素表示組成頁面內(nèi)容的一個(gè)部分,它和aside元素前后的內(nèi)容相關(guān)聯(lián),它可以被看作是內(nèi)容中獨(dú)立的部分。這些組成部分經(jīng)常用于印刷技術(shù)中的側(cè)連欄。
難道擁有role屬性的div元素不加具有擴(kuò)展性和更容易被理解?
另外一個(gè)被提及的章節(jié)元素是nav,用于表示頁面中鏈接其它頁面的鏈接。我們真的需要nav元素嗎?XHTML 2中的nl元素可以更好地完成這個(gè)任務(wù)。
HTML 4和XHTML 1中的不足在未來的規(guī)范中還將存在
因?yàn)閄/HTML試圖提供向后支持,HTML 4和XHTML 1中的不足將還會(huì)在X/HTML 5中存在。規(guī)范不必向后當(dāng)空,相反應(yīng)該客戶端軟件通過支持多種規(guī)范來提供向后兼容能力。
X/HTML 5沒有遵循X/HTML 5手冊(cè)
X/HTML 5旨在向后兼容HTML 4和XHTML 1?,F(xiàn)在big、acronym、u和tt都還不是這個(gè)規(guī)范中的內(nèi)容,而像i和samll等其它元素有了重新定義之后的語意。例如,在HTML 4.01規(guī)范中是這樣定義i和small的:
i:使文本呈現(xiàn)斜體
small:以“小”字體呈現(xiàn)文本
在X/HTML 5中,i和small有了新的含意:
i元素用不同的方式來表現(xiàn)一段文本或者是與正文存在差異的段落,如分類設(shè)計(jì)、技術(shù)術(shù)語、外來語言的習(xí)慣用語、某個(gè)想法、意見、船名或者其它需要在印刷技術(shù)中呈現(xiàn)斜體的文本。。
small元素呈現(xiàn)的是小的打印字體(文檔中具有說明法律約束作用的部分,如版權(quán)或者存在的弊端)和批注等。
通過重新定義i和small的含義,這破壞了對(duì)HTML 4和XHTML 1的向后兼容性。這是因?yàn)橄蚝蠹嫒輵?yīng)該意味著HTML 5的用戶代理(user agent,瀏覽器)在呈現(xiàn)HTML 4的文檔時(shí)應(yīng)該和HTML 4的user agent保持一致。因此,如果HTML 5強(qiáng)調(diào)向后兼容,HTML 4中意義不大的結(jié)構(gòu)在HTML 5中也同樣沒有多少意義。
不會(huì)吧?仍然支持font元素?
是的,如果開發(fā)者使用WYSIWYG編輯器的話, X/HTML 5依然支持font元素。這樣做有什么合理性嗎?難道WYSIWYG編輯器就能避免使用font嗎?
WYSIWYG簽名
使用WYSIWYG編輯器生成的文檔必須在head元素中包含下面的WYSIWYG簽名:
XML/HTML代碼
<meta name="generator" content="(WYSIWYG editor)" />
或者:
XML/HTML代碼
<meta name="generator" content="Sample Editor 1.0 (WYSIWYG editor)" />
這樣做的理由是什么呢?某種恥辱的標(biāo)記?它是不是要告訴瀏覽器做好最壞的準(zhǔn)備,因?yàn)檫@個(gè)文檔是用WYSIWYG編輯器生成的?那么,如果文檔中只有一部分是使用WYSIWYG工具完成的又該怎么做呢?
支持預(yù)定義類名
預(yù)定義類名是X/HTML 5用戶代理中保留的具有語意的CSS類名。下面的例子中copyright就是一個(gè)預(yù)定義的類名:
XML/HTML代碼
<p class="copyright>...</p>
其它的預(yù)定義類名還有“error”、“example”、“issue”、“note”、“search”和“warning”。更麻煩的是,有些預(yù)定義類名只有在某些特定元素中使用而不能別其它元素中使用。例如,類名“copyright”只有在p和span元素中使用。類名“error”只有在p、section、span和strong中使用。
預(yù)定義類名的一個(gè)問題就是下面這樣的寫法沒有什么意義:
XML/HTML代碼
<p class="important">
而這樣的寫法才會(huì)有意義:
XML/HTML代碼
<p class="copyright">
重寫class屬性變得很難去說明結(jié)構(gòu)的具體含意。例如,下面的代碼意味著什么呢:
XML/HTML代碼
<p class="important copyright issue">
預(yù)定義類名還會(huì)限制開發(fā)者對(duì)類名使用的自由。同樣,如果開發(fā)者現(xiàn)在使用了一個(gè)非預(yù)定義類名,但是之后某天這個(gè)類名變成預(yù)定義類,那又會(huì)首產(chǎn)生什么狀況呢?這難道就改變了開發(fā)者之前內(nèi)容的語意嗎?
HTML 5 v.s. XHTML 5
在試圖最終解決HTML和XHTML的爭(zhēng)論中,X/HTML 5規(guī)范使事情變得更難于理解。的確,X/HTML 5規(guī)范中確實(shí)說“一般說來,開發(fā)者在Web中還能直接使用XML”,即使W3C一直都在為XML未來在Web中的應(yīng)用不斷努力。
開發(fā)過程過于匆忙
X/HTML 5是為了應(yīng)對(duì)W3C在HTML 4和XHTML 1更新?lián)Q代中的拖沓。因此,這導(dǎo)致X/HTML 5的開發(fā)過程有點(diǎn)匆忙,感覺這個(gè)規(guī)范不知道突然從什么地方冒出來然后又快速地跟進(jìn)。即使是直接參與到其中的開發(fā)者也感到規(guī)范的開發(fā)進(jìn)程有點(diǎn)不切實(shí)際。
下一代標(biāo)記語言的競(jìng)爭(zhēng)
X/HTML 5和XHTML 2都在為能夠替代HTML 4和XHTML 1展開競(jìng)爭(zhēng)。即時(shí)是在開發(fā)的前期,一些瀏覽器的供應(yīng)商就已經(jīng)聲稱他們對(duì)這兩種規(guī)范的偏好。由于審議的緊迫性和封閉性,這使得Web標(biāo)準(zhǔn)組織出現(xiàn)了兩極分化。隨著兩種規(guī)范的進(jìn)展,更多的開發(fā)資源和市場(chǎng)資金將會(huì)投入到其中的某一個(gè)中,所有的這些因素都會(huì)引起一場(chǎng)“標(biāo)準(zhǔn)的”戰(zhàn)爭(zhēng)。
我們每一個(gè)人都是這個(gè)標(biāo)準(zhǔn)的制定者,因?yàn)閃eb屬于每一個(gè)人,只有一場(chǎng)誠(chéng)實(shí)、公開的爭(zhēng)論才能保證最好的標(biāo)準(zhǔn)成為贏家。
注:為閱讀方便文章中把“HTML 4.x/XHTML 1.x”簡(jiǎn)寫為“HTML 4 and XHTML 1”
原文連接:http://www.dudo.org/article.asp?id=249