说语义标签前先来理解下什么叫语义化,当下html是靠div+css来铸造页面的整体框架和结构的,通篇大量的div可读性极低,因此诞生了这些特殊的标签,简单地说就是见名知义,使页面更清晰,方便维护和开发. HTML5为我们提供了一系列的语义标签. 1.<section></section> 定义文档中的主体部分的节.段. 2.<article></article> 一个特殊的section标签,比section有更明确的语义.定义来自外部的一个独立的.完整的内…
H5的表单新特性可以分为两大类. 一.10个input的type值 1.email:邮件输入域,在表单提交时提供简单的邮箱格式验证,并弹出一个提示窗口. 2.url:地址输入域,在表单提交时提供简单的URL地址格式验证,并弹出一个提示窗口. 3.number:数字输入域.(可设置min.max.step) 4.tel:电话号码输入域,在手机浏览器中弹出数字输入域. 5.search:搜索输入域,在手机浏览器右下角呈现搜索按键. 6.range:范围选择控件. 7.color:颜色选择控件. 8.…
一.视频(video) H5新加了video标签,用来播放视频,默认为一个300*150的inline-block. 二.音频(audio) H5新加了audio标签,用来播放音频,默认为一个300*30并且display为none的inline-block(除非有controls属性).但手机ios系统中的safari浏览器不支持这个标签,其余的都支持. 三.下面列举一些video.audio对象共有的一些成员: src:指定要播放的资源路径. autoplay:是否自动播放. control…
webSocket是H5新加的一个协议,为了解决http协议的request.response一一对应和它自身的被动性,以及ajax轮询等问题.一方可以发送多条信息,连接不中断,永久连接,但也导致了服务器连接的客户端数量有限. 简单的介绍下客户端的使用: var ws = new WebSocket('ws://地址:端口号');//创建ws客户端 ws.onopen=function(){//连接成功时触发 ws.send();//发送信息 ws.onmessage=function(e){/…
拖放API是H5专门为了鼠标拖放而新提供了7个事件,可以分成三个部分来讲. 一.拖动的源对象(source)可以触发的事件 dragstart:拖动开始 drag:拖动进行中 dragend:拖动结束 二.拖动的目标对象(target)可以触发的事件 dragenter:拖动进入时 dragover:源对象在目标对象上方时 dragleave:拖动离开时 drop:鼠标释放时 *特别注意的一点是,如果想触发drop事件,必须阻止dragover的默认行为 三.源对象和目标对象间的数据传递 当然可…
相对于canvas绘图,SVG是一种绘制矢量图的技术.全称叫做Scalable Vector Graphics,可缩放的矢量图,在2000年就已经存在,H5把它纳入了标准标签库,并进行了一些瘦身.需要注意的是,SVG图形的属性不属于HTML DOM标准,需要用核心DOM的方法来操作:SVG的样式可以用css,但是只能用其专有的属性:如果要使用js动态生成SVG其中的元素,创建方法得用document.createElementNS('http://www.w3.org/2000/svg','标签…
H5引入了canvas标签,默认是一个300*150的inline-block.canvas的宽高只能用它自身的width和height属性来指定,而不能使用css样式中的width.height. 一.获得'画笔'对象,canvas所有的任务都需要它来执行 var ctx=canvas.getContext('2d'); 二.一些canvas常用的属性 fillStyle:填充样式 strokeStyle:描边样式 lineWidth:描边宽度 font:绘制文本所用的字体大小和类型 text…
H5的webStorage技术一共提供了两个对象:window.sessionStorage和window.localStorage. 一.window.sessionStorage--会话级存储 存储一个数据:sessionStorage['key']=value; /sessionStorage.setItem('key',value); 读取一个数据:var data = sessionStorage['key']; /var data = sessionStorage.getItem('…
由于js是单线程的,所以H5添加了这个叫做webWorker的概念,允许js创建多个线程,但是子线程完全受主线程控制,且不能操作DOM,从而来处理一些比较耗时的操作. 那么如何创建一个子线程呢?通过这么一个构造函数var worker = new Worker('worker.js'); *常用的一些API: 1.postMessage():用来在主线程和子线程间传递数据. 2.terminate():终止子线程,无法再调用,除非另外重创.(worker.terminate();) 3.mess…
简单地用一句话概括就是,使用js获取浏览器当前所在的地理坐标,实现LBS(Location Based Service,基于定位的服务). 下面写一下它的基本调用: if(navigator.geolocation){ navigator.geolocation.getCurrentPosition(successFn,errorFn,{ enableHighAccuracy:true,//获得高精度位置,默认为false timeout:5000,//获取地理位置的超时时间,默认不限时 max…