<!DOCTYPE html> <html lang='en'> <head> <meta charset="UTF-8" /> <title>Document</title> </head> <body> </body> </html>
<nav> 表示导航 <header> 表示页眉 <footer> 表示页脚 <section> 表示区块 <article> 表示文章 如文章、评论、帖子、博客 <aside> 表示侧边栏 如文章的侧栏 <figure> 表示媒介内容分组 与 ul > li 作个比较 //下列标签不经常使用 <mark> 表示标记 (带用“UI”,不怎么用,能够重写样式) <progress> 表示进度 (带用“UI”,不怎么用,不可重写样式) <time> 表示日期 <hgroup> 标题列表 (听说已废弃) <details> <bdi> <command> <summary> <rp> <rt> <ruby>
新语义标签只是具备表意性,除了使用时须要注意下HTML结构外,其余和普通标签没什么区别。php
在不支持HTML5新标签的浏览器里,会将这些新的标签解析成行内元素(inline)对待,因此咱们只须要将其转换成块元素(block)便可使用,可是在IE9版本如下,并不能正常解析这些新标签,可是却能够识别经过document.createElement('tagName')建立的自定义标签,因而咱们的解决方案就是将HTML5的新标签所有经过document.createElement('tagName')来建立一遍,这样IE低版本也能正常解析HTML5新标签了,在实际开发中咱们更多采用的是经过检测IE浏览器的版原本加载第三方的一个JS库(html5shiv.js)来解决兼容问题。css
<!--[if lte IE 8]> <script src="./js/htmml5shiv.min.js"></script> <![endif]-->
新增的表单特性,在PC和移动设备之间差别大,兼容性较差html
email 输入email格式 tel 手机号码 url 只能输入url格式 number 只能输入数字 search 搜索框 range 范围 color 拾色器 time 时间 date 日期 不是绝对的 datetime 时间日期 month 月份 week 星期
部分类型是针对移动设备生效的,且具备必定的兼容性问题,在实际开发中可选择性使用。html5
<datalist> 下拉选项,使用中文时要注意 <keygen> 生成加密字符串 <output> 不可当作数据提交? <meter> 表示度量器,不建议用做进度条
placeholder 占位符 autofocus 获取焦点 multiple 文件上传多选或多个邮箱地址 autocomplete 自动完成,用于form元素,也可用于部分input,默认值on form 指定表单项属于哪一个form,处理复杂表单时会须要 novalidate 关闭验证,可用于<form>标签,(只适应用form) required 验证条件,必填项 pattern 正则表达式 自定义验证规则 //表单重写 //应用于提交按钮上,如:<input type="submit" formaction="xxx.php"> formaction、formenctype、formtarget、formmethod、formnovalidate
oninput 用户输入内容时触发,可用于移动端输入字数统计 onincalid 验证不经过时触发
h5以前,网页上的音频/视频可能是利用Flash来播放的,但并不是全部用户的浏览器都安装了Flash插件,由此使得处理音频/视频播放变的很复杂,而且移动设备的浏览器不支持Flash。node
<audio src="xx.mp3"></audio>
属性:web
autoplay 自动播放 controls 是否显示默认的播放控件 loop 循环播放 preload 预加载 同时设置autoplay时此属性失效
因为版权限制,不一样浏览器支持的播放格式不一样,须要进行兼容性处理:正则表达式
<audio controls> <source src="xx.mp3"> <source src="xx.wav"> <source src="xx.ogg"> 您的浏览器不支持HTML音频播放功能 </audio>
<video>
标签<audio>
标签使用一致width,height
设置播放窗口的宽高document.getElementsByClassName(className)
经过类名获取元素,返回一个伪数组document.querySelector(selector)
经过css选择器获取元素,返回符合条件的第一个dom元素document.querySelectorAll(selector)
经过css选择器获取元素,返回一个伪数组<div data-name="name" data-gender="female"><div>
node.dataset["name"]
能够获取到自定义属性的值node.dataset["myName"]
ondrag 整个拖拽过程都会调用 ondragstart 拖拽开始是调用 ondragleave 当鼠标离开拖拽元素时调用(拖拽出拖拽元素的基础位置时) ondragend 拖拽结束时调用
2.目标元素的事件chrome
ondragenter 拖拽元素进入时调用 ondragover 拖拽元素停留在目标元素上时调用 ondragleave 拖拽元素离开目标元素时调用 ondrop 在目标元素上松开鼠标时调用
ev.dataTransfer.setData() 设置数据 ev.dataTransfer.getData() 获取数据
window.history对象,能够管理历史记录,可用于单页面应用,能够无刷新改变网页内容。api
history.back() 回退 history.forward() 前进 history.go(n) 前进/后退n步,正值前进,负值后退 history.length 历史记录条数
//追加一条历史记录 //通常data设置为null,titile设置为空,url为以当前域为基础增长一条历史记录,不可跨域设置。 pushState(data,title,url) //用法与pushState()基本相同,此方法替换当前url,不会改变历史记录条数 replaceState(data,title,url)
onpopstate事件:前进或者后退时触发,经过事件对象ev.state能够读取到存储的数据,监听者给window跨域
基于位置服务(Location Base Service)
下图对各类不一样获取方式的优缺点作了比较,浏览器会自动以最优的方式去获取用户地理信息
HTML5中Geolocation规范提供了保护用户隐私的机制,必须先获得用户明确的许可,才能获取用户的位置信息.
navigator.geolocation.getCurrentPosition(successCallback,errorCallback,options)获取当前地理信息
navigator.geolocation.watchPosition(successCallback,errorCallback,options)重复获取当前地理信息
为了知足各类需求,会常常性的须要在本地存储大量的数据,传统方式使用document.cookie进行存储,但cookie存储大小只有4k左右,而且解析相对复杂.HTML5提出了sessionStorage和localStorage来存储本地数据.
规范容许全部元素均可以全屏,但实际测试结果关闭全屏功能只能添加到document元素上
requestFullScreen() 开启全屏显示 cancelFullScreen() 关闭全屏显示
webkitRequestFullScreen、mozRequestFullScreen webkitCancelFullScreen、mozCancelFullScreen
document.fullScreen //不一样浏览器须要添加前缀 document.webkitIsFullScreen document.mozFullScreen
给window绑定事件
window.navigator.onLine在用户网络链接时调用,返回布尔值
window.navigator.offLine在用户网络断开时调用
建立一个cache manifest文件构建一个离线应用
CACHE MANIFEST CACHE: #此部分写须要缓存的资源 (#是注释的意思) ./images/img1.jpg ./images/img2.jpg ./images/img3.jpg ./images/img4.jpg ./images/img5.jpg NETWORK: #此部分要写须要有网络才可访问的资源,无网络则不访问 #./js/main.js * FALLBACK: #当访问不到某个资源的状况下,自动由另外一个资源替换 ./css/online.css ./css/offline.css ./online.html ./offline.html
经过FileReader对象能够读取本地存储的文件,可使用File对象来指定所要读取的文件或数据,其中File对象能够来自用户在一个<input>
元素上选择文件后返回的FileList对象,也能够来自自由拖放操做生成的DataTransfer.
因为HTML5中能够为表单添加multiple属性,所以经过<input>
上传文件后获得一个FileList对象(伪数组).
HTML5新增内置对象,能够实例化一个对象
还有许多其余方法,在应用时能够去MDN上查看