Doctype以及标准、怪异模式
定义和用法
- <!DOCTYPE>申明必须是HTML文档的第一行,位于html标签之前
- <!DOCTYPE>不是html标签,它声明文档的解析类型,避免怪异模式, 在HTML4.01中,<!DOCTYPE>声明引用DTD,因为HTML 4.01基于SGML。DTD规定了标记语言的规则,这样浏览器才能正确的呈现内容。
- HTML5不基于SGML,所以不需要引用DTD
HTML4.01与HTML5之间的差异
在HTML4.01中有3中<!DOCTYPE>声明。HTML 5只有一种声明
提示:<!DOCTYPE>没有结束标签,对大小写不敏感,可以使用W3C验证器来检查是否编写了有效的html/xhtml文档
常用的DOCTYPE声明
HTML 4.01 strict:
该 DTD 包含所有 HTML 元素和属性,但不包括展示性的和弃用的元素(比如 font)。不允许框架集(Framesets)。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
HTML 4.01 Transitional:
该 DTD 包含所有 HTML 元素和属性,包括展示性的和弃用的元素(比如 font)。不允许框架集(Framesets)。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
HTML 4.01 Frameset:
该 DTD 等同于 HTML 4.01 Transitional,但允许框架集内容。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">
模式触发
- 触发标准模式:
- 加doctype声明
- 设置X-UA-Compatible触发
- 触发怪异模式:
- 无doctype声明,定义旧的html版本
- 加XML声明,在IE6下触发
- 在XML声明和XHTML的DOCTYPE之间加入HTML注释,可在ie7下触发
<?xml version="1.0" encoding="utf-8"?>
<!-- keep IE7 in quirks mode -->
<!DOCTYPE ...>
4. <!--->放在<!DOCTYPE...>前面
更多内容请参阅:
http://www.cnblogs.com/yuzhongwusan/archive/2012/02/17/2355695.html