HTML超文本标记语言(英文:HyperText Markup Language)是用于描述网页文档的一种标记语言。HTML是Web编程的基础,也就是说万维网是建立在超文本基础之上的,万维网主要由从服务器通过HTTP协议向浏览器发送的HTML文档组成。1997年W3C已经正式推荐当今主流的HTML4.0标准。


  HTML5是一个还未完成的标准,而HTML4已经正式使用了10多年了,它仍是当前主流的标准。由于HTML5现在并没有广泛地运用,而且搜索引擎支持效果也不佳,现在用HTML5来制作网页并不会给你的网站带来什么好处。重新开发一个HTML5的网站,也要比把一个网站从HTML4迁移到HTML5上容易的多,这是因为这两个版本之间有很大不同之处,下面介绍HTML4和HTML5之间的主要不同:


一、新的<video>和<audio>标记替代FLASH



  <canvas>、<source>、<video>和<audio>通过一个标准接口嵌入图片、音频和视频多媒体,而无需安装任何插件。



  <audio>和<video>以替代<object>和<embed>标记。



  Canvas由一个可绘制地区HTML代码中的属性定义决定高度和宽度。JavaScript代码可以访问该地区,通过一套完整的绘图功能类似于其他通用二维的API,从而使动态生成的图形。



  如通过<canvas>元素来显示一个红色的矩形:



<canvas id="myCanvas"></canvas>



二、新的<section><article><header><footer>和<nav>标记



  HTML5的设计是要更好的描绘网站的解剖结构,类似<div>和<span>的标签<section>、<article>、<header>和<nav>(网站导航块)有利于搜索引擎的索引整理,也便于小屏幕装置和视障人士使用。



  随着HTML5的到来,无处不在的<div id="header">和<div id="footer">传统代码方法,将变成标签<Header>和<footer>。



  



三、新的<menu>和<figure>标记



  新的<menu>标记可以被用作普通的菜单,也可以用在工具条和右键菜单上。新的<figure>标记是一种更专业的管理页面上文字和图像的方式。



  



四、全新的<form>标记



  新的<form>标记对原有的表单元素进行的全新的修改,用于创建供用户输入的HTML表单。<form>元素包含一个或多个表单元素,其中<input>标签规定用户可输入数据的输入字段。



  HTML5中的新标签:



  <article>:定义了一个文档内容的独立片段,比如博客条目或报纸文章。



  <aside>:定义页面内容之外的内容,aside的内容应该与附近的内容相关。



  <audio>:定义声音内容。



  <canvas>:定义图形。



  <command>:定义命令按钮,比如单选按钮、复选框。



  <datagrid>:定义树列表(tree-list)中的数据。



  <datalist>:定义下拉列表。



  <datatemplate>:定义数据模板。



  <details>:定义元素的细节。



  <dialog>:定义对话(会话)。



  <embed>:定义外部交互内容或插件。



  <figure>:定义媒介内容的分组,以及它们的标题。



  <figcaption>:定义figure元素的标题。figcaption元素应该被置于figure元素的第一个或最后一个子元素的位置,它是可选的。



  <footer>:定义section或page的页脚。



  <header>:定义section或page的页眉。



  <m>:定义有记号的文本,请在需要突出显示文本时使用<m>标签。



  <meter>:定义预定义范围内的度量。



  <nav>:定义导航链接。



  <nest>:定义数据模板中的嵌套点。



  <output>:定义输出的一些类型。



  <progress>:定义任何类型的任务的进度。



  <rule>:为升级模板定义规则。



  <section>:定义文档中的节(section、区段)。比如章节、页眉、页脚或文档中的其他部分。



  <source>:定义媒介源。



  <time>:定义日期或时间。



  <video>:定义视频,比如电影片段或其他视频流。



  



五、一些过时的HTML4标记将取消



  如<big><font>和<center>,因为它们已经被CSS取代。



  



  HTML5不再支持的HTML4标签:



  <acronym>:定义首字母缩写。



  <applet>:定义applet。



  <big>:定义大号字体效果,请使用<b>或<strong>标签代替(<strong>标签表示把文本标记为相比其他文本更为重要,<b>标签在HTML5中被重新定义为文本中需要强调的部分)。



  <center>:定义居中的文本。



  <dir>:定义目录列表。



  <basefont>:请使用CSS代替。



  <font>:定义文本的字体、尺寸和颜色。



  <frame>:定义子窗口(框架)。



  <frameset>:定义框架的集。



  <isindex>:定义单行的输入域。



  <noframes>:定义noframe部分。



  <s>:定义加删除线的文本。(同strike)



  <strike>:定义加删除线的文本,请使用<del>标签代替。



  <u>:定义下划线文本。



  <tt>:定义打字机文本。



  



六、<a><cite>和<menu>被修改、重新定义或标准化了



  没有href属性的a元素代表一个假设可能放置一个链接的占位符。



  <b>标签在HTML5中仍是粗体,但被重新定义为文本中需要强调的部分。



  <head>元素不再允许object元素作为子元素。



  <hr>元素显示为一条水平线,代表一个段段专题间断,不再支持align,noshade,size以及width属性。



  <strong>元素现在代表重要性而不是强烈的强调。



  <small>元素现在代表注释的小字(旁注)。



  <cite>定义引用,可使用该标签对参考文献的引用进行定义,比如书籍或杂志的标题,引用的文本将以斜体显示。



  <i>标签依然是斜体样式,但它的意义已经和之前有所不同,HTML5中只是为了将一段文字标识出来,而不是为了设置斜体。



  



七、HTML4部分元素变更了属性



  table的border属性只允许值为"1"以及空字符。



  img的border属性不再允许。



  img和其他元素的width和height属性不再允许包含百分比。



  



八、HTML4部分元素引入了几个新属性



  为了和link元素的一致性,a和area(定义图像映射中的区域)元素现在有了media属性。



  为了和a和link元素的一致性,area元素现在也有了hreflang、type和rel属性。



  主要为了和a元素的一致性,base元素也有了target属性。(这已被广泛支持)



  script元素有了一个新属性async,可以影响脚本的加载和执行。



  



九、<noscript>标签将会被大量使用



  HTML5时代将会是一个富媒体时代。传统的文字、图片、链接、音频、视频已经满足不了用户不断增长的需求,大量的脚本能够编辑出丰富的信息,包括游戏、个性化设计和交互式设计等。<noscript>元素用来定义在脚本未被执行时的替代文本内容,就如同<img>标签中的alt属性。



  



但HTML5中可能很有用的标签:



  <abbr>:表示一个缩写形式,比如「Inc.」、」etc.」。最初是在HTML4.0中引入的,表示它所包含的文本是一个更长的单词或短语的缩写形式。



  <address>:定义文档作者或拥有者的联系信息。



  <bdo>:定义文本显示的方向。



  <blockquote>:定义摘自另一个源的块引用。<blockquote>与</blockquote>之间的所有文本都会从常规文本中分离出来,经常会在左、右两边进行缩进,而且有时会使用斜体。也就是说,块引用拥有它们自己的空间。



  <dl>:定义一个定义列表。



  <dt>:定义一个定义列表中的一个项目,以及dialog中的角色。



  <dd>:定义一个定义列表中对项目的描述。



  <del>:定义文档中已删除的文本。(与<ins>一起使用,描述文档中的更新和修正。)



  <ins>:定义插入文本。(与<del>标签一起使用,来描述对文档的更新和修正。)



  <fieldset>:将表单内的相关元素分组。



  <legend>:为<fieldset>、<figure>以及<details>元素定义标题。



  <menu>:定义菜单列表。当希望列出表单控件时使用该标签。(请使用CSS来定义列表的类型。)



  <q>:定义一个短的引用。(浏览器经常会在这种引用的周围插入引号。)



  



十、新增事件属性



  HTML5元素可拥有事件属性,这些属性在浏览器中触发行为,比如当用户单击一个HTML5元素时启动一段JavaScript。下面列出的事件属性,可以把它们插入HTML标签来定义事件行为。



  HTML5中的新事件属性举例:



  onafterprint:在打印文档之后运行脚本



  onbeforeunload:在文档加载之前运行脚本



  onerror:当错误发生时运行脚本



  onforminput:当表单获得用户输入时运行脚本(表单事件)



  ondrag:当拖动元素时运行脚本(鼠标事件)



  onmousewheel:当转动鼠标滚轮时运行脚本



  onplaying:当媒介数据已开始播放时运行脚本(媒介事件)



  onwaiting:当媒介已停止播放但打算继续播放时运行脚本


  具体HTML5的标准属性请参阅



   http://www.w3school.com.cn/html5/index.asp



   http://dev.w3.org/cvsweb/html5/



   http://zh.wikipedia.org/zh-cn/HTML5