一、什么是H5?
HTML5并不仅仅只是做为HTML标记语言的一个最新版本,更重要的是它制定了Web应用开发的一系列标准,成为第一个将Web做为应用开发平台的HTML语言。
HTML5定义了一系列新元素,如新语义标签、智能表单、多媒体标签等,可以帮助开发者创建富互联网应用,还提供了一些Javascript API,如地理定位、重力感应、硬件访问等,可以在浏览器内实现类原生应用,甚至结合Canvas我们可开发网页版游戏。
二、新特性
1.语意特性,添加< header >< header/ >< nav >< nav >等标签
2.多媒体, 用于媒介回放的 video 和 audio 元素
3.图像效果,用于绘画的 canvas 元素,svg元素等
4.离线 & 存储,对本地离线存储的更好的支持,local Store,Cookies等
5.设备兼容特性 ,HTML5提供了前所未有的数据与应用接入开放接口。使外部应用可以直接与浏览器内部的数据直接相连,
6.连接特性,更有效的连接工作效率,使得基于页面的实时聊天,更快速的网页游戏体验,更优化的在线交流得到了实现。HTML5拥有更有效的服务器推送技术,Server-Sent Event和WebSockets就是其中的两个特性,这两个特性能够帮助我们实现服务器将数据“推送”到客户端的功能
7.性能与集成特性,HTML5会通过XMLHttpRequest2等技术,帮助您的Web应用和网站在多样化的环境中更快速的工作
三、H5新标签
1.语义标签
<nav> 表示导航 , <div class="nav"> 相当于 <nav>
<header> 表示页眉
<footer> 表示页脚
<section> 表示区块
<article> 表示文章 如文章、评论、帖子、博客
<aside> 表示侧边栏 如文章的侧栏
<figure> 表示媒介内容分组 与 ul > li 做个比较
<mark> 表示标记 (文本有背景颜色,表示标记)
<progress> 表示进度
<time> 表示日期 ( 包裹时间 )
2.新表单元素:<datalist> 元素规定输入域的选项列表 ,<output> , <keygen>
3.input 新增类型
<input type="xxx">
color 选择颜色
email 用于检测输入的是否为email格式的地址
number 用于应该包含数值的输入域,可以设定对输入值的限定
range 用于定义一个滑动条,表示范围
search 用于搜索,比如站点搜索或 Google 搜索
tel 输入电话号码
time 选择时间
url 输入网址
date 选择日期
week 选择周和年
month 选择月份
4.多媒体标签
<video> 视频
<audio> 音频
<embed> 嵌入内容(包括各种媒体),Midi、Wav、AU、MP3、Flash、AIFF等。
四、解决兼容性问题
在不支持HTML5新标签的浏览器里,会将这些新的标签解析成行内元素(inline)对待,所以我们只需要将其转换成块元素(block)即可使用,但是在IE9版本以下,并不能正常解析这些新标签,但是却可以识别通过document.createElement(‘tagName’)创建的自定义标签,于是我们的解决方案就是将HTML5的新标签全部通过document.createElement(‘tagName’)来创建一遍,这样IE低版本也能正常解析HTML5新标签了,在实际开发中我们更多采用的是通过检测IE浏览器的版本来加载三方的一个JS库来解决兼容问题。
<!--[if lte IE 8]>
<script src="./js/html5shiv.min.js"></script>
<![endif]-->
五、DOM 扩展
1. 获取元素
(1)document.getElementsByClassName (‘class’) 通过类名获取元素,以类数组形式存在。
(2)document.querySelector(‘#box’) 通过CSS选择器获取元素,符合匹配条件的第1个元素。
(3)document.querySelectorAll(‘selector’) 通过CSS选择器获取元素,以类数组形式存在。
2. 类名操作
(1)Node.classList.add(‘class’) 添加class
(2)Node.classList.remove(‘class’) 移除class
(3)Node.classList.toggle(‘class’) 切换class,有则移除,无则添加
(4)Node.classList.contains(‘class’) 检测是否存在class