HTML5知识点汇总
HTML5 中的一些有趣的新特性
用于绘画的 canvas 元素
用于媒介回放的 video 和 audio 元素
对本地离线存储的更好的支持
新的特殊内容元素,比如 article、footer、header、nav、section
新的表单控件,比如 calendar(日历)、date(日期)、time(时间格式)、email(邮件)、url(链接)、search(搜寻),可以方便用户填写或者方便格式验证。
目录:
- 新增内容元素解释及表单控件举例
- 视频
- 音频
- 拖放
- 画布
- SVG
- 地理定位
- Web存储
- 应用缓存
- Web Workers
- 服务器发送事件
PS以下内容只是基于个人对HTML5的大致理解,做个笔记,若有错误,请不要吝啬指出哈,详情可以查看 https://www.w3school.com.cn/html5/index.asp
表单控件举例
1、date
效果图:

HTML5视频
直到现在,仍然不存在一项旨在网页上显示视频的标准。
今天,大多数视频是通过插件(比如Flash)来显示的。然而,并非所有浏览器都拥有同样的插件。
HTML5 规定了一种通过 video 元素来包含视频的标准方法。
#最简单的用法
//controls="controls"是自带简单的控制组件
#兼容浏览器,运用标签,嵌入多个视频格式链接,浏览器只识别第一个可识别的格式

HTML5音频
直到现在,仍然不存在一项旨在网页上播放音频的标准。
今天,大多数音频是通过插件(比如Flash)来播放的。然而,并非所有浏览器都拥有同样的插件。
HTML5 规定了一种通过 audio 元素来包含音频的标准方法。
audio 元素能够播放声音文件或者音频流。
#兼容浏览器,浏览器只识别第一个可播放的音频文件格式

拖放
拖放的两个对象:拖放对象和要放置的目标对象
相关事件:
1、拖放对象事件
* dragstart - 当鼠标开始拖放时被触发
* drag - 当鼠标拖放过程中,类似于mousemove事件
* dragend - 当鼠标结束拖放时被触发
2、目标对象事件
* dragenter - 当鼠标拖放进入到目标元素内被触发
* dragleave - 被拖动元素离开目标元素时触发
* dragover - 当鼠标到达目前元素被触发
* drop - 被拖动的元素或栋文件系统选中的文件,拖放的文件不全时触发此事件
关于datatransfer,大家自行百度以下,了解一下它的相关属性,这里就不多写了;
先明确一个点:网页中默认元素是不可拖动的,也是不可把其他元素放在另一个元素上面的,所以要设置要拖放的元素可拖放和目标元素可被放置,还有阻止原本的拖放事件
拖放其实也可以简单分为3个步骤:开始拖放,拖放中,放在拖放元素,以下例子为将图片放入div中,ev为DOM传递的参数event,步骤如下:
1、拖放的元素
(1)设置元素可拉动—— draggable="true",如
![]()
(2)元素被拖动时保存数据——
//在这里设置是因为dragstart事件只触发一次
handleDragstart (ev) {
ev.dataTransfer.setData("变量名",ev.target.id)
}
2、放的地方
(1)其他元素悬空至本元素时,设置本元素可放置其他元素并阻止默认拖放行为,这样才可以将其放进去——ev.preventDefault();
设置要被放置元素的标签的事件ondragover="allowDrop(event)"
function allowDrop(ev)
{
ev.preventDefault();
ev.stopPropagation(); // 阻止冒泡
}
(2)放下被拖动的元素时,再次设置本元素可放置其他元素,并获取元素内容这里实现,将元素添加为本元素的子元素
<!- 相对应的放置其他元素的容器设置,ondrop为放下时,ondragover是有其他元素悬空至本元素时->
function drop(ev)
{
ev.preventDefault();
ev.stopPropagation(); // 阻止冒泡
var data=ev.dataTransfer.getData("设置的变量名");
ev.target.appendChild(document.getElementById(data));
}
画布
介绍:画布就是利用javascript在网页上绘制图像的一种元素,画布是一块举行区域,我们可以控制它的每一个像素
使用(三步走):
1、创建Canvas元素:eg:
2、获取canvas元素,创建context对象:eg:
var c=document.getElementById("myCanvas");
var cxt = c.getContext("2d");
3、绘制,eg:
cxt.fillStyle="#FF0000";
cxt.fillRect(0,0,150,75);
SVG
定义
- SVG 指可伸缩矢量图形 (Scalable Vector Graphics)
- SVG 用于定义用于网络的基于矢量的图形
- SVG 使用 XML 格式定义图形
- SVG 图像在放大或改变尺寸的情况下其图形质量不会有损失
- SVG 是万维网联盟的标准
总结:内容为纯粹的XML格式,可无线放大拉伸像素不变,尺寸比jpeg、gif等小,图像中有文本还可以被搜索到(适合做地图等)。
竞争对手:Flash,SVG优势:与其他标准(比如 XSL 和 DOM)相兼容,而 Flash 则是未开源的私有技术
使用方法:
(1)使用
-
优势:所有主要浏览器都支持,并允许使用脚本
-
缺点:不推荐在HTML4和XHTML中使用(但在HTML5允许)