一、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的更多相关文章

  1. python3.4学习笔记(十二) python正则表达式的使用,使用pyspider匹配输出带.html结尾的URL

    python3.4学习笔记(十二) python正则表达式的使用,使用pyspider匹配输出带.html结尾的URL实战例子:使用pyspider匹配输出带.html结尾的URL:@config(a ...

  2. Go语言学习笔记十二: 范围(Range)

    Go语言学习笔记十二: 范围(Range) rang这个关键字主要用来遍历数组,切片,通道或Map.在数组和切片中返回索引值,在Map中返回key. 这个特别像python的方式.不过写法上比较怪异使 ...

  3. 如鹏网学习笔记(十五)ASP.NET MVC核心基础笔记

    一.ASP.Net MVC简介 1,什么是ASP.NET MVC? HttpHandler是ASP.net的底层机制,如果直接使用HttpHandler进行开发难度比较大.工作量大.因此提供了ASP. ...

  4. 如鹏网学习笔记(十)DOM

    DOM笔记一.DOM简介 Document Object Model 文档对象模型 DOM的节点树模型:整个文档按照从大到小的节点划分,每一个内容都算作一个节点 DOM API 编程接口 可以用来操作 ...

  5. 如鹏网学习笔记(十四)ASP.NET

    Asp.net笔记 一.Socket类 进行网络编程的类,可以在两台计算机之间进行网络通讯 过程: 向服务器发送指令: GET /index.html HTTP/1.1 Host:127.0.0.1: ...

  6. 如鹏网学习笔记(七)HTML基础

    HTML笔记 一.HTML简介 1,HTML (Hyper Text Mark-up Language) 超文本标记语言,是一种编程语言,也可以说是一种标准.规范. 2,HTML提供了一系列标记(标签 ...

  7. java jvm学习笔记十二(访问控制器的栈校验机制)

    欢迎装载请说明出处:http://blog.csdn.net/yfqnihao 本节源码:http://download.csdn.net/detail/yfqnihao/4863854 这一节,我们 ...

  8. 如鹏网学习笔记(四).Net常用类库

    .Net常用类库 一.String成员方法(常用) 1,bool Contains(string str) 判断字符串对象是否包含给定的内容 2,bool StartsWith(String str) ...

  9. 如鹏网学习笔记(九)JavaScript

    JavaScript笔记 一.JavaScript简介 1,JavaScript是一种计算机编程语言,可以像等其他编程语言那样定义变量,执行循环等. 2,JavaScript代码主要执行在浏览器上,为 ...

随机推荐

  1. 【Oracle 12c】CUUG OCP认证071考试原题解析(30)

    30.choose the best answer Examine the commands used to create DEPARTMENT_DETAILS and COURSE_DETAILS: ...

  2. python 去除字符串的首末两端的空白字符

    my_str = " adsffff adsfsad " my_str.strip() 使用strip()默认将 str 两端的空白字符去除掉 同时还有rstrip() 和 lst ...

  3. lamp-linux3

    LAMP编程之Linux(3) 一.权限管理 1.权限介绍(重点) 在Linux中分别有读.写.执行权限: 读权限: 对于文件夹来说,读权限影响用户是否能够列出目录结构 对于文件来说,读权限影响用户是 ...

  4. [Swift]遍历字符串

    Swift中无法再使用传统形式的for循环. //传统for循环形式不适用于Swift for(单次表达式;条件表达式;末尾循环体){中间循环体:} 字符串遍历方法1:使用该indices属性可以访问 ...

  5. java springboot+maven发送邮件

    springboot+maven发送邮件 废话不多说直接上代码 1. pom 文件导入jar包 <!--邮件发送--> <dependency> <groupId> ...

  6. html中object和embed标签的区别

    ♦object定义一个嵌入的对象.请使用此元素向您的 XHTML 页面添加多媒体.此元素允许您规定插入 HTML 文档中的对象的数据和参数,以及可用来显示和操作数据的代码. ♦<object&g ...

  7. Postgres中的SpinLock锁

    我们知道,在数据库中为了并发控制,少不了要使用各种各样的锁(lock).PostgreSQL中也不例外. 在PostgreSQL中有三种级别的锁,他们的关系如下: |上层 RegularLock | ...

  8. 3.3.1 Validations

    摘要: 出处:黑洞中的奇点 的博客 http://www.cnblogs.com/kelvin19840813/ 您的支持是对博主最大的鼓励,感谢您的认真阅读.本文版权归作者所有,欢迎转载,但请保留该 ...

  9. Ubuntu下增加eclipse菜单图标并配置java path(解决点击图标不能启动eclipse的问题)

    Ubuntu下增加eclipse菜单图标 Ubuntu的菜单图标在/usr/share/applications目录下. 1. 在/usr/share/applications目录下新建eclipse ...

  10. 8. JavaScript学习笔记——事件

    8. 事件 8.1 事件基础 /// 事件就是用户或浏览器自身执行的某种动作.诸如 click.load 和 mouseover,都是事件的名字.而响应某个事件的函数就叫做事件处理程序(或事件侦听器) ...