html 各个版本和doctype整理
(技术大牛理解http://developer.51cto.com/art/201103/247880_all.htm)
Xhtml和html区别:
·HTML 1.0 -- 1993年6月,IETF发布
·HTML 2.0 -- 1995年11月,发布
·HTML 3.2 -- 1996年1月,W3C推荐标准
·HTML 4.0 -- 1997年12月,W3C推荐标准
·HTML 4.01 -- 1999年12月,W3C推荐标准
·HTML 5.0 -- 2008年8月,W3C工作草案
HTML 2.0 是过时的 HTML 版本,大概在1996年。
HTML3.2大概是在1997年那时候是一个没有style样式的年代。一些显示方式都是以属性标签,或属性来实现的。如:〈CENTER〉
XHTML 是最新的HTML版本。HTML 教程
但HTML 5并不是由W3C直接制定的,是不同浏览器厂商WHATWG进行制定的.
W3c上的验证问题
一个元素出现在比doctype声明的HTML版本更晚的规范中,就不解释呈现该元素吗?不会,当然不会!它照样会解释呈现该元素,别忘了伯斯塔尔法则,别忘了健壮性。浏览器在接收的时候必须要开放。因此,它不会检查任何格式类型,而验证器会(w3c的),验证器才关心格式类型。这才是存在doctype的真正原因。
W3c标准和浏览器上显示的一些区别
这也是为什么w3cshool上有些版本不支持的元素如center,font等仍然可以在xhtml 1.0 和html5 有其原有功能的原因。-----浏览器容错能力。也就是伯斯塔尔法则,又称健壮性法则,他的主要含义就是"发送时保守,接收时开放"。浏览器厂商都明白他们必须支持所有的版本,他们不会因为现在大家都用HTML4.1或者HTML5编写网站就不再支持HTML以前的版本。道理很简单,浏览器必须向后兼容。这就是浏览器"接收时开放"的精神的。
发送时保守"是告诫web开发人员的,你的HTML代码应该写的尽可能符合标准,能够方便别人(浏览器)去解析,
为什么要通过w3c的验证呢(很多都不通过w3c的验证)
如果你在设计页面的时候按照W3C标准的话,那么恭喜你:SEO(搜索引擎优化)的工作你已经完成了一半!为什么我会这么说呢?还有一半工作在哪呢?看了这篇文章以后你会不会按照W3C标准重构你的网站呢?且看我下面的观点。
XHTML
XHTML 1.0 使用 XML 对 HTML 4.01 进行了重新地表示。
作为一项 W3C 推荐,XHTML 1.0 发布于 2000 年 1 月 20 日。
Xhtml是以xml 为基础引入的具有良好编排行的新概念。是更为严格,更为纯净的html;
Xhtml区别1:大小写严格区分。Xhtml 元素名和属性必须小写。
2.对非空元素必须闭合标签空标签像
. 应该写为
,
3.属性引号不能省略
W3C 的标准化程序分为 7 个不同的步骤。
样式表可描述文档如何被显示、发音或打印 4.
大牛解释
XHTML 1.0与HTML4.01其实是一样的。我的意思是说,从字面上看这两个规范的内容是一样的,词汇表是一样的,所有的元素是一样,所有的属性也都是一样的。唯一一点不同之处,就是XHTML1.0要求使用XML语法。也就是说,所有属性都必须使用小写字母,所有元素也必须使用小写字母,所有属性值都必须加引号,你还得记着使用结束标签,记着对img和br要使用自结束标签。
XHTML 产生的原因
1.html的语法要求比较松散,对于网页编写者来说比较方便,但是对于机器来说就比较麻烦,对于传统的计算机来说,还有能力兼容松散语法,但对于许多其他设备,如手机,难度就比较大,因此产生了DTD定义规则,语法要求更加严格的xhtml。
2.xhtml的目标是取代html,xhtml是更严格更纯净的html版本,它与html4.01几乎是相同的。
http://baike.soso.com/v8351954.htm#para3
XML 会被用来描述和存储数据,而HTML 会被用来显示数据。
W3c有了xhtml为什么还要发展html5呢??
对XHTML1.1来说,唯一的变化是你必须把自己的文档标记为XML文档。把文档标记为XML后,Internet Explorer不能处理。当然,IE9是可以处理了,所以说XHTML 1.1有点脱离现实。
这也就有了后面浏览器厂商和w3c对于html发展产生了分歧。W3c主站继续xhtml方向扩展。最终浏览器厂商则自己来弄html扩展,也就是现在html5;不过后来w3c和浏览器厂商又同意一起来参与了html5扩展。
HTML5
HTML 5的另一个设计原理,它必须向前向后兼容,兼容未来的HTML版本
HTML 5增加了更多样化的API,提供了嵌入音频、视频、图片的函数、客户端数据存储,以及交互式文档。其他特性包括新的页面元素,比如
一些新的元素和属性,反映典型的现代用法网站。其中有些是技术上类似 Html5:支持已有的内容。(对浏览器而言,必须支持他们以前其他版本的要求。)。所以它对标签的大小写又不区分了。(用惯xhtml可能会不太习惯) 1.<imgsrc="foo"alt="bar"/> 2.<pclass="foo">Hello worldp> 3.<imgsrc="foo"alt="bar"> 4.<pclass="foo">Hello world 5.<IMGSRC="foo"ALT="bar"> 6.<PCLASS="foo">Hello worldP> 7.<imgsrc=fooalt=bar> 8.<pclass=foo>Hello worldp> 这几种语法在html5中都是没问题的 Doctype定义了您正在使用的 HTML 版本。各个版本的doctype定义 声明对大小写不敏感。 ???为什么不支持的模式下如strickt ,frameset照常可以使用 Strict, Transitional,frameset(三者之间的区别。) Html strict,xhtml strict 严格模式该 DTD 包含所有 HTML 元素和属性,但不包括展示性的和弃用的元素(比如 font,center)。不允许框架集(Framesets) Html transitional,xhtml transtional过度模式包括展示性的和弃用的元素(比如 font)。不允许框架集(Framesets) Frameset该 DTD 包含所有 HTML 元素和属性,包括展示性的和弃用的元素(比如 font)。包括展示性的和弃用的元素(比如 font)。允许框架集(Framesets) 但是大部分主流的浏览器都会容许某些的错误,这里的strict下不支持font是指不能通过w3c的验证,并可以成功显示出网页,即使网页的结构是不正确的。 Html4.01是标准模式,而html5 doctype是准标准模式 如果没有DOCTYPE,浏览器会进入一种被称为Quirks模式的怪异状态,在该模式下,浏览器的盒模型、样式解析、布局等都与标准规定的存在差异。浏览器就会进入Quirks怪异模式 随着HTML5的逐渐流行,很多网站都用上了HTML5规范来编写HTML代码,HTML5的HEAD区的写法跟XTHML有一些差别,下面就用对照的方法写出两者的差别,希望能对同学们编写HTML5代码起到帮助作用。
一些过时的HTML 4标记将取消。其中包括纯粹显示效果的标记,如和Doctype
HTML 4.01 Strict, Transitional, Frameset
"http://www.w3.org/TR/html4/strict.dtd">
"http://www.w3.org/TR/html4/loose.dtd">
"http://www.w3.org/TR/html4/frameset.dtd">
XHTML 1.0 Strict, Transitional, Frameset
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
XHTML 1.1 DTD
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
XHTML 1.1该 DTD 等同于 XHTML 1.0Strict,但允许添加模型(例如提供对东亚语系的 ruby 支持)。