HTML5之概述
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之概述的更多相关文章
- HTML5 Canvas 概述
本文中,我们将探索如何使用HTML5的Canvas API.Canvas API很酷,我们可以通过它来动态创建生成和展示图形,图表,图像以及动画.本文将使用渲染API(rendering API)的基 ...
- HTML5地理位置概述和地理位置对象的详解
一.地理位置 经度 : 南北极的连接线 纬度 : 东西连接的线 二.位置信息从何而来 IP地址 GPS全球定位系统 Wi-Fi无线网络 基站 三.地理位置对象(navi ...
- HTML5+CSS3学习笔记(一) 概述
HTML5+CSS3概述 HTML5和CSS3不仅仅是两项新的Web技术标准,更代表了下一代HTML和CSS技术.虽然HTML5的标准规范还没有正式发布,但是未来的发展前景已经可以预见,那就 ...
- HTML5 程序设计 - 使用HTML5 Canvas API
请你跟着本篇示例代码实现每个示例,30分钟后,你会高喊:“HTML5 Canvas?!在哥面前,那都不是事儿!” 呵呵.不要被滚动条吓到,很多都是代码和图片.我没有分开写,不过上面给大家提供了目录,方 ...
- HTML5+CSS3学习笔记(一)
HTML5+CSS3概述 HTML5和CSS3不仅仅是两项新的Web技术标准,更代表了下一代HTML和CSS技术.虽然HTML5的标准规范还没有正式发布,但是未来的发展前景已经可以预见,那就是HTML ...
- HTML5系列二(标签元素、FileReader、拖放)
nav元素的使用场合 页面中可以包含多个nav元素,通常情况下头部和尾部都会包含导航,这样提高了可访问性,访客能够清晰的将其辨认出来.nav元素是一个可以用来作为页面导航的链接组:其中的导航元素链接到 ...
- HTML5 程序设计笔记(二)
Canvas API 1.HTML5 Canvas 概述 1.1 历史 Canvas的概念最初是由苹果公司提出的,用于在Mac OS X WebKit中创建控制板部件(dashboard widget ...
- HTML5学习笔记:HTML5基于本地存储SQLite的每日工作任务清单程序.[只支持chrome]
使用环境:Chrome 36.0...+ 技术:HTML5 目的:习练HTML5 功能概述:记录管理每天工作内容,便签清单 HTML5+CSS3呈现UI,JavaScript操作数据库,SQLite存 ...
- HTML网页设计基础笔记 • 【第1章 HTML5基础】
全部章节 >>>> 本章目录 1.1 HTML介绍及开发工具 1.1.1 HTML 的基本概念 1.1.2 网页 1.1.3 Web 标准 1.1.4 HTML5 与移动互 ...
随机推荐
- ASP.NET中26种性能优化方法
系统类 Type类,Object类,String类, Arrary类,Console类, Exception类,GC类, MarshalByRefObject类, Math类. DateTime结构 ...
- MPAndroidChart -- LimitLine的坑
好久没有写博客了,最近比较忙,项目中使用了MPAndroidChart,初次使用也比较蠢,很多API都得一个一个查,但有些时候当你想应该有这个API的时候他却没有,就比如今天的主角LimitLine ...
- 第二百二十六节,jQuery EasyUI,Tree(树)组件
jQuery EasyUI,Tree(树)组件 本节课重点了解 EasyUI 中 Tree(树)组件的使用方法,这个组件依赖于 Draggable(拖 动)和 Droppable(放置)组件. 一.加 ...
- 【vijos】1881 闪烁的繁星(线段树+特殊的技巧)
https://vijos.org/p/1881 这场比赛太难了sad.所以我都没做.. 这题一开始我竟然不会sad(本来就不会),然后我继续yy..yy了好久,竟然yy了个什么可拆分的并查集?(sa ...
- knowledgeroot 的配置与优化
首先下载 KnowledgeRoot 的安装包,就是一个压缩文件,解压缩后放到 WebRoot 下面 在浏览器中打开网站,自动提示进行安装,安装的过程很简单,安装结束后即可以使用. 安装包创建的数据库 ...
- HTML-HTML链接JavaScript的几种方法
把JavaScript文件放在head中 标准方法是把JavaScript文件放到head标签内. <head> <script type="text/javascript ...
- spring中关于FeignClient的错误 QueryParam.value() was empty on parameter 1
现创建一个feignClient的接口,在其他服务调用改client时发现服务启动失败错误日志如下: org.springframework.beans.factory.BeanCreationExc ...
- 【BZOJ4379】[POI2015]Modernizacja autostrady 树形DP
[BZOJ4379][POI2015]Modernizacja autostrady Description 给定一棵无根树,边权都是1,请去掉一条边并加上一条新边,定义直径为最远的两个点的距离,请输 ...
- crash处理core文件
(一时心血来潮总结的,供大家参考,时间仓促,不足之处勿拍砖,欢迎讨论~)Crash工具用于解析Vmcore文件,Vmcore文件为通过kdump等手段收集的操作系统core dump信息,在不采用压缩 ...
- linux必学
memcache zookeeper activemq