DOCTYPE的类型
最近被面试问到了HTML的DOCTYPE有几种类型,直接就蒙了。没办法总结一下吧。
分类
总体上应该分为三类: HTML5,HTML4.0,XHTML。
HTML5
HTML5模式是目前最常用的模式。直接在DOCTYPE后面添加html即可。
<!DOCTYPE html>
HTML4.0 模式
分为三种模式:严格模式(strict),过渡模式(Transitional), Frameset模式。区别主要在于是不是允许展示性和弃用的元素,是否允许框架集
- 严格模式:不允许展示性、弃用元素和框架集
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
- 过渡模式:允许展示性、弃用元素(比如font,color等),不允许框架集
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- Frameset模式:允许展示性、弃用元素,允许框架集
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
XHTML 模式
XHTML是一种比较严格的模式,所有元素必须以XML格式编写。分类和HTML4.0比较类似,分为严格模式、过渡模式、Frameset模式,同时添加了1.1模式。
- 严格模式:不允许展示性、弃用元素和框架集
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
- 过渡模式:允许展示性、弃用元素(比如font,color等),不允许框架集
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- Frameset模式:允许展示性、弃用元素,允许框架集
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
- 1.1模式:和严格模式类似,但允许添加模型,即扩展、简化、定制之类的。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
HTML和XHTML编写区别
XHTML要求编写符合XML的语法。主要区别
- XML区分大小写
- XML标签必须闭合,单元素需要以/作为闭合结尾,嵌套不能出错。
- XML属性必须放在引号中
- XML属性必须有属性值,不能省略
- XML中空格不会被自动删除
附: 参考