使用 Web 标准生成 ASP.NET 2.0 Web 站点 |
| 作者:Stephen Walther 来源:Stephen Walther 发布时间:2006-4-27 1:19:21 |
|
<frameset> 标记)。 W3C 还发布了 XHTML 1.1 以作为推荐标准(2001 年 5 月 31 日)。XHTML 1.1 非常类似于 XHTML 1.0 Strict。二者的主要区别在于,可以用附加模块扩展 XHTML 1.1 以便支持新元素。例如,可以生成特定的 XHTML 1.1 页,该页还包含 MathML(数学标记语言)、SVG(可伸缩向量语言)或创建的自定义模块中的元素。 最后,W3C 正在制订 XHTML 2.0 推荐标准。因为 XHTML 2.0 仍然处于起草阶段,并且当前没有 Web 浏览器支持该标准,所以我们不在本文讨论它。 ASP.NET 2.0 框架和 Visual Studio .NET 2005 面向 XHTML 1.0 Transitional。该标准是 XHTML 标准中限制性最低的,而且它是与现有 HTML 页最兼容的标准。但是,还可以生成面向 XHTML 1.0 Strict 标准甚至 XHTML 1.1 标准的 ASP.NET 2.0 页(请参阅后面的“配置 XHTML 一致性”一节)。 (请注意,默认情况下,ASP.NET 框架的 Beta 2 版本面向 XHTML 1.1。 ASP.NET 2.0 框架的最终版本将面向 XHTML 1.0 Transitional。) 返回页首 创建 XHTML 页 与 HTML 页不同,XHTML 页必须是标准格式且有效的 XML 文档。XHTML 1.0 推荐标准的第 4 部分对 HTML 和 XHTML 之间的区别进行了总结。这里给出生成有效 XHTML 页的最重要需求的列表: • 页必须包含有效的 XHTML DOCTYPE。 有效的 XHTML 页必须在其任何内容之前包含一个 XHTML DOCTYPE。当在 Visual Studio .NET 2005 或 Microsoft Visual Web Developer 中创建新的 ASP.NET 页时,该页中将自动包含 XHTML 1.0 Transitional 的正确的 DOCTYPE。下面列出四个标准的 XHTML DOCTYPE: XHTML 1.0 Transitional <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> XHTML 1.0 Strict <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> XHTML 1.0 Frameset <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> XHTML 1.1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 向页中添加 DOCTYPE 会影响该页在浏览器中的呈现方式。请参阅以下标题为“XHTML 和 DOCTYPE 切换”的一节。 • 根元素必须引用 XHTML 命名空间。 XHTML 页的开始 <html> 标记必须指定默认命名空间 http://www.w3.org/1999/xhtml。以下是 XHTML 1.0 Transitional 页的有效开始 <html> 标记的示例: <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> • 所有元素和属性名都必须小写。 XML 区分大小写。因此,在 <p> 标记和 <P> 标记之间存在差异。只有前者是有效的 XHTML 段落标记。 • 属性值必须始终放在引号内。 确保始终将属性值放在双引号或单引号中。例如,以下是无效的 XHTML。 <a href=SomePage.aspx>Next</a> 在该示例中,href 属性缺少引号。以下代码是有效的 XHTML。 <a href=SomePage.aspx>Next</a> 您可以通过选择菜单选项 Tools、Options、Format,将 Visual Studio .NET 2005 和 Visual Web Developer 配置为自动将属性值放在引号内。 • 所有具有开始标记的非空元素都必须具有匹配的结束标记。 如果具有开始 <p> 标记,则必须包含结束 </p> 标记来标记段落的结束。对于根本不包含任何内容的标记,例如 <br> 标记,可同时提供开始和结束标记 <br></br>,也可以使用空元素简写 。 为使 XHTML 页与现有的 HTML 浏览器向后兼容,需要小心处理打开和关闭标记的方式。例如,现有 HTML 浏览器倾向于将开始和结束 <br> </br> 标记错误地解释为两个 <br> 元素。因此,您应当使用空元素简写</br>。 此外,除非您小心地在结束斜杠之前添加一个空格,否则现有 HTML 浏览器在处理空元素简写时会出现问题。因此,应当使用 <BR< b>[space] />(而不是)向页中添加 <br> 元素。 • 不得存在重叠标记。 可以使标记嵌套,但是不允许使标记重叠。例如,以下 XHTML 是有效的。 <b><i>This is bold and italic</i></b> 但是,以下 XHTML 是无效的。 <i><b>This is bold and italic</i></b> • 不得存在属性最简化。 所有属性都必须具有值,即使该值看起来有一点儿奇怪。例如,标记<input type="checkbox" checked />是无效的 XHTML,因为 checked 属性不具有值。该标记应当写成<input type="checkbox" checked />。 • 必须使用 id 属性而不是 name 属性。 在 HTML 中,可以使用 name 属性来标识 <a>、<applet>、<form>、<frame>、<iframe>、<img> 和 <map> 元素。尽管可以使用 name 属性生成 XHTML 1.0 Transitional 页,但在 XHTML 1.0 Strict 和 XHTML 1.1 标准中已经将 name 属性删除。您应当改而使用 id 属性来标识这些元素。 • 必须将 <script> 和 <style> 元素的内容包装到 CDATA 节中。 如果在脚本或样式表中使用特殊字符(例如 < 或 &)或实体引用(例如 < 或 &),则需要将脚本或样式表的内容标记为 CDATA(字符数据)节,如下所示。 <script type="text/javascript"> <![CDATA[ function isLess(a, b) { if (a < b) return true; } ]]> </script> 使用 CDATA 节并非对所有浏览器都有效。例如,Internet Explorer 会将 <script> 标记中的 CDATA 节视为语法错误。可以通过添加 JavaScript 注释避免该问题,如下所示。 <script type="text/javascript"> /* <![CDATA[ */ function isLess(a, b) { if (a < b) return true; } /* ]]> */ </script> JavaScript 使用 /* 和 */ 来标志注释的开始和结束。因此,CDATA 节对 JavaScript 隐藏,但不对分析该页的浏览器隐藏。总之,较好的做法是将样式规则和脚本放在外部文件中,而从 XHTML 页中引用这些文件。通过使用外部样式表和脚本,能够避免上述所有问题。 返回页首 XHTML 和 ASP.NET 控件 默认情况下,ASP.NET 2.0 框架中包含的每个 ASP.NET 控件都呈现有效的 XHTML。换句话说,向页中添加 ASP.NET 控件时,您无需完成任何特殊工作来生成有效的 XHTML 标记。例如,如果您向页中添加 GridView 控件,则 GridView 控件会生成有效的 XHTML 标记。 这里需要澄清三个要点。首先,包含 ASP.NET 控件的页的源代码不会通过 XHTML 验证。验证 ASP.NET 页时,需要验证页呈现的内容(在 Internet Explorer 中选择 View Source 时看到的所有内容),而不是该页的源代码。 其次,在创建 ASP.NET 页时,没有任何事情阻止您编写无效的 XHTML。您当然可以向 ASP.NET 页中添加希望添加的任何标记。例如,如果向页中添加 标记,那么页将不会通过 XHTML 1.0 Strict 验证。 最后,当您使用自定义 ASP. 上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] 下一页 |
| [] [返回上一页] [打 印] |
|
文章评论 |
