熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

使用 Web 標准生成 ASP.NET 2.0

2013-11-13 10:05:05  來源: .NET編程 

  摘要 Microsoft ASPNET 具有很多有用的功能能幫助您設計和生成符合 XHTML 和可訪問性標准的 Web 站點本文探討如何以及為什麼生成這些符合標准的站點

簡介

  Web 標准使您能通過最少的工作生成可被最廣大受眾訪問的 Web 站點Web 標准的承諾是只需設計頁面一次即可讓該頁以完全相同的方式在任何現代的浏覽器中顯示和工作例如在按照標准生成以後旨在在 Microsoft Internet Explorer 中以某種方式顯示的頁可在其他浏覽器(如Mozilla FirefoxNetscape NavigatorOperaCamino 和 Safari)中以相同的方式顯示而無需完成任何額外的工作

  Web 標准的一個額外好處是 — 使 Web 站點更易於為殘疾人士訪問這是一個范圍廣泛的受眾群體包括視力衰退的中年人士剛剛在滑雪時跌斷胳膊的人士以及完全失明的人士等使用標准可避免無意中阻止那些具有暫時性或永久性身體殘疾的人士訪問 Web 頁

  對於生成滿足公共 Web 標准的 Web 站點而言Microsoft ASPNET 框架是最佳的框架特別強調的是ASPNET 框架中的每個控件都按照 XHTML 和可訪問性標准進行了全面的檢查和測試此外Microsoft Visual Studio NET 還包含一些新工具用於按照 XHTML 和可訪問性標准驗證 Web 頁

  本文的目的是為您提供有關 XHTML 和可訪問性標准的概述並說明如何利用 ASPNET 和 Visual Studio NET 來滿足這些標准在本文的結尾將分步演練以下功能即創建能夠同時滿足 XHTML 和可訪問性標准的 ASPNET Web 站點

生成 XHTML Web 站點

  HTML 在正式的場合已經過時了World Wide Web Consortium (WC) 於 日發布了 XHTML 的第一個版本作為推薦標准XHTML 標准的目標是取代 HTML按照 WC 的說法XHTML 是 HTML 的繼承者()

  XHTML 標准的制定者具有兩大目標

&#; 在文檔結構和表示形式之間創建更明顯的分離 &#; 將 HTML 重新表示為 XML 的應用程序

  為了實現第一個目標WC 一直在堅定地從 HTML 中刪除純粹描述性的元素和屬性(他們是從 HTML 開始這一過程的)例如XHTML Strict 不包含諸如 標記之類的元素或諸如 bgcolor 屬性之類的屬性因為這些元素和屬性完全用於描述文檔的外觀它們與文檔的結構沒有任何關系

  WC 一直在努力使 Web 站點設計人員和開發人員摒棄特定標記應當具有特定外觀這一觀念例如您可能會認為

標記(標題標記)的用途是在頁中呈現大的加粗文本這實際上是錯的

標記用來在文檔中標記標題而不是其他任何東西如何呈現標題標記由浏覽器確定視力衰退的人士使用的屏幕閱讀器可能利用抑揚頓挫的聲音來大聲朗讀標題標記的內容不支持多個字體大小的 PDA 可能用閃爍文本呈現標題標記的內容

  您不應當試圖使用諸如

標記之類的頁元素來控制 Web 頁的外觀相反您應當通過使用層疊樣式表來指示 Web 頁的外觀而且您所使用的層疊樣式表應當是外部 層疊樣式表請使用標記和屬性來標記文檔的結構而使用樣式表來控制文檔的表示形式

  XHTML 的第二個目標是迫使 HTML 開發人員遵守更為嚴格的 XML 規則按照 WC 的說法XHTML 是 HTML 的作為 XML 應用程序的修訂()換句話說使用 XHTML 生成 Web 頁時實際上是在創建 XML 文檔

  XML 文檔具有比 HTML 文檔更嚴格的語法例如XML 區分大小寫所有 XML 屬性都必須放在引號內而且 XML 標記不能重疊強迫 Web 站點開發人員和設計人員遵守有更高要求的語言規則有很多好處

  好處之一用 XHTML 標記編寫的頁具有更高的跨浏覽器跨設備和跨操作系統兼容性如果在浏覽器中打開傳統的 HTML 頁浏覽器將千方百計地呈現該頁浏覽器將試圖呈現該頁即使您的 HTML 一團糟例如Internet Explorer(以及 Firefox 和 Opera)能夠很好地顯示下面的 HTML 頁

  this is bold and italic and this is bold

  Internet Explorer 會恰當地顯示該頁 — 即使該頁缺少 和 開始標記 標記不具有匹配的結束標記並且開始和結束 標記的大小寫不一致所有主要的浏覽器都能適應幾乎任何 HTML 標記混合物並且不顧一切地呈現一些內容

  浏覽器的這種適應行為是危險的因為不同的浏覽器(或相同浏覽器的將來版本或在不同操作系統上運行的相同浏覽器)可能以不同方式呈現錯亂的 HTML實際上對於最新版本的 Internet ExplorerMozilla Firefox 和 Opera 而言它們呈現無效 HTML 的方式驚人地一致但是一旦開始違反游戲規則就不會得到任何保證

  然而如果用 XHTML 的更嚴格的規則編寫 Web 頁那麼 Web 頁就更有可能以一致的方式與當前浏覽器協作並且它們將繼續與當前浏覽器的未來新版本協作對於任何公司而言幾乎都不具備針對每個浏覽器在每個操作系統和每個設備上測試其 Web 站點的資源如果按照 Web 標准編寫頁面那麼就不必具有這樣的資源

XHTML 標准的版本

  有三個版本的 XHTML 它們分別對應三個版本的 HTML

&#; XHTML Transitional &#; XHTML Strict &#; XHTML Frameset

  XHTML Transitional 包含 HTML Transitional 中的全部標記和屬性引入 XHTML Transitional 標准的目的是使現有 HTML 設計人員和開發人員無需經歷太多的痛苦就能遷移到 XHTML

  XHTML Strict 與 XHTML Transitional 的不同之處在於它在文檔結構和表示形式之間實施了一種更為明顯的分離與 XHTML Transitional 不同XHTML Strict 強迫您使用層疊樣式表來控制頁的外觀

  XHTML Frameset 文檔意在成為使用 標記將浏覽器劃分為多個框架的文檔(XHTML Transitional 和 Strict 頁不能包含 標記)

  WC 還發布了 XHTML 以作為推薦標准( 日)XHTML 非常類似於 XHTML Strict二者的主要區別在於可以用附加模塊擴展 XHTML 以便支持新元素例如可以生成特定的 XHTML 該頁還包含 MathML(數學標記語言)SVG(可伸縮向量語言)或創建的自定義模塊中的元素

  最後WC 正在制訂 XHTML 推薦標准因為 XHTML 仍然處於起草階段並且當前沒有 Web 浏覽器支持該標准所以我們不在本文討論它

  ASPNET 框架和 Visual Studio NET 面向 XHTML Transitional該標准是 XHTML 標准中限制性最低的而且它是與現有 HTML 頁最兼容的標准但是還可以生成面向 XHTML Strict 標准甚至 XHTML 標准的 ASPNET 頁(請參閱後面的配置 XHTML 一致性一節)

  (請注意默認情況下ASPNET 框架的 Beta 版本面向 XHTML ASPNET 框架的最終版本將面向 XHTML Transitional

創建 XHTML 頁

  與 HTML 頁不同XHTML 頁必須是標准格式且有效的 XML 文檔XHTML 推薦標准的第 部分對 HTML 和 XHTML 之間的區別進行了總結這裡給出生成有效 XHTML 頁的最重要需求的列表

  頁必須包含有效的 XHTML DOCTYPE

  有效的 XHTML 頁必須在其任何內容之前包含一個 XHTML DOCTYPE當在 Visual Studio NET 或 Microsoft Visual Web Developer 中創建新的 ASPNET 頁時該頁中將自動包含 XHTML Transitional 的正確的 DOCTYPE下面列出四個標准的 XHTML DOCTYPE

  XHTML Transitional

  

  XHTML Strict

  

  XHTML Frameset

  

  XHTML

  

  向頁中添加 DOCTYPE 會影響該頁在浏覽器中的呈現方式請參閱以下標題為XHTML 和 DOCTYPE 切換的一節

  根元素必須引用 XHTML 命名空間

  XHTML 頁的開始 標記必須指定默認命名空間 以下是 XHTML Transitional 頁的有效開始 標記的示例

  

  所有元素和屬性名都必須小寫

  XML 區分大小寫因此

  標記和

  標記之間存在差異只有前者是有效的 XHTML 段落標記

  屬性值必須始終放在引號內

  確保始終將屬性值放在雙引號或單引號中例如以下是無效的 XHTML

  Next

  在該示例中href 屬性缺少引號以下代碼是有效的 XHTML

  Next

  您可以通過選擇菜單選項 ToolsOptionsFormat將 Visual Studio NET 和 Visual Web Developer 配置為自動將屬性值放在引號內

  所有具有開始標記的非空元素都必須具有匹配的結束標記

  如果具有開始

  標記則必須包含結束

標記來標記段落的結束對於根本不包含任何內容的標記例如
標記可同時提供開始和結束標記

也可以使用空元素簡寫

  為使 XHTML 頁與現有的 HTML 浏覽器向後兼容需要小心處理打開和關閉標記的方式例如現有 HTML 浏覽器傾向於將開始和結束

標記錯誤地解釋為兩個
元素因此您應當使用空元素簡寫

  此外除非您小心地在結束斜槓之前添加一個空格否則現有 HTML 浏覽器在處理空元素簡寫時會出現問題因此應當使用 [space] />(而不是)向頁中添加
元素。TW.WinGWIt.COM

  不得存在重疊標記。

  可以使標記嵌套,但是不允許使標記重疊。例如,以下 XHTML 是有效的。

  This is bold and italic

  但是,以下 XHTML 是無效的。

  This is bold and italic

  不得存在屬性最簡化。

  所有屬性都必須具有值,即使該值看起來有一點兒奇怪。例如,標記是無效的 XHTML,因為 checked 屬性不具有值。該標記應當寫成

  必須使用 id 屬性而不是 name 屬性。

  在 HTML 中,可以使用 name 屬性來標識 、

  、

、、