一段時間以來,發(fā)現(xiàn)有很多人XHTML都不會用,不光是普通的初學者,有的程序員都不是很清楚該怎么寫這個XHTML,我這里呢算是把一些常見的應(yīng)用問題做一個總結(jié),也算能使得大家能在溝通,合作上能形成默契。
XHTML里有很多的標簽,但是經(jīng)常用到的也就是那么幾個,也只要掌握這幾個也就可以了。下面我們一一列舉:div,p,span,ul,li,dl,dt,dd,a,img,h,strong,em
div 在我的腦子里我一直把他想作是一個瓶子或是箱子,我的感覺它挺硬的。這個div沒有什么特性的意義,可以使用在很多地方,也就是說他可以裝不同的東西。他的正確的寫法是<div></div>必需要有封口。大家都用來做布局之用,也有用來作為存放文章形成段落,實際上,這個做法并不是很好,因為作為文章的分段自然有一個特定的標簽來用。那就是下面要講的<p></p>標簽,不過用DIV來再整體的包住所有的段落。這是非常實用的。
p 這是一個有特定語義的標簽,表示段落,是用來區(qū)分段落的。在大部分的瀏覽器中對P基本上都有一個上下的邊距。但是沒有行首縮進,因為行首縮進只是表示段落的方式但是不是一定或是必需的。所以在用P標簽的時候如果需要可以針對P設(shè)定一下行首縮進,我是推薦在文章以外的地方不要使用P,因為P是有一定語義的,如果用在別的地方恐不合適。正確的寫法是<p></p>
span 這也是一個非常常用的標簽,這個標簽可以說與div很像,沒有什么特定的意義,只是他是一個級聯(lián)元素,不是塊級元素。我一直把它看作是一個袋子,他不像箱子那樣可以有自己的寬高,他的寬高只能隨著內(nèi)容的多少而定,所以很像是袋子。這個標簽與div正好互補。
ul,li 這是一個列表,在列表中,除了UL還OL,不過我覺得OL有點像是雞肋。因為UL通過CSS定義一樣可以有OL的數(shù)字排序效果。所以一般我不推薦使用OL,有UL就可以了。UL是塊級的,他的子級li也是塊級標簽。正確的寫法是<ul><li></li></ul> LI標簽是被UL標簽包裹的,在UL標簽里可以有無數(shù)個LI標簽,LI標簽不能獨立使用。并且LI標簽一定要封口,這不光是美觀問題,對于后期的維護也很有好處。很多程序員都不喜歡把這個LI封口。UL列表的用處主要是列舉出一維的,同一類型的數(shù)據(jù)。具體的比如使用在菜單上,文章中列數(shù)的一些條例等等。在列表中有一種特別的形式與UL是不一樣的。那就是下面的DL
dl,dt,dd 這是一個很特別的三個標簽的組合。這里的DT是指標題,DD是指內(nèi)容。DL是包課他們的容器。正確的寫法是<dl><dt></dt><dd></dd></dl>在DL里可以有很多組的DT,DD,當出現(xiàn)很多組的時候必需是一個DT配一個DD,不能有落單,如果DD中內(nèi)容很多,可以在DD里加P標簽配合使用。DL列表是一個非常好的列表形式,可以多加利用。
a 這表示鏈接,是一個特定屬性的,也是網(wǎng)頁中最為神奇的標簽。因為它才讓無數(shù)的網(wǎng)頁都連在了一起。正確的寫法是:<a href=”” title=””></a>其中的href是表示目標地址,TITLE是鼠標懸停提示文字,這是可有可無的。但是有必是利大于無。
img 這是圖片標簽,也是個特定屬性的標簽。正常寫法是:<img src=”” alt=”” title=””/> 這里的src是目標地址,ALT與TITLE是鼠標懸停提示,ALTj IE特定的,TITLE是其它瀏覽器的通用的。不過記得后面的反斜線那是一定要有的。
H 這是一個系列的標簽,從H1到H6,一共六個,有人說太少了,有人說正好用,有人說用不了這么多。反正我是覺得差不多。正確寫法是:<h></h>主要是用來存放標題,也有一些朋友用來作它用,個人覺得這個標簽還是讓他安生一點,就讓他做標題的作用。這六個標簽之間最好不要出現(xiàn)什么相互包含的事。
strong 這個意思是著重,這是有語義的,作用也很簡單。至于樣工,是加粗著重,還是用色彩表明著重,那都是自行選擇。正確的寫法是<strong></strong>
em 這個與strong很像,是表示強調(diào)。一般瀏覽器的默認值是斜體。使用方式與strong一樣。寫法是:<em></em>
這里沒有說表單,因為表單基本上沒有什么變化,也沒什么可特別說的。
]]>因為XHTML是XML的一個應(yīng)用,一些在基于SGML的HTML 4中完全合法的習慣在XHTML中必須改變。
文檔必須是編排良好的
編排良好性Well-formedness是[XML]引入的一個新概念。從本質(zhì)上說,這意味著元素必須有結(jié)束標簽,或者必須以特殊方式書寫(在下面說明)。
元素必須嵌套,盡管SGML規(guī)定層疊非法,但現(xiàn)有的瀏覽器普遍允許層疊。
正確:嵌套元素。
<p>here is an emphasized <em>paragraph</em>.</p>
不正確:層疊元素。
<p>here is an emphasized <em>paragraph.</p></em>
元素和屬性名必須小寫
對所有HTML元素和屬性名,XHTML 文檔必須使用小寫。 因為XML是大小寫敏感的,所以這個差別是必須的。如 <li> 和 <LI> 是不同的標簽。
對非空元素,必須使用結(jié)束標簽
在基于 SGML的 HTML 4 中,一些隱含結(jié)束意義的元素允許忽略結(jié)束標簽。而在基于XML的XHTML中,這種忽略不被允許。除了在DTD中被聲明為空的元素,所有元素必須有結(jié)束標簽。
正確:結(jié)束了的元素。
<p>here is a paragraph.</p><p>here is another paragraph.</p>
不正確:未結(jié)束元素。
<p>here is a paragraph.<p>here is another paragraph.
屬性值必須在引號中
所有的屬性必須用引號,即使是數(shù)字。
正確:在引號中的屬性值
<table rows=”3″>
不正確:不在引號中的屬性值。
<table rows=3>
屬性最小化
XML 不支持屬性最小化. 屬性值對必須寫全。象compact,checked這樣的屬性名不能不指定屬性值而在元素中出現(xiàn)。
正確:沒有最小化的屬性
<dl compact=”compact”>
不正確:最小化屬性
<dl compact>
空元素
空元素要么必須有結(jié)束標簽,要么起始標簽以/>結(jié)束. 例如,<br/>或<hr></hr>. 請參看HTML兼容性指導 HTML Compatibility Guidelines 中的信息,以保證向后兼容HTML 4用戶代理程序
正確:結(jié)束的空元素
<br/><hr/>
錯誤:未結(jié)束的空標簽
<br><hr>
屬性值中的空白字符處理
對屬性值,用戶代理程序?qū)h去引導和后序空白符,將一個或多個空白符(包括換行)轉(zhuǎn)換成單個字符間空間(在西方書寫體中是一個ASCII空格) See Section 3.3.3 of [XML]。
Script and Style 元素
在XHTML中,script和style元素聲明為#PCDATA內(nèi)容形式,因此,< 和 & 被看作是標識的開始,<和& 這樣的實體被XML處理程序看作為實體引用而分別被認為是< 和 & . 將script和style元素的內(nèi)容包裹在CDATA記號部分中避免了這些實體的擴張。
<script>
<![CDATA[
… unescaped script content …
]]>
</script>
CDATA 部分被 XML 處理程序識別,是文檔對象模型中一個結(jié)點。請參看1.3節(jié)Section 1.3的DOM LEVEL 1推薦標準[DOM]。
替代的方式是使用外部script和style文檔。
SGML 禁止
SGML 給作者的DTD可以指定在一個元素內(nèi)部禁止出現(xiàn)的元素。這樣的禁止在XML中是不可能的。
例如,嚴格的 HTML 4 DTD 禁止任何深度的’a’元素對另一’a’元素的嵌套。在XML中無法寫出這樣的禁止。盡管這些禁止不能在DTD中定義,一些元素不應(yīng)該被嵌套。在標準化的附錄B Appendix B中是這些元素的匯總。
具有 ‘id’ 和 ‘name’ 屬性的元素
HTML 4 定義了name屬性的元素有 a,applet,form,frame,iframe,img,and map. HTML 4還引入了 id 屬性. 這兩個屬性都是被設(shè)計作為片段標識符。
在XML中,片段標識符是ID類型,每個元素只能有一個ID類型的屬性。因此,在XHTML1.0中,id屬性被定義為ID類型。為保證XHTML1.0文檔是結(jié)構(gòu)良好的XML文檔,在定義一個片段標識符時,XHTML文檔必須使用id屬性,即使是對那些以前用name屬性的元素。請參看 HTML Compatibility Guidelines 的信息,確保XHTML文檔以text/html媒體類型使用時,這些”錨”能向后兼容。
注意,在XHTML 1.0中,name 屬性不被正式支持,在以后的XHTML版本中將被刪除。
]]>XHTML是一系列當前和將來的文檔類型和程序塊,它由HTML 4 [HTML]再生和擴展而來,HTML 4是其子集。XHTML系列文檔基于XML,最終被設(shè)計用來與基于XML的用戶代理程序一起工作。XHTML家族的詳情及其發(fā)展過程在未來趨勢一節(jié)中詳述。
XHTML 1.0(本規(guī)范書)是XHTML家族的第一個文檔。它是將3種HTML 4文檔類型應(yīng)用到XML 1.0 [XML]之后重新形成的。其意圖是,作為一種語言,它的內(nèi)容既符合XML,并且如果依照一些簡單的指導方針,也能被HTML4用戶代理程序識別。開發(fā)者將它們的文檔移植成為XHTML 1.0,會得到以下好處:
XHTML文檔遵從XML。這樣,用標準的XML工具很容易查看,編輯和檢驗它們。
XHTML文檔可以在現(xiàn)有的HTML4代理用戶程序中使用,也可以在新的XHTML用戶代理程序中使用,在后者中可以達到與前者同樣或更好的效果。
XHTML 文檔中使用的應(yīng)用程序(如script 和 applet) 可以是HTML 的文檔對象模型(Document Object Model) ,也可以是 XML 的文檔對象模型 [DOM]。
隨著 XHTML 家族的發(fā)展,遵從XHTML 1.0的文檔更有可能運用在各種XHTML環(huán)境中。
XHTML家族是Internet發(fā)展的下一步。 將現(xiàn)在將文檔移植成XML,開發(fā)者在確保他們的文檔向前后兼容的同時,還能享有進入XML世界帶來的好處。
什么是HTML 4?
HTML 4 [HTML] 是SGML (Standard Generalized Markup Language) 的一個應(yīng)用,遵從國際標準ISO 8879,被廣泛的當作 World Wide Web上的標準出版語言。
SGML是一種描述標記語言,特別是那些用于電子文檔交換,文檔管理和文檔發(fā)布語言的語言。HTML是SGML定義的語言的一個實例。
SGML出現(xiàn)在80年代中期,一直保持得很穩(wěn)定。穩(wěn)定是原因是它有豐富的特征和具有靈活性。但是,靈活性的帶來一定程度的復雜性,限制了它在多種環(huán)境下的適應(yīng)性,包括World Wide Web。
HTML最初的構(gòu)想是作為一種交換科學和其它技術(shù)文檔的一種語言,供那些不熟悉書寫文檔的專家使用。HTML規(guī)定一小套結(jié)構(gòu)語義標簽,適于書寫相對簡單的文檔,從而解決了SGML復雜性的問題。除了簡化了文檔結(jié)構(gòu)外,HTML還加入了對超文本的支持,以后還增加了媒體功能。
在非常短的時間內(nèi),HTML變得廣泛流行,并且很快超出了其原來的目的。HTML(標準)內(nèi)部的新元素以很快的速度創(chuàng)造出來,HTML也被很快的改編以用于垂直的,高度專門化的市場。多余的新元素導致文檔在跨平臺時的兼容問題。
隨著軟件和平臺不一致性增加,很顯然,“經(jīng)典的”HTML 4在這些平臺上使用的適用性就會受到一些限制。
什么是 XML?
XML™ [XML]是Extensible Markup Language的縮寫,創(chuàng)造XML的目的是重新獲得SGML的能力和靈活性,而去除其大部分復雜的東西。盡管是一個受限制SGML的形式,但是XML仍保留了SGML的大部分功能和豐富性,還保留了SGML的所有常用特性。
在保留這些有用的特性的同時,XML去掉了SMGL中很多更復雜的特性,這些特性使得書寫和設(shè)計合適的軟件既困難又昂貴。
為什么需要XHTML?
上面已經(jīng)提到了移植到XHTML的好處,一般來說,移植到XHTML的好處有:
文檔開發(fā)者和用戶代理程序設(shè)計商常常用新方法,新標簽來表達它們的想法。用XML導入新元素和新的元素屬性相對來說更容易。XHTML家族被設(shè)計用來提供這些擴展,通過XHTML模塊和開發(fā)新的遵從XHTML的模塊的技術(shù)。(將在即將出臺的XHTML模塊化規(guī)范說明書中描述)。在開發(fā)文檔和設(shè)計新用戶代理程序時,這些模塊將允許混合使用現(xiàn)有的和新的特性集。
各種替代的訪問Internet的方法不斷的被提出。一些人估計,到2002年,internet上75%的文檔會在這些替代的平臺上被查看。XHTML 在設(shè)計時就考慮到用戶代理程序的協(xié)同工作性。通過一個新的用戶代理程序和文檔協(xié)議機制,服務(wù)器、代理程序和用戶代理程序?qū)⒛軌蜃罴训貪M足傳輸,最后,有可能開發(fā)出遵循XHTML的文檔,能被任何遵循XHTML的用戶代理程序使用。
]]>
1、什么是XHTML?
HTML是一種基本的WEB網(wǎng)頁設(shè)計語言,XHTML是一個基于XML的置標語言,看起來與HTML有些相象,只有一些小的但重要的區(qū)別,XHTML就是一個扮演著類似HTML的角色的XML,所以,本質(zhì)上說,XHTML是一個過渡技術(shù),結(jié)合了XML(有幾分)的強大功能及HTML(大多數(shù))的簡單特性。
2000年底,國際W3C(World Wide Web Consortium)組織公布發(fā)行了XHTML 1.0版本。XHTML 1.0是一種在HTML 4.0基礎(chǔ)上優(yōu)化和改進的的新語言,目的是基于XML應(yīng)用。XHTML是一種增強了的HTML,它的可擴展性和靈活性將適應(yīng)未來網(wǎng)絡(luò)應(yīng)用更多的需求。下面是W3C的HTML工作組主席Steven Pemberton回答的關(guān)于XHTML的常見基礎(chǔ)問題。
問:什么是XHTML?
答:XHTML是一種為適應(yīng)XML而重新改造的HTML。當XML越來越成為一種趨勢,就出現(xiàn)了這樣一個問題:如果我們有了XML,我們是否依然需要HTML?為了回答這個問題,1998年5月我們在舊金山開了兩天的工作會議,會議的結(jié)論是:需要。我們依然需要使用HTML。因為大量的人們已經(jīng)習慣使用HTML來作為他們的設(shè)計語言,而且,已經(jīng)有數(shù)以百萬計的頁面是采用HTML編寫的。
問:為什么XHTML 1.0相對HTML 4.0獨立發(fā)展?
答:并不是這樣。XHTML恰恰就是HTML 4.0的重新組織,(確切的說它是HTML 4.01,是一個修正版本的HTML 4.0,只不過以XHTML 1.0命名發(fā)行。) 它們在XML里的解釋會有一些必要的差別,但另一方面,它們依然非常相似,我們可以把XHTML的工作看作是HTML 4.0基礎(chǔ)上的延續(xù)。
問:XHTML 1.0如何實現(xiàn)XML標準?
答:XHTML就是一種XML應(yīng)用。它采用XML的DTD文件格式定義,并運行在支持XML的系統(tǒng)上。這里要感謝XML的Namespaces功能,瀏覽器制造商不需要再創(chuàng)造新的私有標簽(tags),他們只需要在XHTML代碼里包含XML代碼片段,或者XML代碼里包含XHTML代碼片段。
2、與HTML相比XHTML有什么特點?
(1)XHTML解決HTML語言所存在的嚴重制約其發(fā)展的問題。HTML發(fā)展到今天存在三個主要缺點:不能適應(yīng)現(xiàn)在越多的網(wǎng)絡(luò)設(shè)備和應(yīng)用的需要,比如手機、PDA、信息家電都不能直接顯示HTML;由于HTML代碼不規(guī)范、臃腫,瀏覽器需要足夠智能和龐大才能夠正確顯示HTML;數(shù)據(jù)與表現(xiàn)混雜,這樣你的頁面要改變顯示,就必須重新制作HTML。因此HTML需要發(fā)展才能解決這個問題,于是W3C又制定了XHTML,XHTML是HTML向XML過度的一個橋梁。
(2)XML是web發(fā)展的趨勢,所以人們急切的希望加入XML的潮流中。XHTML是當前替代HTML4標記語言的標準,使用XHTML 1.0,只要你小心遵守一些簡單規(guī)則,就可以設(shè)計出既適合XML系統(tǒng),又適合當前大部分HTML瀏覽器的頁面。這個意思就是說,你可以立刻設(shè)計使用XML,而不需要等到人們都使用支持XML的瀏覽器。這個指導方針可以使web平滑的過渡到XML。
(3)使用XHTML的另一個優(yōu)勢是:它非常嚴密。當前網(wǎng)絡(luò)上的HTML的糟糕情況讓人震驚,早期的瀏覽器接受私有的HTML標簽,所以人們在頁面設(shè)計完畢后必須使用各種瀏覽器來檢測頁面,看是否兼容,往往會有許多莫名其妙的差異,人們不得不修改設(shè)計以便適應(yīng)不同的瀏覽器。
(4)XHTML是能與其它基于XML的標記語言、應(yīng)用程序及協(xié)議進行良好的交互工作。。
(5)XHTML是Web標準家族的一部分,能很好在無線設(shè)備等其它用戶代理上。
(6)在網(wǎng)站設(shè)計方面,XHTML可助你去掉表現(xiàn)層代碼的惡習,幫助你養(yǎng)成標記校驗來測試頁面工作的習慣。
]]>