本篇內(nèi)容主要講解“XHTML基礎(chǔ)入門(mén)知識(shí)點(diǎn)有哪些”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“XHTML基礎(chǔ)入門(mén)知識(shí)點(diǎn)有哪些”吧!
成都創(chuàng)新互聯(lián)公司是一家業(yè)務(wù)范圍包括IDC托管業(yè)務(wù),雅安服務(wù)器托管、主機(jī)租用、主機(jī)托管,四川、重慶、廣東電信服務(wù)器租用,溫江服務(wù)器托管,成都網(wǎng)通服務(wù)器托管,成都服務(wù)器租用,業(yè)務(wù)范圍遍及中國(guó)大陸、港澳臺(tái)以及歐美等多個(gè)國(guó)家及地區(qū)的互聯(lián)網(wǎng)數(shù)據(jù)服務(wù)公司。
摘要
XHTML 1.0是作為XML1.0應(yīng)用而重新制定的HTML4。本規(guī)范書(shū)定義XHTML 1.0以及其中與HTML 4對(duì)應(yīng)的3種文檔類(lèi)型定義(DTD,Document Type Definition)。 每個(gè)元素的語(yǔ)義和它們的屬性已經(jīng)在W3C Recommendation for HTML 4中定義,它們是XHTML將來(lái)擴(kuò)展的基礎(chǔ)。只要遵循一小套指導(dǎo)方針,XHTML文檔就能和現(xiàn)存的HTML用戶(hù)代理程序兼容。
本文檔的狀況
本節(jié)描述本文檔發(fā)布時(shí)的狀況。其它的文檔也許會(huì)取代本文檔。W3C負(fù)責(zé)維護(hù)本文檔系列的最新?tīng)顩r。本文檔由W3C的成員和一些對(duì)此感興趣的團(tuán)體審閱,并經(jīng)主管認(rèn)可而成為W3C推薦標(biāo)準(zhǔn)。 這是一個(gè)穩(wěn)定的文檔,可以作為參考材料或在其它文檔中作為標(biāo)準(zhǔn)引用。W3C制定本推薦標(biāo)準(zhǔn)的目的就是使大家注意到本規(guī)范說(shuō)明書(shū),使之廣泛傳播,增強(qiáng)Web的功能和互用性。
1. 什么是 XHTML?
XHTML是一系列當(dāng)前和將來(lái)的文檔類(lèi)型和程序塊,它由HTML 4 [HTML]再生和擴(kuò)展而來(lái),HTML 4是其子集。XHTML系列文檔基于XML,最終被設(shè)計(jì)用來(lái)與基于XML的用戶(hù)代理程序一起工作。XHTML家族的詳情及其發(fā)展過(guò)程在未來(lái)趨勢(shì)一節(jié)中詳述。
XHTML 1.0(本規(guī)范書(shū))是XHTML家族的第一個(gè)文檔。它是將3種HTML 4文檔類(lèi)型應(yīng)用到XML 1.0 [XML]之后重新形成的。其意圖是,作為一種語(yǔ)言,它的內(nèi)容既符合XML,并且如果依照一些簡(jiǎn)單的指導(dǎo)方針,也能被HTML4用戶(hù)代理程序識(shí)別。開(kāi)發(fā)者將它們的文檔移植成為XHTML 1.0,會(huì)得到以下好處:
XHTML文檔遵從XML。這樣,用標(biāo)準(zhǔn)的XML工具很容易查看,編輯和檢驗(yàn)它們。
XHTML文檔可以在現(xiàn)有的HTML4代理用戶(hù)程序中使用,也可以在新的XHTML用戶(hù)代理程序中使用,在后者中可以達(dá)到與前者同樣或更好的效果。
XHTML 文檔中使用的應(yīng)用程序(如script 和 applet) 可以是HTML 的文檔對(duì)象模型(Document Object Model) ,也可以是 XML 的文檔對(duì)象模型 [DOM]。
隨著 XHTML 家族的發(fā)展,遵從XHTML 1.0的文檔更有可能運(yùn)用在各種XHTML環(huán)境中。
XHTML家族是Internet發(fā)展的下一步。 將現(xiàn)在將文檔移植成XML,開(kāi)發(fā)者在確保他們的文檔向前后兼容的同時(shí),還能享有進(jìn)入XML世界帶來(lái)的好處。
1.1 什么是HTML 4?
HTML 4 [HTML] 是SGML (Standard Generalized Markup Language) 的一個(gè)應(yīng)用,遵從國(guó)際標(biāo)準(zhǔn)ISO 8879,被廣泛的當(dāng)作 World Wide Web上的標(biāo)準(zhǔn)出版語(yǔ)言。
SGML是一種描述標(biāo)記語(yǔ)言,特別是那些用于電子文檔交換,文檔管理和文檔發(fā)布語(yǔ)言的語(yǔ)言。HTML是SGML定義的語(yǔ)言的一個(gè)實(shí)例。
SGML出現(xiàn)在80年代中期,一直保持得很穩(wěn)定。穩(wěn)定是原因是它有豐富的特征和具有靈活性。但是,靈活性的帶來(lái)一定程度的復(fù)雜性,限制了它在多種環(huán)境下的適應(yīng)性,包括World Wide Web。
HTML最初的構(gòu)想是作為一種交換科學(xué)和其它技術(shù)文檔的一種語(yǔ)言,供那些不熟悉書(shū)寫(xiě)文檔的專(zhuān)家使用。HTML規(guī)定一小套結(jié)構(gòu)語(yǔ)義標(biāo)簽,適于書(shū)寫(xiě)相對(duì)簡(jiǎn)單的文檔,從而解決了SGML復(fù)雜性的問(wèn)題。除了簡(jiǎn)化了文檔結(jié)構(gòu)外,HTML還加入了對(duì)超文本的支持,以后還增加了媒體功能。
在非常短的時(shí)間內(nèi),HTML變得廣泛流行,并且很快超出了其原來(lái)的目的。HTML(標(biāo)準(zhǔn))內(nèi)部的新元素以很快的速度創(chuàng)造出來(lái),HTML也被很快的改編以用于垂直的,高度專(zhuān)門(mén)化的市場(chǎng)。多余的新元素導(dǎo)致文檔在跨平臺(tái)時(shí)的兼容問(wèn)題。
隨著軟件和平臺(tái)不一致性增加,很顯然,“經(jīng)典的”HTML 4在這些平臺(tái)上使用的適用性就會(huì)受到一些限制。
1.2 什么是 XML?
XML[XML]是Extensible Markup Language的縮寫(xiě),創(chuàng)造XML的目的是重新獲得SGML的能力和靈活性,而去除其大部分復(fù)雜的東西。盡管是一個(gè)受限制SGML的形式,但是XML仍保留了SGML的大部分功能和豐富性,還保留了SGML的所有常用特性。
在保留這些有用的特性的同時(shí),XML去掉了SMGL中很多更復(fù)雜的特性,這些特性使得書(shū)寫(xiě)和設(shè)計(jì)合適的軟件既困難又昂貴。
1.3 為什么需要XHTML?
上面已經(jīng)提到了移植到XHTML的好處,一般來(lái)說(shuō),移植到XHTML的好處有:
文檔開(kāi)發(fā)者和用戶(hù)代理程序設(shè)計(jì)商常常用新方法,新標(biāo)簽來(lái)表達(dá)它們的想法。用XML導(dǎo)入新元素和新的元素屬性相對(duì)來(lái)說(shuō)更容易。XHTML家族被設(shè)計(jì)用來(lái)提供這些擴(kuò)展,通過(guò)XHTML模塊和開(kāi)發(fā)新的遵從XHTML的模塊的技術(shù)。(將在即將出臺(tái)的XHTML模塊化規(guī)范說(shuō)明書(shū)中描述)。在開(kāi)發(fā)文檔和設(shè)計(jì)新用戶(hù)代理程序時(shí),這些模塊將允許混合使用現(xiàn)有的和新的特性集。
各種替代的訪(fǎng)問(wèn)Internet的方法不斷的被提出。一些人估計(jì),到2002年,internet上75%的文檔會(huì)在這些替代的平臺(tái)上被查看。XHTML 在設(shè)計(jì)時(shí)就考慮到用戶(hù)代理程序的協(xié)同工作性。通過(guò)一個(gè)新的用戶(hù)代理程序和文檔協(xié)議機(jī)制,服務(wù)器、代理程序和用戶(hù)代理程序?qū)⒛軌蜃罴训貪M(mǎn)足傳輸,最后,有可能開(kāi)發(fā)出遵循XHTML的文檔,能被任何遵循XHTML的用戶(hù)代理程序使用。
2. 定義
2.1 術(shù)語(yǔ)
本規(guī)范書(shū)要用到下面的詞條。這些詞條基于ISO/IEC 9945-1:1990 [POSIX.1]中類(lèi)似的定義,并擴(kuò)展定義在[RFC2119]中:
執(zhí)行定義(Implementation-defined)
一個(gè)值或行為被執(zhí)行定義時(shí),它由執(zhí)行來(lái)定義相應(yīng)的需要以正確解釋文檔。
可以(May)
在執(zhí)行時(shí),詞“可以”被解釋為一個(gè)可選的特性,在本規(guī)范書(shū)中不是必須的,但是可以提供。對(duì)于文檔一致性來(lái)說(shuō),詞”可以”的意思是不能使用可選的特性。 ”可選的”(optional)和”可以”的定義是相同的。
必須(Must)
在本規(guī)范書(shū)中,“必須”被解釋為,在執(zhí)行時(shí)或?qū)τ趪?yán)格遵循XHTML的文檔的強(qiáng)制需要。詞條”應(yīng)當(dāng)”(shall)和”必須”的定義相同。。
保留(Reserved)
一個(gè)值或行為未被指定,但是不允許用于符合規(guī)范的文檔,也不被符合規(guī)范的用戶(hù)代理程序支持。
應(yīng)該(Should)
在執(zhí)行時(shí),”應(yīng)該”被解釋為一個(gè)執(zhí)行時(shí)的建議,但不是一個(gè)必須。對(duì)于文檔來(lái)說(shuō),“應(yīng)該”被解釋為:編程練習(xí)時(shí)是推薦使用的,對(duì)于嚴(yán)格遵循XHTML的文檔,則是必須的。
被支持(Supported)
本規(guī)范書(shū)中某些功能是可選的,如果一個(gè)功能被支持,它的行為被本規(guī)范書(shū)規(guī)定。
未指定(Unspecified)
一個(gè)值或行為未被指定時(shí),規(guī)范書(shū)不定義一個(gè)功能的可移植性要求,即使文檔中使用了這個(gè)功能。在這種情況下,一個(gè)需要指定的行為的文檔,而不是在使用這個(gè)功能時(shí)允許任何行為,不是一個(gè)嚴(yán)格遵循XHTML的文檔。
2.2 常見(jiàn)詞條
屬性(Attribute)
屬性是在DTD中聲明過(guò)的某個(gè)元素的一個(gè)參數(shù)。屬性的類(lèi)型和取值范圍,包括它可能的缺省值,在DTD中定義。
DTD
一個(gè) DTD,又稱(chēng)文檔類(lèi)型定義,是一個(gè)XML聲明集合,在其中定義遵從DTD的文檔中使用的合法的結(jié)構(gòu),元素和屬性。
文檔(Document)
文檔是一個(gè)數(shù)據(jù)流,還包括它引用的其它數(shù)據(jù)流。文檔的結(jié)構(gòu)是用相關(guān)的DTD定義的元素組織起來(lái)來(lái)保存信息。更多信息,請(qǐng)參看 Document Conformance 。
元素(Element)
元素是在DTD中聲明的文檔的結(jié)構(gòu)單位。元素的內(nèi)容模型在DTD中定義,額外的語(yǔ)義可以在另外的元素描述中定義。
功能(Facilities)
功能包括元素,屬性和與元素屬性相關(guān)的語(yǔ)義。支持這些功能的執(zhí)行說(shuō)成提供了所需的功能。
執(zhí)行(Implementation)
執(zhí)行是指系統(tǒng)提供了功能和服務(wù)集以支持本規(guī)范書(shū)。更多信息,請(qǐng)參看User Agent Conformance。
分析(Parsing)
分析是掃描文檔的動(dòng)作,文檔包含的信息被過(guò)濾成元素的上下文結(jié)構(gòu)包含的信息。
顯示(Rendering)
顯示是文檔信息被呈現(xiàn)的動(dòng)作。顯示以最適合環(huán)境的形式完成(如聲覺(jué),視覺(jué),打印)。
用戶(hù)代理程序(User Agent)
用戶(hù)代理程序是執(zhí)行程序,獲取并處理XHTML文檔。更多信息,請(qǐng)查看User Agent Conformance。
驗(yàn)證(Validation)
驗(yàn)證是用相關(guān)的DTD檢驗(yàn)文檔的過(guò)程,以確信結(jié)構(gòu),元素的使用,屬性的使用和DTD中的定義一致。
格式良好(Well-formed)
一個(gè)格式良好的文檔的結(jié)構(gòu)依照XML1.0推薦標(biāo)準(zhǔn)[XML]中2.1節(jié)Section 2.1的規(guī)定?;旧希@個(gè)定義規(guī)定了元素必須有起始和結(jié)束標(biāo)簽,要正確的互相嵌套。
3. XHTML 1.0的標(biāo)準(zhǔn)定義
3.1 文檔一致性
本版本 XHTML 提供了嚴(yán)格的遵循XHTML文檔的定義,受限于XHTML名址提供的標(biāo)簽和屬性。使用XHTML其它名址空間的信息,如RDF表達(dá)的元數(shù)據(jù),請(qǐng)參看Section 3.1.2 。
3.1.1 嚴(yán)格遵循的文檔。
一個(gè)嚴(yán)格遵循XHTML的文檔只需要本規(guī)范書(shū)描述的強(qiáng)制性功能,必須依照下列標(biāo)準(zhǔn):
它必須經(jīng)過(guò)附錄A Appendix A中的3中DTD之一的驗(yàn)證。
文檔的根元素必須是<html>。
文檔的根元素必須用xmlns屬性[XMLNAMES]指定XHTML名址。XHTML的名址在中定義。
在根元素之前,必須有一個(gè)DOCTYPE 聲明。DOCTYPE聲明中包含的公共標(biāo)識(shí)符必須引用附錄A Appendix A中的3中DTD的一種,每種DTD有各自的正式公共標(biāo)識(shí)符。系統(tǒng)標(biāo)識(shí)符可以改變以適應(yīng)本地系統(tǒng)。
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"DTD/xhtml1-strict.dtd">
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"DTD/xhtml1-transitional.dtd">
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"DTD/xhtml1-frameset.dtd">
下面是一個(gè)最小的XHTML文檔示例:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"DTD/xhtml1-strict.dtd">
<html xmlns="" xml:lang="en" lang="en">
<head>
<title>Virtual Library</title>
</head>
<body>
<p>Moved to <a href="">vlib.org</a>.</p>
</body>
</html>
注意在這個(gè)例子中含有XML聲明。 XML聲明并不是在所有的XML文檔中都是必須的。XHTML被強(qiáng)烈建議使用XML聲明。當(dāng)字符編碼不是缺省的UTF-8或UTF-6時(shí),這樣的聲明是必須的。
3.1.2 在XHTML中使用其它名址空間
在XHTML名址空間中可以用[XMLNAMES]使用其它XML名址空間,盡管這樣文檔會(huì)不是嚴(yán)格遵循XHTML的文檔。W3C將在以后致力為多名址空間指定一致性的問(wèn)題。
下面的例子說(shuō)明XHTML1.0和MathML推薦標(biāo)準(zhǔn)聯(lián)合使用的方法。
<html xmlns="" xml:lang="en" lang="en">
<head>
<title>A Math Example</title>
</head>
<body>
<p>The following is MathML markup:</p>
<math xmlns="">
<apply> <log/>
<logbase>
<cn> 3 </cn>
</logbase>
<ci> x </ci>
</apply>
</math>
</body>
</html>
下面的例子說(shuō)明XHTML1.0和其它XML名址空間聯(lián)合使用的方法:
<?xml version="1.0" encoding="UTF-8"?>
<!-- initially,the default namespace is "books" -->
<book xmlns=‘urn:loc.gov:books‘
xmlns:isbn=‘urn:ISBN:0-395-36341-6‘ xml:lang="en" lang="en">
<title>Cheaper by the Dozen</title>
<isbn:number>1568491379</isbn:number>
<notes>
<!-- make HTML the default namespace for a hypertext commentary -->
<p xmlns=‘>
This is also available <a href="">online</a>.
</p>
</notes>
</book>
3.2 用戶(hù)代理程序一致性
一個(gè)遵從的用戶(hù)代理程序必須遵照下面所有標(biāo)準(zhǔn):
為和XML1.0推薦標(biāo)準(zhǔn)一致 [XML],用戶(hù)代理程序必須分析和評(píng)估XHTML文檔的編排良好性。如果用戶(hù)代理程序宣稱(chēng)自己是一個(gè)帶驗(yàn)證能力的用戶(hù)代理,它還必須依照[XML]安文檔引用的DTD來(lái)驗(yàn)證文檔。
當(dāng)用戶(hù)代理程序宣稱(chēng)支持本規(guī)范書(shū)定義的功能facilities時(shí),它必須按功能的定義來(lái)支持。
當(dāng)用戶(hù)代理程序按一般的XML來(lái)處理XHTML文檔時(shí),它應(yīng)當(dāng)只將ID類(lèi)型的屬性(如多數(shù)XHTML元素的ID屬性)識(shí)別成片段標(biāo)識(shí)符。
如果用戶(hù)代理程序遇到一個(gè)它不識(shí)別的元素,它必須顯示元素的內(nèi)容。
如果用戶(hù)代理程序遇到一個(gè)它不識(shí)別的屬性,它必須忽略整個(gè)屬性的定義(即屬性及其值)。
如果用戶(hù)代理程序遇到一個(gè)它不識(shí)別的屬性值,它必須使用使用屬性的缺省值。
如果它遇到一個(gè)實(shí)體引用(不是預(yù)定義了的實(shí)體),用戶(hù)代理程序沒(méi)有處理過(guò)其聲明(如果聲明是在用戶(hù)代理程序沒(méi)有讀到的外部子集中就會(huì)發(fā)生),實(shí)體引用應(yīng)該以字符顯示(以&符號(hào)開(kāi)始,以半冒號(hào)結(jié)束),以編排成實(shí)體引用。
在顯示內(nèi)容時(shí),用戶(hù)代理程序如果遇到它不認(rèn)識(shí)的字符或認(rèn)識(shí)但不能顯示字符實(shí)體引用,它應(yīng)該以顯眼的方式告訴用戶(hù)發(fā)生了異常顯示。
下面的字符在 [XML]中被定義為 空白(whitespace)字符:
空格 ( )
Tab ( )
回車(chē) (
)
換行 (
)
XML處理程序?qū)⒉煌到y(tǒng)的行結(jié)束碼規(guī)格化為單個(gè)換行附傳遞給應(yīng)用。因此XHTML還必須將下列字符看成空白字符:
換頁(yè) ()
0寬度空格 (?)
對(duì) ‘xml:space‘ 屬性被設(shè)為”保留”的元素,用戶(hù)代理程序必須保持所有空白字符的原樣 (引導(dǎo)和結(jié)尾處空白字符除外,這些字符應(yīng)該被刪除)。 否則,按下列規(guī)則處理空白字符:
所有塊元素周?chē)目瞻鬃址麘?yīng)該被刪除。
注釋全部去除,不影響空白符的處理。注釋兩旁的一個(gè)空白符被處理為兩個(gè)空白符引導(dǎo)和結(jié)尾處空白字符應(yīng)該被刪除塊元素內(nèi)的換行字符必須轉(zhuǎn)換成空格 (‘xml:space‘ 屬性被設(shè)為”保留”時(shí)例外)。
一串連續(xù)的空白字符必須減少為單個(gè)空格 (‘xml:space‘ 屬性被設(shè)為”保留”時(shí)例外)。
在顯示時(shí),用戶(hù)代理程序應(yīng)該以恰當(dāng)?shù)姆绞斤@示文檔內(nèi)容為文檔內(nèi)容書(shū)寫(xiě)的語(yǔ)言。在主要是拉丁書(shū)寫(xiě)體的語(yǔ)言中,ASCII空格典型的用來(lái)編碼語(yǔ)法上的詞的分界和印刷上的空白; 在和Nagari書(shū)寫(xiě)體相關(guān)的語(yǔ)言中 (如梵語(yǔ),泰語(yǔ)等),語(yǔ)法上的邊界可以用ZW空格字符編碼,但是在顯示輸出時(shí)一般不用印刷上的空格表示; 用阿拉伯語(yǔ)形式書(shū)寫(xiě)體的語(yǔ)言,可以用空格字符編碼印刷上的空白,單不能用ZW空格定界內(nèi)部的文法分界(如,在英語(yǔ)看來(lái)是一個(gè)詞的‘kitAbuhum‘=‘kitAbu-hum‘=‘book them‘==their book ,在阿拉伯語(yǔ)中編碼為幾個(gè)詞); 中文書(shū)寫(xiě)體習(xí)慣則一般既不用這種方式編碼分界也不使用印刷上的空白。
屬性的值中的空白符的處理方式按照[XML]。
4. 與HTML 4的區(qū)別
因?yàn)閄HTML是XML的一個(gè)應(yīng)用,一些在基于SGML的HTML 4中完全合法的習(xí)慣在XHTML中必須改變。
4.1 文檔必須是編排良好的
編排良好性Well-formedness是[XML]引入的一個(gè)新概念。從本質(zhì)上說(shuō),這意味著元素必須有結(jié)束標(biāo)簽,或者必須以特殊方式書(shū)寫(xiě)(在下面說(shuō)明)。
元素必須嵌套,盡管SGML規(guī)定層疊非法,但現(xiàn)有的瀏覽器普遍允許層疊。
正確:嵌套元素。
<p>here is an emphasized <em>paragraph</em>.</p>
不正確:層疊元素。
<p>here is an emphasized <em>paragraph.</p></em>
4.2 元素和屬性名必須小寫(xiě)
對(duì)所有HTML元素和屬性名,XHTML 文檔必須使用小寫(xiě)。 因?yàn)閄ML是大小寫(xiě)敏感的,所以這個(gè)差別是必須的。如 <li> 和 <LI> 是不同的標(biāo)簽。
4.3 對(duì)非空元素,必須使用結(jié)束標(biāo)簽
在基于 SGML的 HTML 4 中,一些隱含結(jié)束意義的元素允許忽略結(jié)束標(biāo)簽。而在基于XML的XHTML中,這種忽略不被允許。除了在DTD中被聲明為空的元素,所有元素必須有結(jié)束標(biāo)簽。
正確:結(jié)束了的元素。
<p>here is a paragraph.</p><p>here is another paragraph.</p>
不正確:未結(jié)束元素。
<p>here is a paragraph.<p>here is another paragraph.
4.4 屬性值必須在引號(hào)中
所有的屬性必須用引號(hào),即使是數(shù)字。
正確:在引號(hào)中的屬性值
<table rows="3">
不正確:不在引號(hào)中的屬性值。
<table rows=3>
4.5 屬性最小化
XML 不支持屬性最小化。 屬性值對(duì)必須寫(xiě)全。象compact,checked這樣的屬性名不能不指定屬性值而在元素中出現(xiàn)。
正確:沒(méi)有最小化的屬性
<dl compact="compact">
不正確:最小化屬性
<dl compact>
4.6 空元素
空元素要么必須有結(jié)束標(biāo)簽,要么起始標(biāo)簽以/>結(jié)束。 例如,<br/>或<hr></hr>. 請(qǐng)參看HTML兼容性指導(dǎo) HTML Compatibility Guidelines 中的信息,以保證向后兼容HTML 4用戶(hù)代理程序
正確:結(jié)束的空元素
<br/><hr/>
錯(cuò)誤:未結(jié)束的空標(biāo)簽
<br><hr>
4.7 屬性值中的空白字符處理
對(duì)屬性值,用戶(hù)代理程序?qū)h去引導(dǎo)和后序空白符,將一個(gè)或多個(gè)空白符(包括換行)轉(zhuǎn)換成單個(gè)字符間空間(在西方書(shū)寫(xiě)體中是一個(gè)ASCII空格) See Section 3.3.3 of [XML]。
4.8 Script and Style 元素
在XHTML中,script和style元素聲明為#PCDATA內(nèi)容形式,因此,< 和 & 被看作是標(biāo)識(shí)的開(kāi)始,<和& 這樣的實(shí)體被XML處理程序看作為實(shí)體引用而分別被認(rèn)為是< 和 & . 將script和style元素的內(nèi)容包裹在CDATA記號(hào)部分中避免了這些實(shí)體的擴(kuò)張。
<script>
<![CDATA[
… unescaped script content …
]]>
</script>
CDATA 部分被 XML 處理程序識(shí)別,是文檔對(duì)象模型中一個(gè)結(jié)點(diǎn)。請(qǐng)參看1.3節(jié)Section 1.3的DOM LEVEL 1推薦標(biāo)準(zhǔn)[DOM]。
替代的方式是使用外部script和style文檔。
4.9 SGML 禁止
SGML 給作者的DTD可以指定在一個(gè)元素內(nèi)部禁止出現(xiàn)的元素。這樣的禁止在XML中是不可能的。
例如,嚴(yán)格的 HTML 4 DTD 禁止任何深度的’a’元素對(duì)另一’a’元素的嵌套。在XML中無(wú)法寫(xiě)出這樣的禁止。盡管這些禁止不能在DTD中定義,一些元素不應(yīng)該被嵌套。在標(biāo)準(zhǔn)化的附錄B Appendix B中是這些元素的匯總。
4.10 具有 ‘id‘ 和 ‘name‘ 屬性的元素
HTML 4 定義了name屬性的元素有 a,applet,form,frame,iframe,img,and map. HTML 4還引入了 id 屬性。 這兩個(gè)屬性都是被設(shè)計(jì)作為片段標(biāo)識(shí)符。
在XML中,片段標(biāo)識(shí)符是ID類(lèi)型,每個(gè)元素只能有一個(gè)ID類(lèi)型的屬性。因此,在XHTML1.0中,id屬性被定義為ID類(lèi)型。為保證XHTML1.0文檔是結(jié)構(gòu)良好的XML文檔,在定義一個(gè)片段標(biāo)識(shí)符時(shí),XHTML文檔必須使用id屬性,即使是對(duì)那些以前用name屬性的元素。請(qǐng)參看 HTML Compatibility Guidelines 的信息,確保XHTML文檔以text/html媒體類(lèi)型使用時(shí),這些”錨”能向后兼容。
注意,在XHTML 1.0中,name 屬性不被正式支持,在以后的XHTML版本中將被刪除。
5. 兼容性問(wèn)題
盡管XHTML不必和已有的用戶(hù)代理程序兼容,在操作上它很容易實(shí)現(xiàn)。創(chuàng)建兼容文檔的指導(dǎo)方針在A(yíng)ppendix C中。
5.1 Internet 媒體類(lèi)型
在本推薦標(biāo)準(zhǔn)發(fā)布時(shí),基于XML的應(yīng)用的通用MIME標(biāo)簽問(wèn)題還未被解決。
雖然如此,依照Appendix C中指導(dǎo)方針的XHTML文檔可以標(biāo)為"text/html"媒體類(lèi)型,因?yàn)檫@被大多數(shù)瀏覽器兼容。本文檔對(duì)XHTML文檔的其它MIME標(biāo)簽不做推薦。
6. 未來(lái)趨勢(shì)
XHTML 1.0 提供了一類(lèi)文檔類(lèi)型的基礎(chǔ),此類(lèi)文檔將擴(kuò)展xhtml和包含XHTML子集。為了廣泛的支持新設(shè)備和新應(yīng)用,定義模塊和指定聯(lián)合這些模塊的機(jī)制。 這個(gè)機(jī)制將用統(tǒng)一的方式定義新模塊,以擴(kuò)展和子集XHTML。
6.1 模塊化 HTML
因?yàn)閄HTML的應(yīng)用從傳統(tǒng)的桌面用戶(hù)代理程序轉(zhuǎn)移到其它平臺(tái),顯然,在所有的平臺(tái)上不一定要用到所有的XHTML元素。 例如,手上設(shè)備或蜂窩電話(huà)可以只支持XHTML元素的一個(gè)子集。
模塊化的過(guò)程將XHTML分為一系列小的元素集。在不同的情況需要時(shí),它們又可以重新聯(lián)合起來(lái)。
這些模塊將在以后的W3c文檔中定義。
6.2 子集和可擴(kuò)展性
模塊化帶來(lái)幾個(gè)好處:
提供了子集化XHTML的正式機(jī)制。
提供了擴(kuò)展XHTML的正式機(jī)制。
簡(jiǎn)化了文檔類(lèi)型間的轉(zhuǎn)化。
促進(jìn)在新文檔類(lèi)型中的模塊重用。
6.3 文檔 協(xié)議
文檔 協(xié)議指明了一組文檔的句法和語(yǔ)義。遵循文檔協(xié)議提供了保證文檔互用性的基礎(chǔ)。文檔協(xié)議指定處理此類(lèi)文檔所需的功能,如,可以使用哪種圖像文件類(lèi)型,腳本的級(jí)別,樣式表的支持情況,等等。
對(duì)于產(chǎn)品設(shè)計(jì)者,這可以使不同的團(tuán)體定義他們自己的標(biāo)準(zhǔn)協(xié)議。
對(duì)于作者。 這可以使他們避免為不同的客戶(hù)寫(xiě)不同的文檔版本。
對(duì)于專(zhuān)業(yè)群體,如化學(xué)家,醫(yī)生或數(shù)學(xué)家,這可以允許用標(biāo)準(zhǔn)的HTML元素加上一組適合專(zhuān)家需要的元素來(lái)建立一個(gè)特殊的協(xié)議。
附錄A. DTDs
本附錄是標(biāo)準(zhǔn)化的。
這些 DTD 和實(shí)體構(gòu)成了本規(guī)范書(shū)的一個(gè)標(biāo)準(zhǔn)化的部分。本規(guī)范書(shū)完全的 DTD 文件集以及XML聲明和SGML開(kāi)放目錄在一個(gè)zip file文件中。
A.1 文檔類(lèi)型定義(Document Type Definitions)
這些 DTD 類(lèi)似 HTML 4 的DTD. 當(dāng)DTD模塊化之后,構(gòu)件DTD使用的方法也許更能和HTML 4相對(duì)應(yīng)。
XHTML-1.0-Strict
XHTML-1.0-Transitional
XHTML-1.0-Frameset
A.2 實(shí)體集
XHTML的實(shí)體集和HTML 4的相同,但是被修飾成有效的XML 1.0實(shí)體聲明。注意歐洲貨幣符號(hào)的實(shí)體 (€ or € 或 €) 是在特殊符號(hào)部分定義。
Latin-1 characters
Special characters
Symbols
附錄 B. 禁止元素
This appendix is normative.
下面的元素在包含其它元素時(shí)有禁止(參看 Section 4.9)。 這些禁止應(yīng)用于所有深度的嵌套,即,保括子元素。
a
不能包含其它 a 元素。
pre
不能包含 img,object,big,small,sub,或 sup 元素。
button
不能包含 input,select,textarea,label,button,form,fieldset,iframe 或 isindex 元素。
label
不能包含其它label 元素。
form
不能包含其它 form 元素。
附錄 C. HTML兼容性指導(dǎo)
This appendix is informative.
本附錄總結(jié)設(shè)計(jì)時(shí)的方針,指導(dǎo)作者書(shū)寫(xiě)可在現(xiàn)有HTML用戶(hù)代理程序中顯示的XHTML文檔。
C.1 處理說(shuō)明
一些用戶(hù)代理程序會(huì)顯示處理說(shuō)明。但是,注意當(dāng)文檔中沒(méi)有XML聲明時(shí),文檔只能用缺省的字符編碼UTF-8 或 UTF-16。
C.2 空元素
在空元素結(jié)束符 / 和 > 前加一個(gè)空格,如 <br />,<hr /> 和 <img src="" alt="Karen" />. 還有,使用最小化的標(biāo)簽語(yǔ)法,如<br />,因?yàn)榱硪环NXML允許的語(yǔ)法 <br></br> 在很多現(xiàn)有用戶(hù)代理程序會(huì)導(dǎo)致不可靠的結(jié)果。
C.3 元素最小化和空元素內(nèi)容
內(nèi)容模型不是空的元素,在為空的場(chǎng)合(如空title或空段落),不要用最小化形式(如 用 <p> </p>,不用 <p />)。
C.4 嵌入的樣式表和Script
如果你的樣式表使用 < 或 & 或 ]]> 或 --,用外部樣式表。如果你的script用 < 或 & 或 ]]> 或 --,用外部script。 注意XML分析程序會(huì)在不告知的情況下除去注釋的內(nèi)容。因此,以前用注釋的方法”隱藏”script和樣式表的習(xí)慣使文檔可以向后兼容,但是可能在基于XML的執(zhí)行時(shí)不能按預(yù)期工作。
C.5 在屬性值內(nèi)部分行
在屬性值中避免使用分行和多個(gè)空格符。用戶(hù)代理程序處理這些情況時(shí)不一致。
C.6 Isindex
在文檔的head部分不要使用超過(guò)一個(gè) isindex 元素。 isindex 元素不被贊成使用,贊成使用input元素。
C.7 lang 和 xml:lang 屬性
在指定元素的語(yǔ)言時(shí)同時(shí)使用 lang 和 xml:lang 屬性。xml:lang 屬性在前。
C.8 片段標(biāo)識(shí)符
在 XML中,以"#foo"形式結(jié)束片段標(biāo)識(shí)符URI [RFC2396] 不是指元素有一個(gè)屬性name="foo",而是指元素有一個(gè)被定義為ID類(lèi)型的屬性,如,HTML 4中的id屬性。很多HTML客戶(hù)程序不以這種方式支持ID類(lèi)型屬性,所以,可以將相同的值同時(shí)附給這兩個(gè)屬性,以保證最大程度的向后和向前兼容。(如 <a id="foo" name="foo">…</a>)。
此外,因?yàn)镮D類(lèi)型屬性的合法值集比CDATA類(lèi)型屬性的值集小得多,name屬性被改為NMTOKEN。這個(gè)屬性被限制為只有和ID類(lèi)型或XML1.0 2.5節(jié)中的Name產(chǎn)品同樣的值。不幸的是,XHTML的DTD不能表示出這個(gè)限制。因?yàn)檫@個(gè)改變,在轉(zhuǎn)換現(xiàn)有的HTML文檔時(shí)要加以注意。 如果在轉(zhuǎn)換時(shí)值可能會(huì)改變,這些屬性的值在文檔中必須是唯一的,有效的,任何對(duì)這些片段標(biāo)識(shí)符的引用(不管是內(nèi)部還是外部)必須更新。
最后,注意不贊成在 a,applet,form,frame,iframe,img,和 map 元素中使用name屬性,在以后的XHTML版本中,它將被去除。
C.9 字符編碼
要指定文檔中的字符編碼,同時(shí)在xml聲明中使用編碼屬性指定 (如。 <?xml version="1.0" encoding="EUC-JP"?>) 和在meta中用 http-equiv 語(yǔ)句 (如 <meta http-equiv="Content-type" content=‘text/html; charset="EUC-JP"‘ />)。xml處理指令的編碼屬性值在前。
C.10 布爾屬性
一些HTML用戶(hù)代理程序在布爾屬性以完全(非最小化)形式出現(xiàn)時(shí)不能解釋它們,而這是XML1.0必須的。注意這個(gè)問(wèn)題不會(huì)影響用戶(hù)代理程序?qū)TML 4的兼容。包括以下一些屬性: compact,nowrap,ismap,declare,noshade,checked,disabled,readonly,multiple,selected,noresize,defer.
C.11 文檔對(duì)象模型和 XHTML
文檔對(duì)象模型 level 1 推薦標(biāo)準(zhǔn) [DOM] 定義XML和HTML 4的文檔對(duì)象模型。 HTML 4 文檔對(duì)象模型規(guī)定HTML元素名和屬性名以大寫(xiě)形式返回。XML文檔對(duì)象模型規(guī)定元素名和屬性名以它們被指定的形式返回。在 XHTML 1.0中,元素和屬性指定為小寫(xiě)形式。對(duì)這個(gè)顯著的差別可以用兩種方式處理:
通過(guò)DOM訪(fǎng)問(wèn)text/html internet媒體類(lèi)型XHTML文檔的應(yīng)用程序可以使用HTML DOM,還可以依賴(lài)這些界面返回的大寫(xiě)的元素名和屬性名。
通過(guò)DOM訪(fǎng)問(wèn)text/xml或application/xml internet媒體類(lèi)型XHTML文檔的應(yīng)用程序也可以使用XML DOM. 元素名和屬性名將以小寫(xiě)形式返回。 并且,一些 XHTML 元素可以也可以不出現(xiàn)在對(duì)象樹(shù)中,因?yàn)樵趦?nèi)容模型中它們是可選的(如table中的 tbody 元素)。 在HTML 4中,一些元素可以允許被最小化以至于它們的開(kāi)始標(biāo)簽和結(jié)束標(biāo)簽都被忽略(SGML特性),所以可以發(fā)生。但是在XML中不行。XHTML使元素成為可選的,而不是要由文檔作者來(lái)插入外來(lái)元素。相應(yīng)地,應(yīng)用程序需要適應(yīng)這一點(diǎn)。
C.12 在屬性值中使用 &
在屬性值中含有&符號(hào)時(shí),它必須用字符實(shí)體引用來(lái)表示 (即 "&")。 例如,當(dāng)一個(gè)元素的 href 屬性指向一個(gè)接收參數(shù)的 CGI腳本時(shí),它必須表示為而不是
C.13 層疊樣式表和XHTML
層疊樣式表 level 2推薦標(biāo)準(zhǔn) [CSS2] 定義style的屬性,用于分析HTML和XML文檔的樹(shù)形結(jié)構(gòu)。分析時(shí)的不通將導(dǎo)致不同的視覺(jué)或聽(tīng)覺(jué)效果,這依賴(lài)于使用的選擇器。下面的技術(shù)可以減少對(duì)文檔的這種影響,而用不修改這兩中媒體類(lèi)型:
XHTML的CSS樣式表應(yīng)該用小寫(xiě)的元素和屬性名。
在table中,tbody 元素會(huì)被HTML用戶(hù)代理程序的分析器推斷出,但是XML用戶(hù)代理程序的分析器不會(huì)這么做。所以如果在CSS選擇器中要被引用到,你應(yīng)該總是明晰地加上tbody元素。
在XHTML 名址空間,用戶(hù)代理程序?qū)选眎d”屬性認(rèn)作為一個(gè)ID類(lèi)型的屬性。因此,即使用戶(hù)代理程序不能認(rèn)出DTD,樣式表也應(yīng)該能夠繼續(xù)使用”#”簡(jiǎn)化選擇器語(yǔ)法。
在XHTML 名址空間,用戶(hù)代理程序?qū)⒆R(shí)別class屬性,因此,樣式表應(yīng)該能構(gòu)繼續(xù)使用”?!焙?jiǎn)化選擇器語(yǔ)法。
CSS 定義HTML和XML文檔的不同一致性標(biāo)準(zhǔn); 在XHTML文檔以HTML表達(dá)時(shí),用HTML規(guī)則,在XHTML文檔以XML表達(dá)時(shí),用XML規(guī)則。
到此,相信大家對(duì)“XHTML基礎(chǔ)入門(mén)知識(shí)點(diǎn)有哪些”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢(xún),關(guān)注我們,繼續(xù)學(xué)習(xí)!
分享文章:XHTML基礎(chǔ)入門(mén)知識(shí)點(diǎn)有哪些
標(biāo)題鏈接:http://www.rwnh.cn/article32/jgpssc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司、網(wǎng)站策劃、電子商務(wù)、外貿(mào)網(wǎng)站建設(shè)、云服務(wù)器、自適應(yīng)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)