Web设计小组

Web创作常见问题解答:入门


英语-荷兰语-法国
目录-完整FAQ(HTML)-整个常见问题解答(文本)
上一节-下一节

本文档回答了网络作者经常提出的问题。虽然它的重点是HTML相关的问题,但此FAQ也回答了一些与CSS、HTTP、JavaScript、服务器配置等相关的问题。

本文件由Darin McGrew保管<darin@htmlhelp.com>并定期发布到新闻组comp.infosystems.www.authoring.html.上次更新时间为2007年4月26日。

第3节:入门

  1. 每个人都用什么来编写HTML?
  2. 如何显示HTML示例而不将其解释为文档的一部分?
  3. 如何在HTML中获取特殊字符?
  4. 我应该在属性值周围加引号吗?
  5. 如何在HTML中包含注释?
  6. 如何避免使用整个URL?
  7. 我应该用斜线结束我的URL吗?
  8. 如何检查错误?
  9. 什么是DOCTYPE?我用哪一个?

以下问题已移至常见问题解答的另一部分。

3.1. 每个人都用什么来编写HTML?

对于哪种工具最适合使用,每个人都有不同的偏好他们。请记住,该工具通常要求您了解的HTML越少,HTML的输出就越差。换句话说,如果你花时间学习一点HTML。

另请参见

3.2. 如何显示HTML示例而不将其解释为文档的一部分?

在HTML示例中,首先将“&”字符替换为“&amp;”出现在任何地方。然后将“<”字符替换为“&lt;”和“>”字符以同样的方式使用“&gt;”。

请注意,使用代码和/或元素时显示HTML示例。此外,下一个问答将解决更一般的代表问题HTML文档中的任意字符。

3.3. 如何在HTML中获取特殊字符?

上次问答解决了小于(“<”),大于的特殊情况('>')和与号('&')字符。一般来说,编写HTML最安全的方法是使用US-ASCII(ANSI X3.4,一种7位代码),使用HTML实体。

在许多实际应用中,使用8位字符也可以取得成功情况:Unix和MS-Windows(使用拉丁语-1),以及Mac(使用一些保留意见)。

拉丁语-1(ISO-8859-1)适用于英语、法语、德语、,西班牙语、葡萄牙语和其他各种西欧语言。(它不适用于中欧和东欧的许多语言其他地方,更不用说非罗马字母书写的语言了。)在Web上,这些是唯一可靠支持的字符。特别是,MS-Windows中使用的字符128到159不是ISO-8859-1代码集的一部分,不会显示为Windows用户期待。这些字符包括em短划线、en短划线、卷曲引号、项目符号和商标符号;既不是实际字符(单个字节),也不是它的&#nnn;在HTML中,十进制等效值是正确的。此外,ISO-8859-1不包括欧元字符。(有关此类字符的更多信息,请参阅此答案的最后一段。)

在自己的字符代码不是ISO-8859-1的平台上,例如MS-DOS和Mac OS,可能存在问题:必须使用文本传输方法在平台自己的代码和ISO-8859-1之间转换(例如,Fetch forMac),或单独转换(例如,GNU重新编码)。使用7位ASCII实体可以避免这些问题,但此常见问题解答太小,无法涵盖其他详细说明可能性。

如果您在具有自己字符代码的平台上运行web服务器(httpd)不是ISO-8859-1,比如Mac或IBM大型机,那么它的工作就是发送文本文档时将其转换为ISO-8859-1代码的服务器连接到网络。

如果要使用ISO-8859-1中没有的字符,则必须使用HTML 4或选择适当的替代字符集,而不是HTML 3.2(对于某些字符集,也要选择编码系统),并使用指定此的一种或另一种方法。

另请参见

3.4. 我应该在属性值周围加引号吗?

引用属性值从来都是正确的,许多人建议引用所有属性值,即使在引号技术上是可选。XHTML 1.0要求引用所有属性值。与以前的HTML规范一样,HTML4允许保留属性值在许多情况下(例如,当值仅包含字母时)不加引号和数字)。

当属性值包含双引号时要小心,因为例如,当您想要“喜剧之王”这样的ALT文本时鞠躬”。人类可以解析图像,知道引用的内容在哪里材质结束,但浏览器不能。您必须对属性进行编码值,以便第一个内部引号不会终止值过早。主要有两种技术:

根据规范,这两种方法都是正确的受当前浏览器支持,但在某些浏览器中,两者都不受支持早期浏览器。唯一真正安全的建议是重写文本,以便值不需要包含引号,或更改内部双引号单引号,如:ALT=“‘喜剧之王’鞠躬”。

另请参见

3.5. 如何在HTML中包含注释?

从技术上讲,由于HTML是SGML应用程序,所以HTML使用SGML注释语法。然而,完整的语法很复杂,浏览器在总之,它是完整的。因此,使用以下简化规则创建HTML注释都有有效的语法并在浏览器中工作:

HTML注释以“<!--",以“-->",并且不包含“--“或”>"评论中的任意位置。

以下是HTML注释的示例:

不要在标签内添加注释(例如,在“<"和“>“)在HTML标记中。

另请参见

3.6. 如何避免使用整个URL?

URL结构定义了一个层次结构(或关系)类似于中的子目录(或文件夹)层次结构大多数计算机操作系统使用的文件系统。URL的段由斜杠字符(“/”)分隔。导航URL层次结构时,URL的最后一段(即最后一个斜杠后的所有内容)类似于文件系统。URL的其他段类似于子目录和文件系统中的文件夹。

相对URL省略了定位引用的文档。假设省略的信息与基本文档相同包含相对URL的。这减少了引用相关文档所需的URL的长度,并允许通过多个访问方案访问文档树(例如,“文件”、“http”和“ftp”)或在不更改任何这些文档中嵌入的URL。

在浏览器可以使用相对URL之前,它必须解析相对URLURL以生成绝对URL。如果相对URL以双斜杠开头(例如。,//www.htmlhelp.com/faq/html/),然后它将只继承基本URL的方案。如果相对URL以单斜杠开头(例如。,/常见问题/html/),然后它将继承基本URL的方案和网络位置。

如果相对URL不是以斜杠开头(例如。,全部.html,./all.html../html/),然后它有一个相对路径,并按如下方式进行解析。

  1. 浏览器将删除底部最后一个斜杠后的所有内容文档的URL并将相对URL附加到结果。
  2. 删除每个“.”段(例如。,./all.html与相同全部.html、和./指当前的“目录”URL层次结构中的级别)。
  3. 每个“..”段在URL层次结构中向上移动一级;删除“..”段及其前面的段(例如。,文件夹//全部.html与相同全部.html、和../指的是父母URL层次结构中的“目录”级别)。

一些例子可能有助于明确这一点。如果基本文档是<网址:http://www.htmlhelp.com/faq/html/basics.html>,然后

全部.html./all.html
请参阅<URL:http://www.htmlhelp.com/faq/html/all.html>
./
参考<URL:http://www.htmlhelp.com/faq/html/>
../
参考<URL:http://www.htmlhelp.com/faq/>
../cgifaq.html
参考<URL:http://www.htmlhelp.com/faq/cgifaq.html>
../../参考/
参考<URL:http://www.htmlhelp.com/reference/>

请注意,浏览器解析的是相对URL,而不是服务器。服务器只看到结果的绝对URL。此外,相对URL在URL层次结构中导航。URL层次结构和服务器之间的关系(如果有)文件系统层次结构无关。

另请参见

3.7. 我应该用斜线结束我的URL吗?

URL结构定义了类似于文件系统的层次结构子目录或文件夹的层次结构。URL的段由斜杠字符(“/”)分隔。在URL层次结构中导航时,URL的最后一段(即最后一个斜杠后的所有内容)类似于文件系统。URL的其他段类似于子目录和文件系统中的文件夹。

解析相对URL时(请参阅前一个问题),浏览器的第一步是删除当前文档的URL。如果当前文档的URL以斜杠结尾,则最后一段URL的(“文件”)为空。如果删除最后一个斜杠,则URL的最后一段为no更长的空值;它是URL中最后一个斜杠后面的任何内容。删除斜杠会更改URL;修改后的URL引用不同的文档和相对URL的解析方式不同。

例如,URL的最后一段http://www.htmlhelp.com/faq/html/为空;最后一个斜杠后面什么也没有。在本文档中,相对URL全部.html决心http://www.htmlhelp.com/faq/html/all.html(现有文件)。如果省略了最后一个斜杠,则修改后的URL的最后一段http://www.htmlhelp.com/faq/html是“html”。在这个(不存在的)文档中,相对URL全部.html会决定http://www.htmlhelp.com/faq/all.html(另一份不存在的文件)。

当他们收到一个缺少最后斜杠的请求时,web服务器不能忽略丢失的斜杠,而只是发送文档。这样做会破坏文档中的所有相对URL。通常,服务器配置为在其接收这样的请求。为了响应重定向消息,浏览器请求正确的URL,然后服务器发送请求的文档。(顺便说一句,浏览器不会也不能自己更正URL;只有服务器才能确定URL是否缺少其最终版本斜线。)

这个错误更正过程意味着没有最后斜杠的URL仍然有效。然而,这个过程浪费了时间和网络资源。如果在适当的时候包含最后一个斜杠,那么浏览器不会需要向服务器发送第二个请求。

例外情况是,当您引用仅包含主机名的URL时(例如。,http://www.htmlhelp.com).在这种情况下,浏览器将假定您需要主索引(“/”)从服务器,并且不必包括最后一个斜杠。然而,无论如何,许多人都认为它是一种很好的风格。

另请参见

3.8. 如何检查错误?

HTML验证器根据的正式定义检查HTML文档HTML语法,然后输出错误列表。验证对于在未知情况下提供最佳的正确机会非常重要浏览器(既有您尚未看到的现有浏览器,也有未来的浏览器还没有写出来)。

HTML检查器(linter)也很有用。这些程序检查文档中的特定问题,包括一些是由无效标记引起的,另一些是由常见的浏览器错误引起的。跳棋可能会传递一些无效的文档,也可能会使一些有效的文档失败。

所有验证器功能等效;在他们报告时样式可能不同,如果输入相同,他们会发现相同的错误。不同的检查器被编程来查找不同的问题,因此报告之间会有很大的差异。此外,一些被称为验证器的程序(例如“CSE HTML Validator”)真的是过梁/检查程序。它们仍然有用,但不应与真正的HTML混淆验证器。

当第一次检查网站是否有错误时,这通常很有用确定标记中重复出现的常见问题。在出现这些问题的任何地方修复它们(如果可能),然后返回以确定并修复剩余的问题。

链接检查器跟踪站点上的所有链接并报告哪些链接不再工作。CSS检查器报告CSS样式表的问题。

另请参见

3.9. 什么是DOCTYPE?我用哪一个?

根据HTML标准,每个HTML文档都以DOCTYPE开头声明,指定文档使用的HTML版本。最初,DOCTYPE声明仅由基于SGML的工具使用类似于HTML验证器,它需要确定HTML的哪个版本使用(或声称使用)的文件。

如今,许多浏览器使用文档的DOCTYPE声明来决定是否使用更严格、更标准的布局模式,或使用“quirks”布局模式尝试模仿旧的,有缺陷的浏览器。

另请参见

目录-完整FAQ(HTML)-完整常见问题解答(文本)
上一节-下一节