DOCTYPE、DTD、SGML等
DOCTYPE、严格模式和混杂模式
< ! DOCTYPE > 声明在文档的第一行。
它的作用是:告诉浏览器要以什么模式来解析文档。
包含两种模式:严格模式与混杂模式。
严格模式有时也叫标准模式,混杂模式有时也叫兼容模式。
严格模式与混杂模式:
- 严格模式:渲染方式和JS引擎的解析方式以浏览器的最高标准执行
- 混杂模式:向后兼容,防止浏览器无法兼容页面。
DTD(Document Type Definition)介绍
DTD,即Document Type Definition的缩写,中文是文档类型定义。
定义:
- DTD是一组机器可读的规则,是对HTML文档的声明,会影响浏览器的渲染模式
- DTD定义了XML或HTML特定版本中的所有允许元素及它们属性和层次关系
- 解析网页时,浏览器会使用该规则检查页面的有效性并采取一定的规则
为什么HTML5不需要引入DTD
原因:
因为HTML5不再基于SGML,所以不需要再引入DTD。只需要< !DOCTYPE >声明告诉浏览器以何种模式解析HTML文档。
SGML的相关介绍在下文。
当然,HTML4.01就都是基于SGML的,所以需要引入DTD。
从DTD的定义:DTD定义XML或HTML特定版本中的… ,我们也能发现强调的DTD适用的是HTML的特定版本。那很好理解,HTML5就不是DTD适用的HTML特定版本咯 ~ 。但最主要的原因还是HTML5不基于SGML,所以不需要引入DTD。
SGML、HTML、XML、XHTML
- SGML - Standard Generalized Markup Language(标准通用标记语言)是一种定义电子文档结构和描述其内容的国际标准语言,是所有电子文档标记语言的起源。
- HTML - Hyper Text Markup Language(超文本标记语言)
- XML - Extensible Markup Language(可拓展标记语言)
- XHTML - eXtensible HyperText Markup Language (可扩展超文本标记语言)
XML与HTML的区别:
- XML的标签是可自己创建的;HTML的标签都是现有固定的。
- XML的标签数量无限多;HTML标签数量是有限的。
XHTML与HTML的区别:
- XHTML标签必须都是小写
- XHTML标签都有结束标签
其实XHTML和HTML没有什么本质区别,只是写法上比HTML有更严格的要求。