HTML5是万维网的核心语言、标准通用标记语言下的一个应用超文本标记语言HTML)的第五次重大修改,是继HTML4.01和XHTML1.0之后的超文本标记语言的最新版本。它是由一群自由思想者组成的团队设计出来,并最终实现多媒体支持、交互性、更加智能的表单,以及更好的语义化标记。

HTML5并不仅仅是HTML规范的最新版本,而且是一系列用来制作现代富Web内容的相关技术的总称,其中最重要的三项技术分别为:HTML5核心规范(标签元素)、CSS(层叠样式表第三代)和JavaScript。

一、HTML5发展历史

1993年HTML首次以因特网草案的形式发布,然后经历了2.0、3.2、4.0,一直到1999年的HTML4.01版本稳定下来。由于发展缓慢,逐渐的被更加严格的XHTML所取代。

XHTML是基于XML、致力于实现更加严格并且统一的编码规范的HTML版本,解决之前HTML4.01版本时,由于编码不规范导致浏览器的各种古怪行为,所以Web开发者对XHTML极大地拥护。XHTML极大的好处就是强迫开发者养成良好的编码习惯,放弃HTML凌乱的写法,最终降低浏览器解析页面的难度,方便移植到更多平台。

可是,越是想往好的方面发展,往往可能带来的是毁灭性的灾难,世间万物就是如此。XHTML2.0规范了更严格的错误处理规则,强制要求浏览器拒绝无效的XHTML2页面,强制Web开发者写出绝对正确规范的代码,同时不得向下兼容,摒弃HTML一流的怪异行为和编码习惯。按理说,取其精华去其糟粕是好事,但是这样一来熟亿的页面无法兼容,Web开发者的难度又被加大,并且制定这个标准又太过久远,最终被抛弃。

2008年W3C发布了HTML5的工作草案,2009年停止了XHTML2.0的计划,又过去大概一年,HTML5规范进一步解决了诸多非常实际的问题,各大浏览器厂商开始对旗下的产品进行升级,以便支持HTML5。这样得益于浏览器的实验反馈,HTML5规范得到了持续的进步和完善,从而迅速融入到Web平台的实质性改进中。

和XHTML2.0不同,制定HTML5规范的一群人并不想挑出以往HTML的各种毛病为其改正,而是尽可能的补全Web开发急需的各种功能。这些功能包括更强大的CSS3、表单验证、音频视频、本地存储、地理定位、绘画(Canvas)、Web通信等等。

二、HTML5功能

1.HTML5核心:这部分主要由W3C官方的规范组成,设计新的语义元素、新的增强的Web表单、音频和视频、以及通过JavaScript绘图的Canvas。这部分大多数主流浏览器均的到很好的支持。

2.曾经的HTML5标准:这部分主要来自最初制定的HTML5规范,其中大多数功能需要JavaScript且支持富Web应用开发。比如:本地数据存储、离线应用和消息传递。

3.非HTML5标准:这部分通常指下一代功能,虽然从未进入HTML标准,但人们还是把它认做HTML5的一部分。这些包括最为常见的CSS3,以及很热门的地理定位。

对于最为常用且实用的部分,基本上主流浏览器都支持的比较好。而那些特殊需求的部分,则需要根据不同的浏览器检测才能知道是否支持自己想要的功能。

三、HTML5的特点

1.向下兼容

HTML5实行“不破坏Web”的原则,也就是说,以往已存在的页面,还可以保持正确的显示。

面对开发者,HTML5规范要求摒弃过去那些编码坏习惯和废弃的标签元素;而面对浏览器厂商,要求他们兼容HTML遗留的而一切,以做到向下兼容。

2.用户至上

HTML5遵循“用户至上”的原则,在出现具体问题时,会把用户放在第一位,其次是开发者,然后是浏览器厂商,最后才是规范制定者。比如:开发者在编码是不严谨导致本该出现警告或错误时,却正常显示了页面。

3.化繁为简

HTML5对比之前的XHTML做了大量的简化工作,具体如下:

(1)以浏览器的原生能力代替复杂的JavaScript;

(2)DOCTYPE被简化到极致;

(3)字符集声明被简化;

(4)简单强大的API。

4.无插件范式

在HTML5之前,很多功能只能通过插件或hack(如绘图API)来实现,但HTML5原生提供了这些支持。使用插件有很多问题,具体如下:

(1)插件安装容易失败;

(2)插件被浏览器或软件禁用屏蔽(如Flash插件);

(3)插件经常会被爆出漏洞被利用攻击;

(4)插件不容易与HTML文档其他部分集成(比如整体透明化等)。

5.访问通用性

(1)可访问性:比如更加利于残障人士的阅读方案;

(2)媒体中立:比如HTML5的媒体播放在不同设别或不同平台均能正常运行;

(3)支持所有语种:比如新元素<ruby>。

6.引入语义

HTML5引入了一些用来区分不同含义和不同内容的标记元素。这种方式极大的提供的编码人员的可读性和代码区域查询的便利性。

7.引入原生媒体支持

HTML5的一次大改进就是支持在浏览器中直接播放视频和音频文件,以前都需要插件才能实现此类功能。

8.引入可编程内容

HTML5最大的变化就是引入了需要通过JavaScript编程才能完成的各种效果,而这些很多都是HTML5原生的。那么现在HTML5可以理解为HTML+CSS+JavaScript的总称。

HTML5之概述的更多相关文章

  1. HTML5 Canvas 概述

    本文中,我们将探索如何使用HTML5的Canvas API.Canvas API很酷,我们可以通过它来动态创建生成和展示图形,图表,图像以及动画.本文将使用渲染API(rendering API)的基 ...

  2. HTML5地理位置概述和地理位置对象的详解

    一.地理位置 经度  :   南北极的连接线 纬度  :   东西连接的线   二.位置信息从何而来 IP地址 GPS全球定位系统 Wi-Fi无线网络 基站         三.地理位置对象(navi ...

  3. HTML5+CSS3学习笔记(一) 概述

    HTML5+CSS3概述      HTML5和CSS3不仅仅是两项新的Web技术标准,更代表了下一代HTML和CSS技术.虽然HTML5的标准规范还没有正式发布,但是未来的发展前景已经可以预见,那就 ...

  4. HTML5 程序设计 - 使用HTML5 Canvas API

    请你跟着本篇示例代码实现每个示例,30分钟后,你会高喊:“HTML5 Canvas?!在哥面前,那都不是事儿!” 呵呵.不要被滚动条吓到,很多都是代码和图片.我没有分开写,不过上面给大家提供了目录,方 ...

  5. HTML5+CSS3学习笔记(一)

    HTML5+CSS3概述 HTML5和CSS3不仅仅是两项新的Web技术标准,更代表了下一代HTML和CSS技术.虽然HTML5的标准规范还没有正式发布,但是未来的发展前景已经可以预见,那就是HTML ...

  6. HTML5系列二(标签元素、FileReader、拖放)

    nav元素的使用场合 页面中可以包含多个nav元素,通常情况下头部和尾部都会包含导航,这样提高了可访问性,访客能够清晰的将其辨认出来.nav元素是一个可以用来作为页面导航的链接组:其中的导航元素链接到 ...

  7. HTML5 程序设计笔记(二)

    Canvas API 1.HTML5 Canvas 概述 1.1 历史 Canvas的概念最初是由苹果公司提出的,用于在Mac OS X WebKit中创建控制板部件(dashboard widget ...

  8. HTML5学习笔记:HTML5基于本地存储SQLite的每日工作任务清单程序.[只支持chrome]

    使用环境:Chrome 36.0...+ 技术:HTML5 目的:习练HTML5 功能概述:记录管理每天工作内容,便签清单 HTML5+CSS3呈现UI,JavaScript操作数据库,SQLite存 ...

  9. HTML网页设计基础笔记 • 【第1章 HTML5基础】

    全部章节   >>>> 本章目录 1.1 HTML介绍及开发工具 1.1.1 HTML 的基本概念 1.1.2 网页 1.1.3 Web 标准 1.1.4 HTML5 与移动互 ...

随机推荐

  1. Unity3D脚本:C#计时类脚本

    Unity3D脚本:C#计时类脚本  unity3D更多资源教程免费下载,群153442627using UnityEngine;using System.Collections;/// <su ...

  2. String类和StringBuffer类

    位于java.lang包中,这个包中的类使用时不用导入 String类一旦初始化就不可以改变,而stringbuffer则可以.它用于封装内容可变的字符串.它可以使用tostring()转换成stri ...

  3. 网络协议之ts---ts 流分析详解

    名词缩写翻译: es:elements stream 基本流 pes:packet elements stream 打包流 pts:presentation time stamp 显示时间戳 dts: ...

  4. js创建form添加input项目并提交表单

    var generateHideElement = function (name, value) { var tempInput = document.createElement("inpu ...

  5. 【转】Android横竖屏重力自适应

    通常我们的应用只会设计成横屏或者竖屏,锁定横屏或竖屏的方法是在manifest.xml文件中设定属性android:screenOrientation为"landscape"或&q ...

  6. python入门(五):面向对象

    面向对象术语 类(Class): 用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例. 类变量:类变量在整个实例化的对象中是公用的.类变量定义在类中且 ...

  7. Lumen 队列

    队列 简介 连接 Vs. 队列 驱动的必要设置 创建任务类 生成任务类 任务类结构 分发任务 延迟分发 任务链 自定义队列 & 连接 指定任务最大尝试次数 / 超时值 频率限制 错误处理 运行 ...

  8. 调结者(Dispatcher)之执行action

    调结者的执行action StrutsExecuteFilter类的工作就是执行对应的action请求.StrutsExecuteFilter类的工作还需要有一个叫ExecuteOperations类 ...

  9. Centos 虚拟机网络问题,网卡起不来,重启network服务失败

    拷贝了个虚拟机,有两个网卡,1个可以起来,另一个起不来.运行命令:$>systemctl restart network 输出如下:Job for network.service failed ...

  10. 面试题思考:Cookie 和 Session的区别

    面试回答: 1.cookie数据存放在客户的浏览器上,session数据放在服务器上. 2.cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用ses ...