HTML&XHTML权威指南:文档的内容

  • 来源: 学赛网 作者: 若水   2008-04-21/10:10
  •    在HTML 或XHTML 文档中,除标签以外,几乎所有部分都被定义为内容,而内容的大多数都是文本。和标签一样,文档的内容也使用一种特定的字符集来进行编码,默认设置为ISO -8859-1拉丁字符集。这个字符集是传统ASCII字符的一个超集,它还包含了一些必要的字符来支持西欧语言。如果键盘不允许直接输入用户需要的字符,可以通过字符实体来插入它们。 

        建议与控制

        对HTML或者 XHTML 文档加上标记时,最难记住的原则可能是:你加入的所有关于文本显示和格式化方面的标签都只不过是对浏览器的建议,它们并不能够明确地控制浏览器如何去显示文档。实际上,浏览器可以选择忽略全部标签,而对文档的内容只做它愿做的事情。更糟糕的是,用户(所有人!)都可以控制自己浏览器的文本显示特性。

        一定要习惯这种缺乏控制的感觉。用标记来控制文档外观的最好方法就是把精力集中在文档内容本身,而不是它最终看上去的样子。如果你发现自己总是在过度担心空格、对齐、文本的分割和字符的位置等,那肯定会十分痛苦。这样做肯定不是HTML 的本意。如果注重以一种吸引人的方式把信息发布给用户,并通过标签建议浏览器怎样才能最好地显示这些信息,那么你就是正在有效地使用HTML 或者XHTML,而且你的文档将会在很多种浏览器上非常好地显示出来。

        字符实体

        除普通文本外, HTML 和XHTML 还提供了一种显示特殊文本字符的方式,这些字符通常不能够包含在源文档里或者是有其他用途。一个很好的例子就是小于号(<)。在HTML中,它通常表示一个标签的开始,所以如果只是要简单地把它插入到文本中作为一部分的话,浏览器会感到十分困惑,并因此可能错误地解释你的文档。

        在HTML 和XHTML 中,"&"符号告诉浏览器此处使用的是特殊字符,也就是我们通常所说的字符实体。例如,"&lt;" 命令将在显示的文本中加入一个小于号。同样,"&gt;"命令将在文本中加入一个大于号,"&amp;"则加入一个"&"符号。在"&"符号和实体名称以及后面结尾的分号之间可以没有空格(分号不是特殊字符,通常不需要使用"&"符号来显示它)。[请参见第 16.3.7 小节“处理特殊字符”]

        还可以在 "&"符号后面放置一个"#"符号,并紧跟一个0~255 之间的数字,这个数字表示要加入的实体在字符集中的位置。所以,"&#60;"和"&lt;"的作用相同,它们都代表小于号。实际上,可以把HTML文档中的所有正常字符都替换成用"&"符号开头的特殊字符,比如,用"&#65;"代表大写的"A",或者用"& #97;"代表小写的"a",不过这看上去十分愚蠢。在附录F中可以找到一个关于所有字符及其名称和对应数字的列表。

        请记住,不是所有浏览器都能够显示所有的特殊字符。有些浏览器会忽略很多特殊字符,而另外一些字符在某些平台的字符集中根本就不可用。在决定使用某些少见的字符之前,一定要在很多浏览器中测试自己的文档。

        注释

        注释是另外一种文本内容,它出现在HTML 源文档中,但浏览器并不显示它们。注释都放在特殊的"<!--"和"-->"标记元素之间。浏览器将忽略这段注释文本。下面是一段关于注释的例子:
        <!-- This is a comment -->
        <!-- This is a
        multiple-line comment#p#分页标题#e#
        that ends on this line -->

        在"<!--"的后面和"-->"的前面必须有一个空格,你可以在其中放置任何内容。对于注释来说,最大的区别就是HTML 不允许对它进行嵌套。

        Internet Explorer 允许把注释放在特殊的<comment> 标签中。放在<comment> 和</comment>标签之间的所有内容都会被Internet Explorer忽略,但是所有其他浏览器都将显示这些内容。由于可能出现这种不期望的行为,因此不推荐用<comment>标签来标识注释。而是应该把注释放在"<!--"和"-->"中间。

        除了在源文档中有非常明显的作用外,许多Web服务器也利用注释来实现文档服务器端软件特有的特性。这些服务器可以扫描文档,从传统的HTML/XHTML注释中找到特定的字符序列,然后再根据嵌在注释中的命令采取相应的动作。这些动作可能是简单地包括其他文件中的文本(即所谓的服务器端包含,server-side include),也可能是复杂地执行其他命令去动态生成文档的内容。


    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多