使用 XHTML 重构网站的一些规则和概要

news/2024/7/8 4:56:22 标签: xhtml, 浏览器, css, html, 文档, 图形
htmledit_views">

XHTML 规则概要

1、使用恰当的文档类型声明和命名空间
2、使用meta元素声明你的内容类型
3、使用小写字母书写所有的元素和属性
4、为所有的属性值加引号
5、为所有的属性分配值
6、关闭所有的标签
7、使用空格和斜线关闭空标签
8、不要在注释中写双下划线
9、确保小于号及和号为<和&

Unicode 和其他字符集

XML、XHTML、和HTML 4.0 文档的默认字符集是 Unicode。
Unicode是一套全面的字符集,它为每个字符提供了一个特定的唯一的数字,不论平台、程序和语言。Unicode 也是我们拥有的最接近通用字母表的事物,尽管它并不是一个字母表,而是一套数字映射方案。
尽管 Unicode 是 web 文档默认的字符集,开发人员依然可以自由地选择更适合他们的其他字符集。比方说,美国和西欧的网站常常使用 ISO-8859-1 (Latin-1) 编码,而中华人民共和国的国家标准是 gb2312

为表达语义而标记文档,而不是为了样式

记住:请最大限度地使用 CSS 来进行布局。在 web 标准的世界里,XHTML 标记与表现无关,它只与文档结构有关。

结构良好的文档可以向html" title=浏览器>浏览器传达尽可能多的语义,不论是html" title=浏览器>浏览器位于掌上电脑还是时髦的桌面图形html" title=浏览器>浏览器。结构良好的文档都能向用户传达可视化的语义,即使是在老的html" title=浏览器>浏览器,或是在被用户关闭了 CSS 的现代html" title=浏览器>浏览器中。

下面有一些提示,可以帮助你通过更结构化的方式进行思维:

提纲内的色彩

在语法学校,我们中的大部分人都被迫使用标准的提纲格式来写文章。现在,我们成为了设计师,可以多么自由地摆脱提纲的限制,然后大胆地投身于独特的个人表达的自由领域(也许我们的宣传册和商业站点还不是那么独特和个人化)。但是至少我们不会再受到提纲的困扰了。

实际上,依照 HTML,我们应该将内容结构化为有组织的层级。在html" title=浏览器>浏览器不支持 CSS 的时期,我们无法在交付可供销售的布局的同时做到这一点。但是今天,在将我们的设计不折不扣地实现的同时,我们有能力交付内在结构良好的文档

当你将供网络使用的文本进行标记,或者当你将已有的文本文档转换为网页时,请使用传统提纲的这些条目进行思考。

<h1>我的主题</h1>
<p>介绍性文字</p>
<h2>补充性的观点</h2>
<p>相关文字</p>

同时,避免使用已被废弃的 HTML 元素比如 <font>,或者无语义的元素比如 <br />,来模拟其实不存在的逻辑结构。

比如,不要像这样做:

<font size="7">我的主题</font><br />
介绍性文字<br /><br />
<font size="6">补充性的观点</font><br />
相关文字<br />

根据它们的意义使用元素,而不是根据它们的外观

我们中一些人已经陷在了一个坏习惯中,当我们仅仅需要一个大号字的文本时使用h1,或者在我们需要在前面加一个圆点符号时使用 li。就像我们在前面的章节讨论过的,html" title=浏览器>浏览器一直都习惯于将设计属性强加于 HTML 元素之上。我们都一直习惯于认为,h1 意味着大号字,而li意味着圆点,或者 blockquote 意味着文本缩进。我们中的大多数人还在使用结构化元素模拟表现效果的方式来胡乱地写作 HTML。

同样地,假如设计师希望所有的标题使用相同的字号,她会将所有的标题设置为 h1,即使这么做毫无结构化语义可言。

<h1>这是主标题,在我将文本按照提纲格式组织的情况下。</h1>
<h1>这不是主标题,但是我希望它与上面的标题使用一样的字体,但是我不知该如何使用CSS。</h1>
<h1>这根本不是一个标题。但是我非常希望页面中的文字使用相同的字体,以达到我希望的,
如果我了解CSS,就可以在不打乱文档结构的情况下达到这个设计。</h1>

我们必须把我们的小把戏放到一边,然后开始根据元素的语义来使用它们,而不是根据它们看上去的样子。实际上,h1可以成为你希望的任何样子。通过 CSS,h1 可以成为非粗体的小号的罗马字体,而 p 文本可以成为粗体的大号字,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;
	margin-top: 1em;
	margin-bottom: 0;
	}

你为什么要这么做呢?这么做的目的是为了在图形html" title=浏览器>浏览器中获得品牌化的外观和感觉的同时,在文本html" title=浏览器>浏览器、无线设备、HTML 格式的电子邮件中,文档的结构得到保留。

我们并不想在关于 XHTML 的章节讲述更多 CSS 方面的技术。我们只是希望展示文档结构和可视表达是两个完全不同的事物,并且结构化元素应被用来转换文本,而不是强加显示效果。

使用结构化元素,而不是无意义的垃圾

由于我们已经忘记或者根本不知道 HTML 和 XHTML 的用途是传达结构化的意义,许多 HTML 争论者这样使用标签来插入列表:

项目一<br />
项目二<br />
项目三<br />

考虑一下使用有序或者无序列表取而代之:

<ul>
<li>项目一</li>
<li>项目二</li>
<li>项目三</li>
</ul>

"但是li给我一个圆点,而我不需要圆点!"你也许会这么说。根据上面的章节,CSS不对元素被期望的外观做任何假定。它等待你来告诉它你所期待的元素外观。关闭圆点是 CSS 的最基本的能力。它有能力使列表看起来和普通文本没有两样,也可以使列表看起来像图形导航栏,具有完整的反转效果。

所以,请使用列表元素来标记列表。相似地,使用 strong 来代替 b,使用 em 代替 i,等等。在大多数桌面html" title=浏览器>浏览器缺省状态下,strong 的显示效果和 b 相同,而 em 和 i 相同,同时也可以在不破坏文档结构的情况下创建你期待的视觉效果。

尽管 CSS 不会为任何元素的显示作假设,html" title=浏览器>浏览器却作了很多假设,并且我们还没有碰到一个将 strong 显示为其他效果而不是粗体字的html" title=浏览器>浏览器(除非是被设计师创建的 CSS 指示以其他方式显示)。假如你担心某个陌生的html" title=浏览器>浏览器不会将 strong 显示为粗体字,你可以编写这么一条 CSS 规则:

strong {
	font-weight: bold;
	font-style: normal;
	}

视觉元素和结构

web 标准不仅要求我们使用何种科技,而且还要遵守使用这些技术的方式。使用 XHTML 来编写标记,同时使用 CSS 来处理一部分或者全部的布局,并不一定会使站点更易用更轻便,同时节约多少带宽。就像我们在早期使用的技术那样,XHTML 和 CSS 也会被误用和滥用。冗长的 XHTML 和冗长的 HTML 一样,都会浪费用户的带宽和时间。冗长的过度的 CSS 也不能完全的代替表现 HTML 代码;这只不过是一种糟糕的东西被另一种代替了而已。

提纲内的色彩

在语法学校,我们中的大部分人都被迫使用标准的提纲格式来写文章。现在,我们成为了设计师,可以多么自由地摆脱提纲的限制,然后大胆地投身于独特的个人表达的自由领域(也许我们的宣传册和商业站点还不是那么独特和个人化)。但是至少我们不会再受到提纲的困扰了。

实际上,依照 HTML,我们应该将内容结构化为有组织的层级。在html" title=浏览器>浏览器不支持 CSS 的时期,我们无法在交付可供销售的布局的同时做到这一点。但是今天,在将我们的设计不折不扣地实现的同时,我们有能力交付内在结构良好的文档

当你将供网络使用的文本进行标记,或者当你将已有的文本文档转换为网页时,请使用传统提纲的这些条目进行思考。

<h1>我的主题</h1>
<p>介绍性文字</p>
<h2>补充性的观点</h2>
<p>相关文字</p>

同时,避免使用已被废弃的 HTML 元素比如 <font>,或者无语义的元素比如 <br />,来模拟其实不存在的逻辑结构。

比如,不要像这样做:

<font size="7">我的主题</font><br />
介绍性文字<br /><br />
<font size="6">补充性的观点</font><br />
相关文字<br />

根据它们的意义使用元素,而不是根据它们的外观

我们中一些人已经陷在了一个坏习惯中,当我们仅仅需要一个大号字的文本时使用h1,或者在我们需要在前面加一个圆点符号时使用 li。就像我们在前面的章节讨论过的,html" title=浏览器>浏览器一直都习惯于将设计属性强加于 HTML 元素之上。我们都一直习惯于认为,h1 意味着大号字,而li意味着圆点,或者 blockquote 意味着文本缩进。我们中的大多数人还在使用结构化元素模拟表现效果的方式来胡乱地写作 HTML。

同样地,假如设计师希望所有的标题使用相同的字号,她会将所有的标题设置为 h1,即使这么做毫无结构化语义可言。

<h1>这是主标题,在我将文本按照提纲格式组织的情况下。</h1>
<h1>这不是主标题,但是我希望它与上面的标题使用一样的字体,但是我不知该如何使用CSS。</h1>
<h1>这根本不是一个标题。但是我非常希望页面中的文字使用相同的字体,以达到我希望的,
如果我了解CSS,就可以在不打乱文档结构的情况下达到这个设计。</h1>

我们必须把我们的小把戏放到一边,然后开始根据元素的语义来使用它们,而不是根据它们看上去的样子。实际上,h1可以成为你希望的任何样子。通过 CSS,h1 可以成为非粗体的小号的罗马字体,而 p 文本可以成为粗体的大号字,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;
	margin-top: 1em;
	margin-bottom: 0;
	}

你为什么要这么做呢?这么做的目的是为了在图形html" title=浏览器>浏览器中获得品牌化的外观和感觉的同时,在文本html" title=浏览器>浏览器、无线设备、HTML 格式的电子邮件中,文档的结构得到保留。

我们并不想在关于 XHTML 的章节讲述更多 CSS 方面的技术。我们只是希望展示文档结构和可视表达是两个完全不同的事物,并且结构化元素应被用来转换文本,而不是强加显示效果。

使用结构化元素,而不是无意义的垃圾

由于我们已经忘记或者根本不知道 HTML 和 XHTML 的用途是传达结构化的意义,许多 HTML 争论者这样使用标签来插入列表:

项目一<br />
项目二<br />
项目三<br />

考虑一下使用有序或者无序列表取而代之:

<ul>
<li>项目一</li>
<li>项目二</li>
<li>项目三</li>
</ul>

"但是li给我一个圆点,而我不需要圆点!"你也许会这么说。根据上面的章节,CSS不对元素被期望的外观做任何假定。它等待你来告诉它你所期待的元素外观。关闭圆点是 CSS 的最基本的能力。它有能力使列表看起来和普通文本没有两样,也可以使列表看起来像图形导航栏,具有完整的反转效果。

所以,请使用列表元素来标记列表。相似地,使用 strong 来代替 b,使用 em 代替 i,等等。在大多数桌面html" title=浏览器>浏览器缺省状态下,strong 的显示效果和 b 相同,而 em 和 i 相同,同时也可以在不破坏文档结构的情况下创建你期待的视觉效果。

尽管 CSS 不会为任何元素的显示作假设,html" title=浏览器>浏览器却作了很多假设,并且我们还没有碰到一个将 strong 显示为其他效果而不是粗体字的html" title=浏览器>浏览器(除非是被设计师创建的 CSS 指示以其他方式显示)。假如你担心某个陌生的html" title=浏览器>浏览器不会将 strong 显示为粗体字,你可以编写这么一条 CSS 规则:

strong {
	font-weight: bold;
	font-style: normal;
	}

视觉元素和结构

web 标准不仅要求我们使用何种科技,而且还要遵守使用这些技术的方式。使用 XHTML 来编写标记,同时使用 CSS 来处理一部分或者全部的布局,并不一定会使站点更易用更轻便,同时节约多少带宽。就像我们在早期使用的技术那样,XHTML 和 CSS 也会被误用和滥用。冗长的 XHTML 和冗长的 HTML 一样,都会浪费用户的带宽和时间。冗长的过度的 CSS 也不能完全的代替表现 HTML 代码;这只不过是一种糟糕的东西被另一种代替了而已。



http://www.niftyadmin.cn/n/1732434.html

相关文章

HTML5中的Application Cache概念

HTML5中的Application Cache概念我们知道缓存技术对于提高我们的应用程序性能有着非常重要的作用&#xff0c;主流的编程语言基本上都有相应的缓存技术比如ASP.NET,JAVA,PHP等主流编程语言&#xff0c;但是对于前端的开发&#xff0c;我们一般很少有接触缓存的概念&#xff0c;…

Html5本地存储中的localstorage,sessionstorage和本地数据库

对于刚开始学习Html5的人来说&#xff0c;本地存储绝对是一个让人非常兴奋的概念&#xff0c;潜意识里很多人就会和快速&#xff0c;高性能等东西联系起来&#xff0c;因为总觉得不用把东西存储在服务器端是件很潮的事情&#xff0c;那么Html5中的本地存储究竟是怎么一回事呢&a…

Html5标签元素之Section元素

HTML Section 元素 (<section>) 表示文档中的一个区块&#xff08;或章节&#xff09;&#xff0c;比如&#xff0c;内容中的一个专题组&#xff0c;一般来说会有包含一个标题。 每个<section>的结构应该是相似的&#xff0c;通常会将一个标题元素(<h1>–<…

详解HTML 5 video 视频标签全属性

现在如果要在页面中使用video标签&#xff0c;需要考虑三种情况&#xff0c;支持Ogg Theora或者VP8&#xff08;如果这玩意儿没出事的话&#xff09;的&#xff08;Opera、Mozilla、Chrome&#xff09;&#xff0c;支持H.264的&#xff08;Safari、IE 9、Chrome&#xff09;&am…

Html5中使用canvas 实现矩形和线条的绘制

HTML5中通过 fillStyle和 strokeStyle 属性可以轻松的设置矩形的填充和线条。颜色值使用方法和 CSS 一样&#xff1a;十六进制数、rgb()、rgba() 和 hsla。通过 fillRect可以绘制带填充的矩形。使用 strokeRect 可以绘制只有边框没有填充的矩形。如果想清除部分 canvas 可以使用…

JavaScript中toFixed()方法的用法

这个是js中Number对象自带的toFixed的方法。用于进行四舍五入的操作。 例如&#xff1a; 5.05---->toFixed(1) 5.1 5.056--->toFixed(2) 5.06 可是&#xff0c;在实际使用过程中却遇到了问题。 avascript代码 var money0.00542;//0.006; alert(Number(money).toFi…

Html5常用文本定义(三)

1、i - 定义斜体文本&#xff08;i 是 italic 的缩写&#xff09;element/text/i.html<!doctype html><html><head> <title>i</title></head><body> <!-- i - 定义斜体文本&#xff08;i 是 italic 的缩写&#xff…

【IMX6ULL驱动开发学习】15.IMX6ULL驱动开发问题记录(sleep被kill_fasync打断)

发现问题的契机&#xff1a; 学习异步通知的时候&#xff0c;自己实现一个功能&#xff1a;按键控制蜂鸣器&#xff0c;同时LED灯在闪烁 结果&#xff1a;LED好像也同时被按键控制了 最后调试结果发现&#xff1a; 应用层的sleep被驱动层的kill_fasync打断&#xff0c;所以sle…