国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > WEB開發 > 正文

XHTML的目標,規則和細節

2024-04-27 13:55:10
字體:
來源:轉載
供稿:網友

兩個目的:
1,將頁面的內容和形式清晰的分離開來
2,使頁面內容更接近于xml

為什么要實現這兩個目的,好多地方都有講,不過,這里簡單的講兩條
1,跟為什么asp.net要分層是一個道理,內容和形式分離后,一個符合XHTML規范的頁面的外觀可重覆設計而無需更改頁面內容
2,跟XML靠近的原因,這個好多地方有講,最重要的是,HTML固然能被IE解析,可他那過于寬松的形式,大量的形式標記,無助于表示語義,一句話,HTML是用來呈現的,可它卻忘了數據的重要性,數據不光要呈現,而且最好容易理解,這一點恰恰是XML的長處,XML就是用來表示數據的

XHTML的版本標準有三個
XHTML 1.0 過渡版,這個比較寬松
XHTML 1.0 嚴格版,嚴格要求形式和內容分離
XHTML 1.0 框架版,加入了對FRAMESET的支持

XHTML 1.0包含哪些標準呢?或者說,什么樣的頁面才是XHTML1.0規范頁面呢?

1,頁面開頭必須包含一個正確的XML DocType聲明
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"
這個要注意,這個聲明是告訴瀏覽器如何渲染頁面的,想做個測試的話,你在Dreamweaver中做兩個頁面,一個用HTML,一個用XHTML標準,內容是一個100%寬100%高的表格,你給表格應用上邊框,在IE里查看,你會發現,HTML標準的,表格確實是100%高100%寬,但是XHTML的就不會,表格高度無法到達100%高,這說明,IE在渲染時,是會根據DOCTYPE聲明有所區別的

2,根元素必須指出XHTML命名空間
通常是HTML這個<html xmlns="3,所有元素和屬性名要小寫
4,屬性值必須用雙引號括起
這一條是很多人容易忘記的,因為在HTML里,數值屬性值,我們往往都不寫雙引號,像A標記的HREF,也可以不寫
不過,VS.NET的選項里,有選項可以讓VS.NET自動幫你產生屬性值雙引號,而且可以自動更改大小寫,挺方便
5,每一個元素必須有結束標記,如果是空元素,則按XML規則來書寫,就是說<IMG>要寫成<IMG  />
6,標記不要交叉,這一點應該沒問題吧,不過,IE才不管你交不交叉,它的容錯能力倒是超強(不是糾錯哦)
7,屬性必須有值,以前我們寫CHECKBOX的屬性,總是寫<input type="checkbox" checked>這回不行了,得寫成<input type="checkbox" checked="true" />
8,用ID屬性取代NAME屬性,這點順理成章吧,畢竟ID更深入人心,特別是搞SERVER SIDE技術的,而且
DHTML中,有許多涉及到ID的方法了,真不知道干啥還要用NAME(不是指INPUT類的哦,是指A,IMG等)
9,<script>及<style>標記的內容必須使用
<![CDATA[
]]>括起
這一點也容易理解,要不,如果你<SCRIPT>中有<>形式的字符,也會被瀏覽器當成XHTML標記來渲染了,但是,你可千萬別以為真是直接用上面的標記括呀,你要這樣括了,IE一定報錯,因為IE雖然認識他們,可是javaSCRIPT會當它們是代碼呀,怎么辦呢?正確的辦法是加上Javascript注釋
/*<![CDATA[*/
/*]]>*/
這樣一來就行了,不過,我剛開始看到上面的方法,很懷疑,因為這樣一來,IE咋解析/**/呢?原文說,"the CDATA section is hidden from the JavaScript, but not from the browser that parses the page",就是說,雖然JAVASCRIPT注釋掉它,并忽略它,但是瀏覽器仍然會解析它
當然,更好的辦法是把SCRIPT和STYLE放到外部文件中去

其他的部分是我的建議
1,廢除掉一些舊的標記,例如font,b,i,u等,基本上是那些用于修飾格式的標記
2,盡量使用DIV來布局而不是TABLE,當然如果你不熟的話,用TABLE也可以,不過,還是慢慢熟的好,至于原因,我想,DIV至少在用ROBERT程序抓取時比TABLE好解析多了吧
3,用樣式來控制頁面布局及格式,盡量不要用內容樣式,要問為什么的話,你想想看,內聯樣式重用率低,而且太分散
4,選一個好的XHTML編輯器
一個好的編輯器有助于事半功倍的幫你編寫XHTML標準的頁面
VS.NET的HTML設計器一向不是很好使,而且VS.NET2003根本未提供XHTML支持,它僅支持標記自動小寫,自動為屬性加雙引號,不支持自動改寫空標記,更不支持驗證是否符合XHTML
在這里建議大家用MACROMEDIA DREAMWEAVER MX 8,它的確是這世界上最棒的HTML設計器了,它支持100%的XHTML特性,從創建到驗證,特別是驗證,可以讓你在創建完后,驗證是否有違犯XHTML規定的地方

一些細節
DoCTYPE開關
不同的DOCTYPE聲明對于瀏覽器來說,在渲染處理上是不一樣的,主要是像BOX的計算規則之類的處理上
這一點是很多人所不知道的,例如,IE6支持兩種模式,一種是標準模式,另一種是寬松模式,如果是XHTML的頁面,則會用標準模式處理,如果是普通HTML頁面,則是用寬松模式來處理,所以,一個內容相同的頁面,DOCTYPE不一樣,出來的細節也有些差別

本文翻譯和摘要了一篇來自由Stephen Walther發表于MSDN上的文檔,原文見http://msdn.microsoft.com/asp.net/reference/design/default.aspx?pull=/library/en-us/dnaspp/html/aspnetusstan.asp#aspnetusstan_topic2


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 汉寿县| 邵阳县| 阿坝县| 辽源市| 江阴市| 左云县| 邻水| 萨嘎县| 武平县| 麦盖提县| 淄博市| 泸溪县| 偏关县| 泰州市| 鹰潭市| 温州市| 新化县| 安溪县| 东丽区| 古蔺县| 阿巴嘎旗| 宁强县| 黑龙江省| 龙泉市| 沂源县| 忻城县| 达日县| 高雄县| 灵寿县| 宝兴县| 萝北县| 安塞县| 潼南县| 建德市| 白山市| 温州市| 彩票| 元氏县| 呈贡县| 凤庆县| 德阳市|