如鹏网学习笔记(十二)HTML5
一、HTML5简介
HTML5是HTML语言第五次修改产生的新的HTML语言版本
改进主要包括:
增加新的HTML标签或者属性、新的CSS样式属性、新的JavaScript API等。同时删除了一些过时的和样式相关的HTML标签和属性
给网页带来了新的特性:
多媒体支持、本地存储、图形绘制和样式特效等
二、新的多媒体标签
1,<video> 用来在页面播放视频
部分属性:
src 要播放的视频的地址
width 设置播放器的宽度,单位px
height 设置播放器的高度,单位px
controls 如果出现该属性,则向用户显示控件,比如播放按钮
autoplay 视频在就绪后马上播放
loop 播放完成后重新开始
示例代码:
<video controls="control" width="960px" height="450px">
<source src="resource/世界5500年版图演变史.webm"/>
<source src="resource/世界5500年版图演变史.mp4"/>
</video>
2,<audio> 在页面播放音频
支持OFF\MP3\WAV三种音频格式
用法与<video>相似
示例代码:
<audio controls="controls">
<source src="resource/风吹麦浪-叶一茜.mp3" />
<source src="resource/风吹麦浪-叶一茜.wav" />
<source src="resource/风吹麦浪-叶一茜.ogg" />
</audio>
3,<source> 指定多媒体资源的位置,配合上面两个标签使用,是个单标签
三、新的表单控件
新增的表单控件就是在input标签的type属性增加了新的可选项
date 日期控件 value格式为:2016-03-20
time 时间控件 value格式为10:20
number 数字控件
range 范围控件 使用max和min属性来控制拖动的范围
search 搜索框控件
color 颜色选择器 value格式为:16进制颜色值
email、url、datetime 这些不是所有浏览器都支持
HTML5其实是把第三方插件的效果集成了
四、input标签的新属性
placeholder 输入框的输入提示信息
required 必填的意思,required="required"
pattern 用户验证用户输入
form 指定控件所属的表单,这样控件就不必一定要在<form>标签内了
autofocus 自动获得焦点
multiple 指定文件上传时是否可选多个文件
accept 指定上传文件时允许的MIME类型(文件类型),如image/*代表所有图片格式
五、增加JavaScript对要上传的文件的处理功能
为JavaScript提供新的API,使其能够处理要上传的文件
1,File 表示被选中的一个文件,包含和此文件相关的信息
size属性 文件大小
type属性 文件类型
name属性 文件名
2,FileList 被选中上传的文件列表
3,FileReader 对文件数据进行处理
readAsText(file,encoding) 以文本的形式读取文件数据
readAsDataURL( file) 以base64编码的形式读取文件数据
result属性 读取到的被处理过的文件数据
onload 事件属性,文件读取成功时触发
六、新的文档语义标签
在HTML5之前,文档中无论是布局还是内容结构方面,使用的都是div标签
Html5为文档内容语言结构方面定义了一些新的标签:
header 一般放置logo或者菜单栏
nav 一般放置网站内的目录、导航栏链接,或者网站外的友情链接
article 页面中相对独立的结构,如一篇文章,或者此文章的每一个评论
section 定义页面或者article的章节
aside 一般放置广告或者解释性信息
footer 一般放置版权信息的
其中article和section的用法比较灵活,可以相互嵌套
这些标签除了可以让文档的语义结构更加清晰外,还可以方便搜索引擎的抓取,也为程序对页面的准确分析提供了可能
只是现今阶段这些标签还没有成为主流
七、新的事件类型
beforeunload 页面关闭前或刷新前触发
scroll 页面滚动时触发
resize 页面尺寸被调整时触发
mousewheel 鼠标滚轮滚动时触发
dragstart、dragover、drop 拖放事件
八、元素拖放(drag/drop)
在HTML5中,元素时可以被拖放的(拖拽,放下)
1,draggable 是否可被拖拽(元素的公共属性)
2,dragstart 拖拽开始事件,元素a被拖拽时触发
3,dragover 拖拽到另一个元素上,当一个被拖拽元素a进入到另一个元素b的范围时触发
4,drop 拖拽停止事件,鼠标按键松开时触发,事件源是元素b
图片、超链接默认是可以拖拽,想要拖拽其他元素,需要设置元素的draggable属性为true
元素默认拒绝接受另一个被拖拽的元素,表现为鼠标指针变为,drop事件也不会触发
注意:
被选中的文本也可以被拖拽,先忽略这一点。拖放动作只会触发一些事件,并不会做任何实际性的事情,
就像点击了一个普通按钮不会触发任何效果一样,想做一些事情就需要在事件处理函数里面写处理代码
九、元素拖放实现
若要实现把元素a拖放到元素b中,需要进行一下步骤:
1.确保元素a可拖拽(设置元素的draggable属性为true)
2,给元素a注册dragstart事件处理函数(主要用来存储一些相关数据)
3,给元素b注册dragover事件处理函数(主要用来取消事件默认行为)
4,给元素b注册drop事件处理函数(主要用来把元素a插入到元素b中)
由于整个拖放过程涉及到多个事件,所以就需要event.dataTransfer对象在整个拖放过程中存储和传递需要的数据
event.dataTransfer.setData(key,value) 存放数据
event.dataTransfer.getData(key) 取得数据
十、绘图功能
HTML5新增了<canvas>标签(画布的意思),同时提供了一组新的JavaScript api,相配合完成绘图功能
绘制过程是由js代码控制,一般步骤为:
1,获得canvas画布元素对象
2,设置画笔颜色或者填充颜色
3,绘制基本图形或者图片
4,重复2和3步,最终回执成复杂的图形
5,配合定时器使用,则可以绘制动画
十一、JavaScript绘图API
var context = canvas.getContext("2d"); //获得绘图上下文(绘图功能的核心对象)
context.strokeStyle = "颜色值"; //设置画笔颜色
context.fillStyle = "颜色值"; //设置填充颜色
context.fillRect(x, y , width , height); //绘制并填充矩形
context.strokeRect(x, y , width , height); //绘制矩形
context.clearRect(x, y , width , height); // 清除矩形区域内的图形
//绘制图片
var img = new Image(); //创建图片对象
img.src="resource/1.png"; //设置图片的src,设置后即开始加载图片数据
img.onload=function(){ //图片数据加载完成后才可以绘制此图片
context.drawImage(img,230,10);
}
注意:对咱们后端开发人员来说,只需要了解一下绘图功能即可
十二、本地存储
在HTML5之前,服务器可以通过cookie把少量数据存储到用户本地电脑上,存储上限每个网站大约是4KB
HTML5为window对象新增了localStorage属性对象,存储字符串类型的键值对数据,
如:localStorage.username="蛋蛋";localStorage.age="20";
这些键值对数据会存储到用户本地电脑上,并且这些数据是网站独享的,各个网站之间的数据并不会相互影响,而且浏览器之间也是不共享的
HTML5的本地存储大约可以存储5MB的数据,有些浏览器可以设置存储上限
如鹏网学习笔记(十二)HTML5的更多相关文章
- python3.4学习笔记(十二) python正则表达式的使用,使用pyspider匹配输出带.html结尾的URL
python3.4学习笔记(十二) python正则表达式的使用,使用pyspider匹配输出带.html结尾的URL实战例子:使用pyspider匹配输出带.html结尾的URL:@config(a ...
- Go语言学习笔记十二: 范围(Range)
Go语言学习笔记十二: 范围(Range) rang这个关键字主要用来遍历数组,切片,通道或Map.在数组和切片中返回索引值,在Map中返回key. 这个特别像python的方式.不过写法上比较怪异使 ...
- 如鹏网学习笔记(十五)ASP.NET MVC核心基础笔记
一.ASP.Net MVC简介 1,什么是ASP.NET MVC? HttpHandler是ASP.net的底层机制,如果直接使用HttpHandler进行开发难度比较大.工作量大.因此提供了ASP. ...
- 如鹏网学习笔记(十)DOM
DOM笔记一.DOM简介 Document Object Model 文档对象模型 DOM的节点树模型:整个文档按照从大到小的节点划分,每一个内容都算作一个节点 DOM API 编程接口 可以用来操作 ...
- 如鹏网学习笔记(十四)ASP.NET
Asp.net笔记 一.Socket类 进行网络编程的类,可以在两台计算机之间进行网络通讯 过程: 向服务器发送指令: GET /index.html HTTP/1.1 Host:127.0.0.1: ...
- 如鹏网学习笔记(七)HTML基础
HTML笔记 一.HTML简介 1,HTML (Hyper Text Mark-up Language) 超文本标记语言,是一种编程语言,也可以说是一种标准.规范. 2,HTML提供了一系列标记(标签 ...
- java jvm学习笔记十二(访问控制器的栈校验机制)
欢迎装载请说明出处:http://blog.csdn.net/yfqnihao 本节源码:http://download.csdn.net/detail/yfqnihao/4863854 这一节,我们 ...
- 如鹏网学习笔记(四).Net常用类库
.Net常用类库 一.String成员方法(常用) 1,bool Contains(string str) 判断字符串对象是否包含给定的内容 2,bool StartsWith(String str) ...
- 如鹏网学习笔记(九)JavaScript
JavaScript笔记 一.JavaScript简介 1,JavaScript是一种计算机编程语言,可以像等其他编程语言那样定义变量,执行循环等. 2,JavaScript代码主要执行在浏览器上,为 ...
随机推荐
- 【Oracle 12c】CUUG OCP认证071考试原题解析(30)
30.choose the best answer Examine the commands used to create DEPARTMENT_DETAILS and COURSE_DETAILS: ...
- python 去除字符串的首末两端的空白字符
my_str = " adsffff adsfsad " my_str.strip() 使用strip()默认将 str 两端的空白字符去除掉 同时还有rstrip() 和 lst ...
- lamp-linux3
LAMP编程之Linux(3) 一.权限管理 1.权限介绍(重点) 在Linux中分别有读.写.执行权限: 读权限: 对于文件夹来说,读权限影响用户是否能够列出目录结构 对于文件来说,读权限影响用户是 ...
- [Swift]遍历字符串
Swift中无法再使用传统形式的for循环. //传统for循环形式不适用于Swift for(单次表达式;条件表达式;末尾循环体){中间循环体:} 字符串遍历方法1:使用该indices属性可以访问 ...
- java springboot+maven发送邮件
springboot+maven发送邮件 废话不多说直接上代码 1. pom 文件导入jar包 <!--邮件发送--> <dependency> <groupId> ...
- html中object和embed标签的区别
♦object定义一个嵌入的对象.请使用此元素向您的 XHTML 页面添加多媒体.此元素允许您规定插入 HTML 文档中的对象的数据和参数,以及可用来显示和操作数据的代码. ♦<object&g ...
- Postgres中的SpinLock锁
我们知道,在数据库中为了并发控制,少不了要使用各种各样的锁(lock).PostgreSQL中也不例外. 在PostgreSQL中有三种级别的锁,他们的关系如下: |上层 RegularLock | ...
- 3.3.1 Validations
摘要: 出处:黑洞中的奇点 的博客 http://www.cnblogs.com/kelvin19840813/ 您的支持是对博主最大的鼓励,感谢您的认真阅读.本文版权归作者所有,欢迎转载,但请保留该 ...
- Ubuntu下增加eclipse菜单图标并配置java path(解决点击图标不能启动eclipse的问题)
Ubuntu下增加eclipse菜单图标 Ubuntu的菜单图标在/usr/share/applications目录下. 1. 在/usr/share/applications目录下新建eclipse ...
- 8. JavaScript学习笔记——事件
8. 事件 8.1 事件基础 /// 事件就是用户或浏览器自身执行的某种动作.诸如 click.load 和 mouseover,都是事件的名字.而响应某个事件的函数就叫做事件处理程序(或事件侦听器) ...