html4,xhtml,html5发展历史

SGML

SGML 是一种很强大但很复杂的标记语言,HTML、XML 就是从中衍生出来的。
SGML 的例子如下:
<QUOTE TYPE="example"> typically something like <ITALICS>this</ITALICS> </QUOTE>
SGML 最为强大和古老,XML 是 SGML 的一个子集,HTML 最初也试图成为 SGML 的一个子集。
 
实际上 W3C 下与网页(超文本)相关的标准有两个系列:HTML 系列和 XHTML 系列。前者从 HTML 第一版一直发展到 HTML 4.x、HTML5,而 XHTML 系列从 XHTML 1.0、1.1、2.0 跳跃到 HTML5 的一部分:所谓的“XHTML5”。HTML 系列的工作重点在于丰富与超文本相关的功能、标记,提供较好的兼容性,更加面向“人”;而 XHTML 系列的工作重点在于将 HTML 改为更加符合 XML 严格规范的格式,更加面向“机器”。

XML 的语法很严格,是 W3C 的宝贝,所以 W3C 试图把各种东西都变成 XML 的子集或应用,比如 MathML,SVG 等。可是其地位逐渐受到其他一些轻量标记语言的威胁。

从IETF到W3C:HTML 4之路

HTML 1并不曾存在,HTML的第一个官方版本就是由IETF(互联网工程任务组)推出的HTML 2.0。问世之前,这个版本中的很多细则已经被实现,比如,1994年的Mosaic浏览器已经实现了在文档中嵌入图片的方法,后来HTML 2.0便吸纳了img这个标签。

后来,W3C取代IETF的角色,成为HTML的标准组织,1990年代的后半页,HTML的版本被频繁修改,直到1999年的HTML 4.01, 至此,HTML到达了它的第一个拐点。

 

XHTML1.0:XML风格的HTML

浏览器的兼容性问题,有很大一部分的原因是,html标签书写的不规范,导致了各自解释的不同。xhtml的出现,就是要以xml的规范来重新改写html。

HTML在HTML 4.01之后的第一个修订版本就是XHTML 1.0。

XHTML 1.0是基于HTML 4.01的,并没有引入任何新标签或属性,唯一的区别是语法,HTML对语法比较随便,而 XHTML则要求XML般的严格语法。

使用严格的语法规范并非坏事,要求开发者使用单一的代码风格,比如,HTML4.01允许你使用大写或小写字母标识标记元素和属性,XHTML则只 允许小写字母。XHTML1.0的推出刚好碰上了CSS的崛起,Web开发设计者们开始意识到Web标准问题,基于XHTML的严格语法规范被视为编写 HTML代码的最佳实践。

W3C推出XHTML 1.1

如果说XHTML 1.0是XML风格的HTML,XHTML 1.1则是货真价实的XML。这意味着XHTML 1.1无法使用 text/htmlmime-type直接输出,然而,如果Web开发者使用XMLmime-type,则当时的主流浏览器,IE则压根不支持。看上去,W3C似乎正在与当时的Web脱节。

从WebApps1.0到HTML 5

从一开始,WHATWG就和W3C走不同的路线,W3C对问题的讨论是集体投票,而WHATWG则由主笔IanHickson定度。表面上看,W3C更民主,然而事实上,各种内部纷争会使一些决议限于泥潭,在WHATWG,事情的进展会更容易,不过,主笔的权力并非无限大,他们的委员会可以 对那些过于偏执的主笔进行弹劾。

一开始,WHATWG的主要工作包括两部分,Web Forms 2.0和Web Apps 1.0,它们都是HTML的扩展,后来,他们合并到一起成为现在的HTML 5规范。在WHATWG致力于HTML 5的同时,W3C继续他们的XHTML 2.0,然而,他们慢慢地陷入困境。

2006年10月,Web之父Tim Berners-Lee发表了一篇博客文章,表示,从HTML走向XML的路是行不通的,几个月后,W3C组建了一个新的HTML工作组,他们非常明智地 选择了WHATWG的成果作为基础。这一转变带来一些困惑,W3C同时进行这两套规范,XHTML2和HTML 5(注意,W3C的HTTML5在5之前有个空格,而WHATWG的HTML 5则没有空格),而WHATWG也在进行着同样的工作。

XHTML已死:XHTML语法永存

这一混乱局面到了2009年开始变得清晰,W3C宣布终止XHTML2的工作,这是一份关于XHTML2的迟到的讣告。这一消息被那些XML的反对 者视为珍宝,他们借此嘲笑那些使用XHTML1规范的人,然而他们似乎忘记了,XHTML1和XHTML2是截然不同的东西。于此同时,XHTML1规范的制定者担心,XHTML1中的严格语法规范会被HTML 5弃用,这种担心后来证明是多余的,HTML 5既支持松散语法,也支持XHTML1般的严格语 法。

<!DOCTYPE>

文档类型通常会出现在文档的第一行,它不是 HTML 标签;它是指示 web 浏览器关于页面使用哪个 HTML 版本进行编写的指令。

如果文档头的文档类型没有书写或者书写错误,浏览器都会采用兼容模式来解析。兼容模式会 兼容一些老的浏览器的标准。quirks mode(怪异模式)

在 HTML 4.01 中,<!DOCTYPE> 声明引用 DTD,因为 HTML 4.01 基于 SGML。DTD 规定了标记语言的规则,这样浏览器才能正确地呈现内容。

HTML5 不基于 SGML,所以不需要引用 DTD。

常用的 DOCTYPE 声明:

HTML 5:

<!DOCTYPE html>

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">

 

XHTML 1.0 Strict

该 DTD 包含所有 HTML 元素和属性,但不包括展示性的和弃用的元素(比如 font)。不允许框架集(Framesets)。必须以格式正确的 XML 来编写标记。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

XHTML 1.0 Transitional

该 DTD 包含所有 HTML 元素和属性,包括展示性的和弃用的元素(比如 font)。不允许框架集(Framesets)。必须以格式正确的 XML 来编写标记。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

XHTML 1.0 Frameset

该 DTD 等同于 XHTML 1.0 Transitional,但允许框架集内容。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

XHTML 1.1

该 DTD 等同于 XHTML 1.0 Strict,但允许添加模型(例如提供对东亚语系的 ruby 支持)。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

 

下面的表格列出了所有的 HTML5/HTML 4.01/XHTML 元素,以及它们会出现在什么文档类型 (DTD) 中:

标签HTML5HTML 4.01 / XHTML 1.0XHTML 1.1
TransitionalStrictFrameset
<a>YesYesYesYesYes
<abbr>YesYesYesYesYes
<acronym>NoYesYesYesYes
<address>YesYesYesYesYes
<applet>NoYesNoYesNo
<area>YesYesYesYesNo
<article>YesNoNoNoNo
<aside>YesNoNoNoNo
<audio>YesNoNoNoNo
<b>YesYesYesYesYes
<base>YesYesYesYesYes
<basefont>NoYesNoYesNo
<bdi>YesNoNoNoNo
<bdo>YesYesYesYesNo
<big>NoYesYesYesYes
<blockquote>YesYesYesYesYes
<body>YesYesYesYesYes
<br>YesYesYesYesYes
<button>YesYesYesYesYes
<canvas>YesNoNoNoNo
<caption>YesYesYesYesYes
<center>NoYesNoYesNo
<cite>YesYesYesYesYes
<code>YesYesYesYesYes
<col>YesYesYesYesNo
<colgroup>YesYesYesYesNo
<command>YesNoNoNoNo
<datalist>YesNoNoNoNo
<dd>YesYesYesYesYes
<del>YesYesYesYesNo
<details>YesNoNoNoNo
<dfn>YesYesYesYesYes
<dir>NoYesNoYesNo
<div>YesYesYesYesYes
<dl>YesYesYesYesYes
<dt>YesYesYesYesYes
<em>YesYesYesYesYes
<embed>YesNoNoNoNo
<fieldset>YesYesYesYesYes
<figcaption>YesNoNoNoNo
<figure>YesNoNoNoNo
<font>NoYesNoYesNo
<footer>YesNoNoNoNo
<form>YesYesYesYesYes
<frame>NoNoNoYesNo
<frameset>NoNoNoYesNo
<head>YesYesYesYesYes
<header>YesNoNoNoNo
<h1> to <h6>YesYesYesYesYes
<hr>YesYesYesYesYes
<html>YesYesYesYesYes
<i>YesYesYesYesYes
<iframe>YesYesNoYesNo
<img>YesYesYesYesYes
<input>YesYesYesYesYes
<ins>YesYesYesYesNo
<keygen>YesNoNoNoNo
<kbd>YesYesYesYesYes
<label>YesYesYesYesYes
<legend>YesYesYesYesYes
<li>YesYesYesYesYes
<link>YesYesYesYesYes
<map>YesYesYesYesNo
<mark>YesNoNoNoNo
<menu>YesYesNoYesNo
<meta>YesYesYesYesYes
<meter>YesNoNoNoNo
<nav>YesNoNoNoNo
<noframes>NoYesNoYesNo
<noscript>YesYesYesYesYes
<object>YesYesYesYesYes
<ol>YesYesYesYesYes
<optgroup>YesYesYesYesYes
<option>YesYesYesYesYes
<output>YesNoNoNoNo
<p>YesYesYesYesYes
<param>YesYesYesYesYes
<pre>YesYesYesYesYes
<progress>YesNoNoNoNo
<q>YesYesYesYesYes
<rp>YesNoNoNoNo
<rt>YesNoNoNoNo
<ruby>YesNoNoNoNo
<s>YesYesNoYesNo
<samp>YesYesYesYesYes
<script>YesYesYesYesYes
<section>YesNoNoNoNo
<select>YesYesYesYesYes
<small>YesYesYesYesYes
<source>YesNoNoNoNo
<span>YesYesYesYesYes
<strike>NoYesNoYesNo
<strong>YesYesYesYesYes
<style>YesYesYesYesYes
<sub>YesYesYesYesYes
<summary>YesNoNoNoNo
<sup>YesYesYesYesYes
<table>YesYesYesYesYes
<tbody>YesYesYesYesNo
<td>YesYesYesYesYes
<textarea>YesYesYesYesYes
<tfoot>YesYesYesYesNo
<th>YesYesYesYesYes
<thead>YesYesYesYesNo
<time>YesNoNoNoNo
<title>YesYesYesYesYes
<tr>YesYesYesYesYes
<track>YesNoNoNoNo
<tt>NoYesYesYesYes
<u>NoYesNoYesNo
<ul>YesYesYesYesYes
<var>YesYesYesYesYes
<video>YesNoNoNoNo
<wbr>YesNoNoNoNo

转载于:https://www.cnblogs.com/btgyoyo/p/6218506.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值