HTML DOCTYPE总结
来源:互联网 发布:微信解封软件 编辑:程序博客网 时间:2024/06/11 17:23
这两天花了点时间在doctype上,把零散的知识归了下档,记录下doctype的总结。
html的doctype本身的功能声明了当前html的版本:包括可使用的tag,tag是否需要闭合,是否大小写敏感,属性是否需要双引号等等。但是由于历史原因,某些浏览器有精神分裂症,导致其游走在正常状态(standards mode)和变态状态(quirks mode)之间。所以不同的doctype又会触发某些浏览器的quirks mode,这个是doctype的另一个功能:让浏览器渲染引擎选择用什么模式来渲染页面。
doctyp的语法:
常规的语法有2种:
<!DOCTYPE root-element PUBLIC "FPI" ["URI"] [
<!-- internal subset declarations -->
]>
或者
<!DOCTYPE root-element SYSTEM "URI" [
<!-- internal subset declarations -->
]>
root-element指的是当前doucment的根元素(html就是html)。SYSTEM和PUBLIC表示是哪种类型的dtd:一种是内部系统的(private system),一种是公开的(open to the public)。如果选择SYSTEM后面应该跟着写上URI。如果选择PUBLIC后面必须有一个FPI (Formal Public Identifier),然后再是URI。
过度型(Transitional)
允许使用过期的标签,不允许使用Framesets
框架型(Frameset)
如果使用frames,必须使用这种dtd
XHTML 1.0 DTDs
严格型(Strict)
不允许使用过期的用于表现层的标签(如<font>),不允许使用Framesets。还必须符合xhtml的严格标准,比如必须要有html,head,body,doctype。每个标签必须闭合。所有必须小写,等等。
过度型(Transitional)
必须符合xhtml的严格标准,但是允许使用过期的标签。
框架型(Frameset)
同上,但是允许使用frames
XHTML 1.1 DTD
XHTML 1.1 is the most current finalized revision of XHTML, introducing support for XHTML Modularization. XHTML 1.1 has the stringency of XHTML 1.0 Strict.
下面归纳了下比较通用的规则:
1.通常FPI存在,但是uri不存在或者不写doctype会触发quirks mode。
2.对于具有3种mode的browser,触发all most standard mode的doctype是html4.0 html4.01 xhtml1.0的过渡型.
Firefox, Safari, Chrome, Opera (since 7.5), IE8 and IE9存在all most standard mode。
3.IE6的standard mode,doctype必须是第一行
注释写在doctype之前(或者xml的声明<?xml version="1.0" encoding="iso-8859-1"?>:是xhmtl的情况下)会触发quirks mode。IE7不存在这个情况。
4.Windows IE 6 and 7, Opera prior to 7.5 and Konqueror的standard mode更接近于all most standard mode。
最后想说doctype尽量写常见的几种,这样避免IE不同版本的众多不同mode。
html的doctype本身的功能声明了当前html的版本:包括可使用的tag,tag是否需要闭合,是否大小写敏感,属性是否需要双引号等等。但是由于历史原因,某些浏览器有精神分裂症,导致其游走在正常状态(standards mode)和变态状态(quirks mode)之间。所以不同的doctype又会触发某些浏览器的quirks mode,这个是doctype的另一个功能:让浏览器渲染引擎选择用什么模式来渲染页面。
doctyp的语法:
常规的语法有2种:
<!DOCTYPE root-element PUBLIC "FPI" ["URI"] [
<!-- internal subset declarations -->
]>
或者
<!DOCTYPE root-element SYSTEM "URI" [
<!-- internal subset declarations -->
]>
root-element指的是当前doucment的根元素(html就是html)。SYSTEM和PUBLIC表示是哪种类型的dtd:一种是内部系统的(private system),一种是公开的(open to the public)。如果选择SYSTEM后面应该跟着写上URI。如果选择PUBLIC后面必须有一个FPI (Formal Public Identifier),然后再是URI。
HTML 4.01 DTDs
严格型(Strict)
不允许使用过期的用于表现层的标签(如<font>),不允许使用Framesets
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
过度型(Transitional)
允许使用过期的标签,不允许使用Framesets
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
框架型(Frameset)
如果使用frames,必须使用这种dtd
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
XHTML 1.0 DTDs
严格型(Strict)
不允许使用过期的用于表现层的标签(如<font>),不允许使用Framesets。还必须符合xhtml的严格标准,比如必须要有html,head,body,doctype。每个标签必须闭合。所有必须小写,等等。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
过度型(Transitional)
必须符合xhtml的严格标准,但是允许使用过期的标签。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
框架型(Frameset)
同上,但是允许使用frames
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
XHTML 1.1 DTD
XHTML 1.1 is the most current finalized revision of XHTML, introducing support for XHTML Modularization. XHTML 1.1 has the stringency of XHTML 1.0 Strict.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"><html lang="ar" dir="rtl" xmlns="http://www.w3.org/1999/xhtml">
下面归纳了下比较通用的规则:
1.通常FPI存在,但是uri不存在或者不写doctype会触发quirks mode。
2.对于具有3种mode的browser,触发all most standard mode的doctype是html4.0 html4.01 xhtml1.0的过渡型.
Firefox, Safari, Chrome, Opera (since 7.5), IE8 and IE9存在all most standard mode。
3.IE6的standard mode,doctype必须是第一行
注释写在doctype之前(或者xml的声明<?xml version="1.0" encoding="iso-8859-1"?>:是xhmtl的情况下)会触发quirks mode。IE7不存在这个情况。
4.Windows IE 6 and 7, Opera prior to 7.5 and Konqueror的standard mode更接近于all most standard mode。
最后想说doctype尽量写常见的几种,这样避免IE不同版本的众多不同mode。
- HTML DOCTYPE总结
- HTML DOCTYPE
- DOCTYPE! HTML
- HTML DOCTYPE
- <!DocType Html>
- HTML DOCTYPE
- <!DOCTYPE html>
- <!DOCTYPE html>
- <!DOCTYPE html>
- HTML <!DOCTYPE>
- <!DOCTYPE html>
- HTML DOCTYPE
- <!DOCTYPE html>
- <!DOCTYPE html>
- HTML-DOCtype
- <!DOCTYPE HTML>
- Doctype总结
- 【html】<!DOCTYPE html>很重要
- 独立的存储单元是用来控制这些器件的,被称之为特殊功能寄存器(SFR)
- XML是什么,它可以做什么?——写给XML入门者 .
- typedef和#define的用法与区别
- N7系统VC6中添加OCX出现“不支持此接口” 问题的解决方法
- SK Comms信息外泄事件使韩国企业开始提高安全预算
- HTML DOCTYPE总结
- 什么是CoreData FrameWork ?
- 浅谈返回值类型: json与html
- Flex
- Vim for Windows XP
- UIScrollView分页的实现
- share data between build-in and module
- hdu 3952 Fruit Ninja
- 独立集,覆盖集,支配集,最大团,最大匹配