夢(mèng)之都HTML與XHTML的區(qū)別一節(jié)主要是翻譯了w3c的 Differences with HTML 4 文章.
引用網(wǎng)址:http://www.dreamdu.com/xhtml/html_xhtml/
編排良好性(Well-formedness)是XML引入的一個(gè)新概念.從本質(zhì)上說(shuō),元素必須有結(jié)束標(biāo)簽,或者必須以特殊方式書寫,而且元素必須嵌套.
盡管SGML規(guī)定重疊(overlapping)是非法的,但現(xiàn)有的瀏覽器普遍允許重疊.
正確:嵌套元素(nested elements)
<p>
夢(mèng)之都<em>
XHTML教程</em>
.</p>
不正確:層疊元素(overlapping elements)
<p>夢(mèng)之都 <em>XHTML教程</p>.</em>
對(duì)于所有HTML元素和屬性名, XHTML文檔必須使用小寫. 因?yàn)閄ML是大小寫敏感的.如 <li>
和 <LI>
是不同的標(biāo)簽.
在基于SGML的HTML4中的一些隱含結(jié)束意義的元素允許忽略結(jié)束標(biāo)簽.XML不允許忽略結(jié)束標(biāo)簽.除了在DTD中被聲明為空的元素,所有元素必須有結(jié)束標(biāo)簽.
正確:結(jié)束的元素(terminated elements)
<p>
夢(mèng)之都的XHTML教程.</p>
<p>
夢(mèng)之都的CSS教程.</p>
不正確:未結(jié)束的元素(unterminated elements)
<p>夢(mèng)之都的XHTML教程.<p>夢(mèng)之都的CSS教程.
所有的屬性值必須在引號(hào)中,即使是以數(shù)字形式的屬性值
正確:在引號(hào)中的屬性值(quoted attribute values)
<table
rows
=
"3"
>
不正確:不在引號(hào)中的屬性值(unquoted attribute values)
<table rows=3>
XML不支持屬性最小化.屬性-屬性值必須完整成對(duì)的寫出.像disabled,checked這樣的屬性名不能在不指定屬性值的情況下出現(xiàn).
正確:非最小化屬性(unminimized attributes)
<input
checked
=
"checked"
>
不正確:最小化屬性(minimized attributes)
<input checked>
空元素必須有結(jié)束標(biāo)簽,或者起始標(biāo)簽必須以/>結(jié)束.例如,<br/>或<hr></hr>.參看HTML兼容性指導(dǎo)HTML Compatibility Guidelines中的信息,以保證向后兼容HTML 4用戶代理程序.
正確:結(jié)束的空元素(terminated empty elements)
<br/>
<hr/>
錯(cuò)誤:未結(jié)束的空標(biāo)簽(unterminated empty elements)
<br><hr>
用戶代理處理屬性值時(shí)將根據(jù)XML的下面方法操作Section 3.3.3:
XHTML中,script
和style
元素被聲明為#PCDATA內(nèi)容形式,因此,<和&被看作是標(biāo)識(shí)的開始,<和&等HTML實(shí)體將被XML處理器看作為實(shí)體引用而分別被認(rèn)為是<和&.將script
和style
元素的內(nèi)容隱蔽在CDATA標(biāo)記中避免了這些實(shí)體的擴(kuò)張.
<script>
<![CDATA[... unescaped script content ...]]></script>
CDATA部分被XML處理器識(shí)別,表現(xiàn)為文檔對(duì)象模型中的一個(gè)結(jié)點(diǎn).參看Section 1.3的DOM LEVEL 1推薦標(biāo)準(zhǔn)[DOM].
SGML給作者的DTD可以指定在一個(gè)元素內(nèi)部禁止出現(xiàn)的元素.這樣的禁止在XML中是不可能的.
例如,嚴(yán)格的HTML 4 DTD"禁止"任何深度的'a'元素對(duì)另一'a'元素的嵌套.在XML中無(wú)法寫出這些的"禁止".雖然這些禁止不能被定義在DTD中,但是一些元素不應(yīng)該被嵌套.對(duì)不能被嵌套的元素Element Prohibitions的總結(jié).
HTML4定義了name
屬性的元素有a,applet,form,frame,iframe,img and map.HTML4還引入了id屬性.這兩個(gè)屬性都是被設(shè)計(jì)用為片段標(biāo)識(shí)符.
在XML中,片段標(biāo)識(shí)符是ID,每個(gè)元素只能有一個(gè)ID類型的屬性.因此,在XHTML1.0中,id屬性被定義為ID類型.為保證XHTML1.0文檔是結(jié)構(gòu)良好(well-structured)的XML文檔,在定義一個(gè)片段標(biāo)識(shí)符時(shí),XHTML文檔必須使用id屬性,即使是對(duì)那些以前用name屬性的元素.參看 HTML Compatibility Guidelines,確保XHTML文檔以text/html媒體類型使用時(shí),這些"錨(anchors)"能向后兼容.
注意,在XHTML 1.0中,name
屬性是不贊成使用的,在以后的XHTML版本中將被刪除.
</p>
形式結(jié)束,要么以<br />
形式結(jié)束 name
用id
:) 聯(lián)系客服