XHTML结构化:使用XHTML按标准重构网站.doc

上传人:hw****26 文档编号:3544045 上传时间:2019-06-03 格式:DOC 页数:4 大小:29KB
下载 相关 举报
XHTML结构化:使用XHTML按标准重构网站.doc_第1页
第1页 / 共4页
XHTML结构化:使用XHTML按标准重构网站.doc_第2页
第2页 / 共4页
XHTML结构化:使用XHTML按标准重构网站.doc_第3页
第3页 / 共4页
XHTML结构化:使用XHTML按标准重构网站.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、 XHTML 结构化:使用 XHTML 按标准重构网站.我们曾经为本节撰写的标题是:“XHTML:简单的规则,容易的方针。 ”原因之一是,本节讨论的规则和方针是简单和容易的。原因之二是,一本简单和容易的 WEB 设计图书,就像超级市场的新式的免费商品一样,虽然常见却可以有效地吸引人的眼球,这样的东西可以刺激人的兴趣,并且鼓励人们尝试。我确实希望本节的内容可以激发你的兴趣,并鼓励你去尝试。为什么这么说呢?因为一旦你掌握了本章包含的简单容易的理念,你就会重新思考网页运作的方式,并开始改变建造它们的方法。然而我并不希望你只是将代码重新改写一边。我希望你可以实实在在地以另一种方式思考和工作。另一方面,

2、重构才是XHTML 真正的意义。在本章,我们将研究结构化标记的机制和涵义。如果你正在将网站标准融入你的开发项目,你或许会觉得本章的内容有些熟悉。不过即便是这方面的老手,也会从本章发现意外的收获。XHTML 规则概要将传统的 HTML 转换为 XHTML 1.0 是快捷且无痛的,只要你遵守一些简单的规则和容易的方针。不管是否使用过 HTML,都不会妨碍你使用 XHTML。使用恰当的文档类型声明和命名空间。 使用 meta 元素声明你的内容类型。 使用小写字母书写所有的元素和属性。 为所有的属性值加引号。 为所有的属性分配值。 关闭所有的标签。 使用空格和斜线关闭空标签。 不要在注释中写双下划线。

3、 确保小于号及和号为同时,避免使用已被废弃的 HTML 元素比如,或者无语义的元素比如,来模拟其实不存在的逻辑结构。比如,不要像这样做:我的主题介绍性文字补充性的观点相关文字根据它们的意义使用元素,而不是根据它们的外观我们中一些人已经陷在了一个坏习惯中,当我们仅仅需要一个大号字的文本时使用 h1,或者在我们需要在前面加一个圆点符号时使用 li。就像我们在前面的章节讨论过的,浏览器一直都习惯于将设计属性强加于 HTML 元素之上。我们都一直习惯于认为,h1 意味着大号字,而 li 意味着圆点,或者 blockquote 意味着文本缩进。我们中的大多数人还在使用结构化元素模拟表现效果的方式来胡乱地

4、写作 HTML。同样地,假如设计师希望所有的标题使用相同的字号,她会将所有的标题设置为 h1,即使这么做毫无结构化语义可言。这是主标题,在我将文本按照提纲格式组织的情况下。这不是主标题,但是我希望它与上面的标题使用一样的字体,但是我不知该如何使用 CSS。这根本不是一个标题。但是我非常希望页面中的文字使用相同的字体,以达到我希望的,如果我了解 CSS,就可以在不打乱文档结构的情况下达到这个设计。 我们必须把我们的小把戏放到一边,然后开始根据元素的语义来使用它们,而不是根据它们看上去的样子。实际上,h1 可以成为你希望的任何样子。通过 CSS,h1 可以成为非粗体的小号的罗马字体,而 p 文本可

5、以成为粗体的大号字,li 也可以没有圆点(你或者可以使用小猫小狗或者公司标志的 PNG,GIF 或者 JPEG 图片取而代之)等等。从今天开始,我们将要使用 CSS 来决定元素的外观。我们甚至可以根据元素在页面中或者在站点中所在的位置来改变它们的外观。 CSS 可以将表现从结构中彻底抽离,并且允许你按照你喜欢的样式来格式化任何元素。h1, h2, h3, h4, h5, h6 font-family: georgia, palatino, “New Century Schoolbook“, times, serif; font-weight: normal; font-size: 2em; m

6、argin-top: 1em; margin-bottom: 0; 你为什么要这么做呢?这么做的目的是为了在图形浏览器中获得品牌化的外观和感觉的同时,在文本浏览器、无线设备、HTML格式的电子邮件中,文档的结构得到保留。我们并不想在关于 XHTML 的章节讲述更多 CSS 方面的技术。我们只是希望展示文档结构和可视表达是两个完全不同的事物,并且结构化元素应被用来转换文本,而不是强加显示效果。使用结构化元素,而不是无意义的垃圾由于我们已经忘记或者根本不知道 HTML 和XHTML 的用途是传达结构化的意义,许多 HTML 争论者这样使用标签来插入列表: 项目一项目二项目三考虑一下使用有序或者无序

7、列表取而代之: 项目一项目二项目三“ 但是 li 给我一个圆点,而我不需要圆点!“你也许会这么说。根据上面的章节,CSS 不对元素被期望的外观做任何假定。它等待你来告诉它你所期待的元素外观。关闭圆点是 CSS 的最基本的能力。它有能力使列表看起来和普通文本没有两样,也可以使列表看起来像图形导航栏,具有完整的反转效果。所以,请使用列表元素来标记列表。相似地,使用 strong 来代替 b,使用 em 代替 i,等等。在大多数桌面浏览器缺省状态下,strong 的显示效果和 b 相同,而 em 和 i 相同,同时也可以在不破坏文档结构的情况下创建你期待的视觉效果。尽管 CSS 不会为任何元素的显示

8、作假设,浏览器却作了很多假设,并且我们还没有碰到一个将 strong 显示为其他效果而不是粗体字的浏览器(除非是被设计师创建的 CSS 指示以其他方式显示) 。假如你担心某个陌生的浏览器不会将 strong 显示为粗体字,你可以编写这么一条 CSS 规则:strong font-weight: bold; font-style: normal; 视觉元素和结构 web 标准不仅要求我们使用何种科技,而且还要遵守使用这些技术的方式。使用 XHTML 来编写标记,同时使用 CSS 来处理一部分或者全部的布局,并不一定会使站点更易用更轻便,同时节约多少带宽。就像我们在早期使用的技术那样,XHTML

9、和 CSS也会被误用和滥用。冗长的 XHTML 和冗长的 HTML 一样,都会浪费用户的带宽和时间。冗长的过度的CSS 也不能完全的代替表现 HTML 代码;这只不过是一种糟糕的东西被另一种代替了而已。无论如何,不要跳过本节。阅读本章将增进你的技能,为你的网页减肥,并且使你对标记与设计之间的差异有更清晰的认识。本章中的理念是易于学习的,但是却能极大的提高网站的性能,以及设计、制作和更新网站的便利性。在本节,你将学到如何撰写合乎逻辑的、紧凑的标记,使得你有能力将带宽流量降低 50%左右,在减少服务器负担和压力的同时,减少网站的加载时间。通过去除那些表现元素,并改掉那些没有任何好处的坏习惯,我们就

10、可以达到上述的目的。这些坏习惯折磨着网络中的许多站点,特别是那些将CSS 代码与主要基于表格的布局混合在一起的站点。这种做法笨拙且不经济,即使是对于那些在其他领域很有经验的设计师来说。同时,出现这个问题的几率是均等的,不论是那些手写代码的站点,还是利用可见编辑工具,比如 Dreamweaver 和 GoLive,来创建的站点。本节会提出这些常见的错误,这样你就可以识别和防范它们,并且学会如何改正错误。我们详细阐述唯一标识符属性(id) - ,并展示它如何使你可以编写极其紧凑的 XHTML 代码,不论你创建的是混合布局还是纯粹的 CSS 布局。每个元素都必须结构化吗?正如上一节中我们讲到的那样,

11、每个元素都可以被结构化,CSS 可使得一个有序或无序的列表显示为彻头彻尾的导航栏,其中还拥有反转按钮效果。文档的内容可以通过普通的元素进行标记,这些元素通过特定的结构化属性标志来指示出它们在网站设计中所扮演的语义角色。我们在公元 2006 年创建了 W3School 的第一个中文测试版,我们在一开始就使用了 CSS 进行布局,并使用 XHTML 来结构化文档。每一个其中的元素都是结构化的,从标题到列表,乃至段落。你可以在 w3school 的每个页面看到具有反转效果的首页按钮和二级菜单按钮。下面是这两个组件的 XHTML 代码:w3school 在线教程html 教程XML 教程浏览器脚本服务

12、器脚本dot net 教程多媒体教程建站手册 div、id 和其他帮手如果被正确地使用,div 可以成为结构化标记的好帮手,而 id 则是一种令人惊讶的小工具,它使你有能力编写极其紧凑的XTHML,以及巧妙地利用 CSS,并通过标准文档对象模型(DOM)向站点添加复杂精巧的行为。W3C 在其最新的 XHTML2 草案的 XHTML 结构模型中这样定义 div:div 元素,通过与 id、class 及 role 属性配合,提供向文档添加额外结构的通用机制。这个元素不会将表现的风格定义于内容。所以,创作者可以通过将这个元素与样式表、xml:lang、属性等配合使用,使 XHTML 适应他们自身的

13、需求和口味。div 是division 的简写。division 意为分割、区域、分组。比方说,当你将一系列的链接组合在一起,就形成了文档的一个 division。确定结构的通用机制所有编写 HTML 的人对段落和标题这类常见的元素都很熟悉,但是有些人对 div 就可能不那么熟悉了。在 W3C 的描述中我们可以找到理解 div 元素的关键, “一种添加结构的通用机制。 ”在本站的首页,我们将教程目录列表封装于一个 div 之中,这是因为教程目录并不是正文的任何元素的一部分。其中,h2 元素标记每个教程的标题,同时 ul 列表元素标记每个教程的详细列表。但是在更大更具体的意义中,这个教程目录扮演

14、了一个结构化的角色,即二级导航组件。为了强调这个角色,我们使用 navsecond 这个 id 标注这个 div。HTML 教程 HTMLXHTMLCSSTCP/IPXML 教程XMLXSL. . .你可以使用任何命名。“Gladys“和“orangebox“ 都完全符号 XHTML 的命名规则。但是语义的(semantic)或者元结构化(meta-structural)的命名是最好的(即能够解释其中元素所执行功能的命名) 。当客户决定使用蓝色时,你会觉得将站点某部分命名为 orangebox(橙色框)会非常地傻。下面的这种情况中,你会觉得自己更傻,当距离最后交付只有六个月时,你开始调校样式表

15、,却怎么也想不起来“Gladys“(格拉迪斯,女子名)到底代表导航区、侧栏还是搜索框。因此,将 id 标注为“menu“、“content“ 或者“searchform“会帮助你回忆。进一步讲,标记不等同于设计,结构良好的的页面可以被格式化为你希望的任何样子。这样做的结果是,无论你使用纯粹 CSS 布局或者混合布局,你都会彻底改掉使用表现标记进行思考和创作的习惯。id Vs. classid 属性对于 XHTML 并不新鲜;class 属性或者div 元素也一样。它们都可以回溯到 HTML 时代。id 属性为一个元素分配一个唯一的名字。每个名字只能在被赋予的页面使用一次。 (例如,假如你的页面

16、包含 id 为 content 的 div,那么另外一个 div 或者其他别的元素都不能使用这个名字。相反地,class 属性可以被一遍有一遍地使用在页面中(例如,页面中的五个段落都可以使用名为“small“或者“footnote“的 class 名称) 。下面的标记将有助于阐明 id 和 class 的差异:Search form components go here. Thissection of the page is unique. Todays blog post Blog content goes here. Here is another paragraph of blog co

17、ntent. Just as there can be many paragraphs on a page, so too there may be many entries in a blog. A blog page could use multiple instances of the class “blogentry“ (or any other class). Yesterdays blog post In fact, here we are inside another div of class “blogentry.“ They reproduce like rabbits. I

18、f there are ten blog posts on this page, there might be ten divs of class “blogentry“ as well.在这个例子中,名为 searchform 的 div 被用来封装包含搜索表单的页面区域,而 div class=“blogentry“则用来封装 blog 中的每个文章入口。在页面中只有一个搜索表单,所以我们选择id 标注这个唯一的组件。但是 blog 则拥有许多的(文章)入口,所以 class 属性被应用于这种情况。同样地,新闻站点通常拥有多个 div,这些 div 的 class 可以命名为 “newsi

19、tem“或者别的什么。然而不是所有的站点都需要 div。blog 站点可以仅仅使用 h1, H2, 和 h3 标题和段落,新闻站点也一样。我们在这里展示class 为 blogentry 的 div,并不是鼓励你在站点中塞满 div,而仅仅是为了向你展示这个原则:在同一个HTML 文档中,使用多次 class,但只能使用一次 id。粘性贴纸理论把 id 属性比作粘性贴纸来进行思考应该是有帮助的。我会在冰箱上拍一张贴纸来提醒自己去买牛奶,电话上面也会贴一张,提醒我给一位逾期缴纳的客户打电话。还有一个,被贴在账本夹上面,来提醒我这个月 15 号之前必须缴纳的账单。id 同样会标注文档中的特殊区域,

20、以便提醒你哪个区域需要特殊的处理,在这点上,id 属性与粘性贴纸是相似的。为了实现所谓的特殊处理,你需要使用这个特殊的 id 在样式表中编写若干规则,或者在 JavaScript文件中添加几行代码。比方说,你的 CSS 文件中有一些特定的规则,这些规则只应用于 id 名为searchform 的 div 内的元素。当某一 id 属性作为一个有磁性的东西(磁铁)被用于一系列特定的 CSS 规则时,它被称为 CSS 选择器。有许多创建选择器的方法,不过 id 是很容易使用的,并且有多的用途。id 的力量 id 属性不可思议地强有力。它具有以下的能力:作为样式表选择器,使我们有能力创作紧凑的最小化的

21、 XHTML。 作为超文本的目标锚,取代过时的 name 属性。 作为从基于 DOM 的脚本来定位特定元素的方法。 作为对象元素的名称。 作为一种综合用途处理 (general purpose processing)的工具(在 W3C 的例子中, “当把数据从 HTML 页面中提取到数据库,或将 HTML 文档转换为其他格式等情况下,作为域识别工具来使用。 ”) 。 id 的规则 id 值必须以字母或者下划线开始;不能以数字开始。虽然W3C 验证不会捕获这个错误,但是 XML 解析器会的。同时,如果你将 id 与 JavaScript 在表单中配合使用,那么 id 名称和值必须是合法的 Jav

22、aScript 变量。空格和连字号,特别是连字号,是不被允许的。不仅如此,将下划线用于 class 或者 id 名都不是个好主意,这是由于在 CSS2.0(以及某些浏览器)中的限制。语义标记和可用性现在,我们已经讨论过了用途广泛的 XHTML 元素(特别是 div 和 id) ,让我们在看看关于本站首页的例子。首先让我们回顾一下这个位于报头位置的菜单:html 教程XML 教程浏览器脚本服务器脚本dot net 教程多媒体教程建站手册我们拥有七个链接,每个链接被分配一个 id 来对应相应的内容:例如名为 h 的 id 对应 HTML 教程,以此类推。同时这些链接被封装于名为 menu 的列表元

23、素内,名为 menu 的 id 标明了这个列表的职能 - 一个菜单列表,而更外围的名为 navfirst 的 div 则用来标注页面中的这个节(section),将之与诸如主要内容(maincontent)、侧栏(sidebar)和页脚(footer) 之类的元素区别开来。div 和 ul 两个元素提供了真实的结构,即标明了其中内容的职能(导航栏)和它在文档中所属的位置(页面的报头位置) 。相反地,传统的表格布局无法提供有关数据的任何语义信息,同时会轻松地吃掉三倍的带宽。请注意这些标记没有包含 img 标签,所有不会牵扯到 width、height、background 或者border 等等

24、属性。同时它没有使用表格单元格,也不会涉及相关的一系列属性。它非常地干净小巧,同时提供了所有可供理解它的信息。通过与 CSS 配合使用,这些标记向网站访问者提供了可靠的可快速加载的布局。同时也提供了为访问者创造更灵活多样的外观的可能性。并且在无 CSS 的环境中,我们的结构良好的标记依然可以毫不混乱地提供所有的内容。目光敏锐的读者也许已经发现,a 元素中包含的文本并没有被浏览器显示出来,这也要归功于结构化标记与 CSS 的完美配合,使我们可以通过几行 CSS 规则来定义一个触发机制,当用户使用图形浏览器时,他们会看到漂亮的导航按钮,而当用户使用纯文本的阅读器时,他们也可以得到全部的文本,这样,对所有的用户来说,内容都是一样的。并且,由于标记没有包含图像和表格单元,这个导航栏组件可以在不改变结构的情况下被站点内的任何页面所引用,同时赋予它不同的视觉效果。简而言之,通过对代码进行模块化,我们提高了代码的复用性。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 精品笔记

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。