页面编码的doctype声明

时间:2007-05-31 09:21:00 

虽然大多数web文档的顶部都有doctype声明,但很多人都没有注意它。它是在你新建一个文档时,由web创作软件草率处理的众多细节之一。

虽然doctype被许多人忽视,但在遵循标准的任何web文档中,它都是一项必需的元素。doctype会影响代码验证,并决定了浏览器最终如何显示你的web文档。

doctype的作用

doctype声明指出阅读程序应该用什么规则集来解释文档中的标记。在web文档的情况下,“阅读程序”通常是浏览器或者校验器这样的一个程序,“规则”则是w3c所发布的一个文档类型定义(dtd)中包含的规则。

每个dtd都包括一系列标记、attributes和properties,它们用于标记web文档的内容;此外还包括一些规则,它们规定了哪些标记能出现在其他哪些标记中。每个web建议标准(比如html 4 frameset和xhtml 1.0 transitional)都有自己的dtd。

假如文档中的标记不遵循doctype声明所指定的dtd,这个文档除了不能通过代码校验之外,还有可能无法在浏览器中正确显示。对于标记不一致的问题,浏览器相较于校验器来说更宽容。但是,不正确的doctype声明经常导致网页不正确显示,或者导致它们根本不能显示。

选择正确的doctype 

为了获得正确的doctype声明,关键就是让dtd与文档所遵循的标准对应。例如,假定文档遵循的是xhtml 1.0 strict标准,文档的doctype声明就应该引用相应的dtd。另一方面,如果doctype声明指定的是xhtml dtd,但文档包含的是旧式风格的html标记,就是不恰当的;类似地,如果doctype声明指定的是html dtd,但文档包含的是xhtml 1.0 strict标记,同样是不恰当的。

有的时候,也可以根本不使用一个doctype声明。如果没有指定有效的doctype声明,大多数浏览器都会使用一个内建的默认dtd。在这种情况下,浏览器会用内建的dtd来试着显示你所指定的标记。对于一些临时性的、匆忙拼凑的文档(这种文档有许多),你确实可以考虑省略doctype声明,并接受浏览器的默认显示。

完全可以从头编写一个doctype声明,并让它指向自己选择的一个dtd。然而,由于大多数web文档都需要遵循由w3c发布的某个国际公认的web标准,所以那些文档通常都要包含以下标准doctype声明之一:
html 2:


<!doctype html public "-/ietf/dtd html 2.0/en"> 



html 3.2:


<!doctype html public "-/w3c/dtd html 3.2 final/en"> 



html 4.01 strict:


<!doctype html public "-/w3c/dtd html 4.01/en"
"http://www.w3.org/tr/html4/strict.dtd"> 



html 4.01 transitional:


<!doctype html public "-/w3c/dtd html 4.01 transitional/en"
"http://www.w3.org/tr/html4/loose.dtd"> 



html 4.01 frameset:


<!doctype html public "-/w3c/dtd html 4.01 frameset/en"
"http://www.w3.org/tr/html4/frameset.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 transitional:


<!doctype html public "-/w3c/dtd xhtml 1.0 transitional/en"
"http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.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"> 



xhtml 1.1 plus mathml plus svg:


<!doctype html public
"-/w3c/dtd xhtml 1.1 plus mathml 2.0 plus svg 1.1/en"
"http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd"> 


除了上面列出的doctype声明,具有特殊要求的一些文档还使用了其他几种声明。

doctype声明通常是文档的第一行,要在<html>标记以及其他文档内容之前。注意,在xhtml文档中,doctype的前面偶尔会出现一条xml处理指令(也称为xml prolog):


<@xml version="1.0" encoding="utf-8"@> 


为了确保网页正确显示和顺利通过验证,使用正确的doctype是关键。与内容相反的、不正确的或者形式错误的doctype是大量问题的罪魁祸首。

标签:doctype,编码,dtd,doctype的作用
0
投稿

猜你喜欢

  • 完美解决go Fscanf 在读取文件时出现的问题

    2024-02-15 11:29:50
  • python实现双人版坦克大战游戏

    2022-08-30 06:52:57
  • Python操作多维数组输出和矩阵运算示例

    2022-11-30 03:44:18
  • 解决idea git切换多个分支后maven不生效的问题

    2023-06-28 17:48:13
  • 使用Python写一个贪吃蛇游戏实例代码

    2023-07-05 18:25:02
  • Python pandas库中isnull函数使用方法

    2023-11-21 06:44:12
  • python批量翻译excel表格中的英文

    2022-11-16 08:09:07
  • 五种提高 SQL 性能的方法

    2008-05-16 10:40:00
  • asp 小偷采集程序原理与常用函数方法

    2011-03-06 10:36:00
  • PHP图片库imagemagick安装方法

    2023-11-16 18:54:38
  • mac系统下Redis安装和使用步骤详解

    2022-11-29 11:54:21
  • HTML头部属性全接触

    2007-09-05 19:09:00
  • Oracle删除死锁进程的方法

    2024-01-20 13:30:33
  • Mysql中的事务是什么如何使用

    2024-01-21 18:42:26
  • 微信小程序使用npm支持踩坑

    2024-04-22 13:07:40
  • 10分钟快速上手VueRouter4.x教程

    2024-05-02 17:10:38
  • Python使用plt.boxplot() 参数绘制箱线图

    2022-06-03 16:30:09
  • Python异步爬取知乎热榜实例分享

    2022-02-26 04:48:47
  • 详解Python核心编程中的浅拷贝与深拷贝

    2021-05-04 15:44:09
  • MS-SQL Server 中单引号的两种处理方法

    2024-01-24 11:17:13
  • asp之家 网络编程 m.aspxhome.com