DOCTYPE是对Document type的缩写,说明用XHTML或者HTML是什么版本的。必须出现在<html>标签的前面,不需要关闭标签。

  <!DOCTYPE>声明不是标签,它指示Web浏览器关于页面使用哪个HTML版本编写的,请始终向HTML文档添加<!DOCTYPE>声明,这样浏览器才能获知文档类型,最终如何显示你的Web文档。所以,要想制作符合W3C标准的页面,DOCTYPE声明是必不可少的关键组成部分。

 缺少HTML Doctype造成的样式问题

  当使用XHTML标准开发的网页,第一行就是:

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

  这是xhtml的W3C标准。

  DOCTYPE指定了HTML文档遵循的文档类型定义(DTD),声明的写法遵循一定的规则,指出阅读程序用什么规则集解释文档中的标记。

规则样式:

  语法:

      HTML   顶级元素  可用性  “注册//组织//类型//标签//定义// 语言”   "URL"

  可能值:

  • 顶级元素:指定的DTD中声明的顶级元素类型,这与声明的SGML文档类型相对应。默认是:HTML
  • 可用性: 指定正式公开标示符(FPI)是可访问的对象还是系统资源。默认是:PUBLIC,可公开访问的对象。SYSTEM 系统资源,如本地文件或 URL。
  • 注册: 指定组织是否是国际化标准组织(ISO)。 + 默认。组织名称已注册。
  • 组织名称未注册:IETF和W3C不是注册的ISO组织。
  • 组织: 指定表明负责由!DOCTYPE声明引用的DTD的创建和维护的团队或组织名称。
  • 类型: 指定公开文本类,即所引用的对象类型。默认:DTD。
  • 标签: 指定公开文本描述,对所引用的公开文本唯一描述性名称。可附带版本号。默认:HTML
  • 定义: 指定文档类型定义。Frameset框架集文档。Strict排除所有W3C专家希望逐步淘汰的代表性属性和元素。Transition包含排除Frameset元素的全部内容。
  • 语言:指定公开文本语言,即创建所引用对象的自然语言编码系统。默认:EN.
  • URL: 指定所引用对象的位置。

(转自:http://www.cnblogs.com/tomatoxml/p/3585741.html)

  DTD(例子中的:xhtml1-transitional.dtd)即文档类型定义,包含文档的规划,浏览器根据定义的DTD来解释页面的标示,然后展现出来。

  xhtml1.0提供三种DTD声明可供选择:

  • Transitional: 包含所有HTML元素和属性,包含展示性和弃用的元素,不允许使用框架集(Framesets),必须以正确的格式来编写XML。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  • Strict: 包含所有HTML元素和属性,但是不包含展示性和弃用的元素(比如:font),不允许使用框架集(Framesets),必须以正确的格式来编写XML。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml/DTD/xhtml1-strict.dtd">
  • Frameset: 等同于XHTML 1.0 Transitional, 但是允许包含框架集内容。
<!DOCTYPE html PUBLIC "-//W3C//DTD//XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

  相比xhtml的三种DTD声明和HTML 4.01的三种声明,HTML5 中只有一种<!DOCTYPE>声明:

<!DOCTYPE html>

  HTML4.01中,<!DOCTYPE>声明引用DTD,因为HTML4.01是基于SGML,DTD规定了标记语言的规划,这样浏览器才能正确显示内容,HTML5不是基于SGML的,所以不需要引用DTD。

解释下关于XHTML1.0,HTML 4.0和HMTL5:

  XHTML 1.0 是对HTML 4.0按照XML标准要求的改造,是XML风格化的HTML4.01,而HTML5是下一代HTML,用来取代HTML 4.01。W3C 原本确实计划用 XHTML 系列替代 HTML 4.01,但 XHTML 系列实际上只活到了 1.1(1.1 和夭折的 1.2 已经体现出过分 XML 的迹象,而 W3C 的理想其实在疯狂的 XHTML 2 身上,当然,它没能诞生),还没脱离 HTML 4.01 的阴影就死了。还没等 XHTML 兴起,它的地位就被 HTML5 取代了。(摘自http://www.zhihu.com/question/20258628)

  在DOCTYPE声明后面的是一个XHTML的命名空间(namespace):

<html xmlns="http://www.w3.org/1999/xhtml">

  当需要使用符合XML规范的XHTML文档,则应该在<html>标签中使用xmlns属性。

检查工具:需要检查自己的页面是否符合在DOCTYPE中声明的标准,可以使用W3C提供的验证工具:http://validator.w3.org/

最新文章

  1. QTableWidget去除选中虚边框
  2. web接口开发与测试
  3. MY_FIRSH_MODULE
  4. POI文件导出至EXCEL,并弹出下载框
  5. iOS日常工作之常用宏定义大全
  6. 简单的php性能注意点
  7. 0808HTML
  8. hql 关联查询
  9. SCOI2016滚粗记
  10. 很好用的mybatis分页解决方案
  11. ASP终极防下载(转)
  12. (转)ASP.Net 学习路线
  13. JS函数的属性
  14. go-vim配置
  15. 15 Django REST Framework 给api添加自定义搜索条件
  16. HTML元素被定义为块级元素或内联元素。那么什么是块级元素,什么是内联元素呢
  17. RabbitMQ 消费消息
  18. ASP.NET CORE 2.0 发布到IIS,IIS如何设置环境变量来区分生产环境和测试环境
  19. IBatisNet动态update以及DateTime类型字段处理
  20. mybatis-generator 详细配置及使用,爬坑记录

热门文章

  1. LeetCode 简单 - 最大子序和(53)
  2. 小a的强迫症(组合数学)
  3. P1330 封锁阳光大学 DFS+染色
  4. 洛谷P3871 [TJOI2010]中位数(splay)
  5. ABAP术语-BW (Business Information Warehouse)
  6. spring mvc中几种获取request对象的方式
  7. 上传文件到阿里云linux服务器
  8. python中的&quot;is&quot;与&quot;==&quot;比较
  9. c#winform使用WebBrowser 大全
  10. 接口API封装中常见的HTTP状态码