Html5

作者: 皮卡丘的皮上丘 | 来源:发表于2019-05-31 17:34 被阅读0次

1,认识Html5

前面我们学习的html是什么?

  Html4.0 网页开发:   html 结构  4.0

                                    Css ->样式  2.0

                                    Js  行为用户交互

HTML5  是html4.0 升级版(狭义)

               结构 Html5 、样式 css3 、行为: API  都有所增强

HTML5并不仅仅只是做为HTML标记语言的一个最新版本,更重要的是它制定了Web应用开发的一系列标准,成为第一个将Web做为应用开发平台的HTML语言。

HTML5广义的概念: 代表着浏览器技术发展的一阶段,HTML5+CSS3+js API 一套前端技术的组合;

2,语义标签

<nav> 表示导航

<header> 表示页眉

<footer> 表示页脚

<section> 表示区块

<article> 表示文章如文章、评论、帖子、博客

<aside> 表示侧边栏如文章的侧栏

<figure> 表示媒介内容分组与 ul > li 做个比较

<mark> 表示标记 (带用“UI”,不怎么用)

<progress> 表示进度 (带用“UI”,不怎么用)

<time> 表示日期

本质上新语义标签与<div>、<span>没有区别,只是其具有表意性,使用时除了在HTML结构上需要注意外,其它和普通标签的使用无任何差别,可以理解成<div class="nav"> 相当于 <nav>。不要好奇,它只是一个标签!

尽量避免全局使用header、footer、aside等语义标签。

3,兼容问题

 在不支持HTML5新标签的浏览器里,会将这些新的标签解析成行内元素(inline)对待,所以我们只需要将其转换成块元素(block)即可使用,但是在IE9版本以下,并不能正常解析这些新标签,但是却可以识别通过document.createElement('tagName')创建的自定义标签,于是我们的解决方案就是将HTML5的新标签全部通过document.createElement('tagName')来创建一遍,这样IE低版本也能正常解析HTML5新标签了,在实际开发中我们更多采用的是通过检测IE浏览器的版本来加载三方的一个JS库来解决兼容问题。

4,表单

email 输入email格式

tel 手机号码 

url 只能输入url格式

number 只能输入数字。Step步长

search 搜索框

range 范围 滑动条value min max

color 拾色器

time   时间

date 日期 不是绝对的

--datetime 时间日期

month 月份

week 星期

部分类型是针对移动设备生效的,且具有一定的兼容性,在实际应用当中可选择性的使用。

5,表单元素

数据列表 :例:

keygen元素:

 keygen元素的作用是提供一种验证用户的可靠方法。

 keygen元素是密钥对生成器(key-pair generator)。当提交表单时,会生成两个键,    一个是私钥,一个公钥。

私钥(private key)存储于客户端,公钥(public key)则被发送到服务器。公钥可用于之后验证用户的客户端证书(client certificate)。

<label for=""> 加密类型: <keygen/> </label>

output 输出信息,不可当作数据提交

<label for=""> 推荐人:<output>春哥</output> </label>

meter 度量器:

<label for="#"> <meter value="50" max="100" min="0" low="30" high="80"></meter> </label>

progress进度条

<progress value="40" max="100" min="0"></progress>

6,表单属性

placeholder 占位符

autofocus  自动聚焦

autocomplete 用于表单元素,也可用于表单自身,自动完成填充, on 开(默认) off 取消提示

multiple 文件上传多选或多个邮箱地址,多选

required 必填项

novalidate 关闭表单的默认验证功能,可用于<form>标签

pattern: 自定义正则验证 pattern="\D+";

pattern 正则表达式验证表单

form 指定表单项属于哪个form,处理复杂表单时会需要

7,表单事件

    oninput:当用户输入时 触发

    oninvalid:当验证不通过是触发-->设置验证不通过时的提示文字

8,多媒体

在HTML5之前,在网页上播放音频/视频的通用方法是利用Flash来播放,但是大多情况下,并非所有用户的浏览器都安装了Flash插件,由此使得处理音频/视频播放变的非常复杂,并且移动设备的浏览器并不支持Flash插件。

音频:audio

autoplay 自动播放

controls 是否显不默认播放控件

loop 循环播放

preload 预加载 同时设置autoplay时些属性失效

由于版权等原因,不同的浏览器可支持播放的格式是不一样的

兼容:

多浏览器支持:

视频:video

autoplay 自动播放

controls 是否显示默认播放控件

loop 循环播放

preload 预加载,同时设置了autoplay,此属性将失效

width 设置播放窗口宽度

height 设置播放窗口的高度

由于版权等原因,不同的浏览器可支持播放的格式是不一样的

兼容:

多浏览器支持:

9,DOM扩展

获取元素:

document.getElementsByClassName ('class') 通过类名获取元素,以类数组形式存在。

document.querySelector(‘div’) 通过CSS选择器获取元素,符合匹配条件的第1个元素。

document.querySelectorAll('selector')通过CSS选择器获取元素,以类数组形式存在。

类名操作:

Node.classList.add('class')添加class

Node.classList.remove('class') 移除class

Node.classList.toggle('class') 切换class,有则移除,无则添加

Node.classList.contains('class') 检测是否存在class

自定义属性:

在HTML5中我们可以自定义属性,其格式如下data-*=""

例如:

data-info="我是自定义属性",通过Node.dataset['info']我们便可以获取到自定义的属性值。

Node.dataset是以类对象形式存在的,当我们如下格式设置时,则需要以驼峰格式才能正确获取,data-my-name="itcast",获取Node.dataset['myName']

10 ,多媒体新增API

    方法:load() 加载、play() 播放、pause() 暂停,webkitRequestFullScreen全屏

    属性:currentTime 视频播放的当前进度、

                duration:视频的总时间

              paused:视频播放的状态.

 事件:

       oncanplay:事件在用户可以开始播放视频/音频(audio/video)时触发。

       ontimeupdate:通过该事件来报告当前的播放进度.

       onended:播放完时触发

11,拖拽

在HTML5的规范中,我们可以通过为元素增加draggable="true"来设置此元素是否可以进行拖拽操作,其中图片、链接默认是开启的。

拖拽元素

页面中设置了draggable="true"属性的元素

目标元素

页面中任何一个元素都可以成为目标元素

事件监听

拖拽元素

ondrag        应用于拖拽元素,整个拖拽过程都会调用

ondragstart    应用于拖拽元素,当拖拽开始时调用

ondragleave  应用于拖拽元素,当鼠标离开拖拽元素时调用

ondragend     应用于拖拽元素,当拖拽结束时调用

目标元素

ondragenter   应用于目标元素,当拖拽元素进入时调用

ondragover   应用于目标元素,当停留在目标元素上时调用

ondrop         应用于目标元素,当在目标元素上松开鼠标时调用

ondragleave  应用于目标元素,当鼠标离开目标元素时调用

12,历史

提供window.history,对象我们可以管理历史记录,可用于单页面应用,SinglePageApplication,可以无刷新改变网页内容。

旧版本浏览器..

history.back() 回退

history.forward()前进

13,地理定位

获取地理信息方式

        1、IP地址

        2、三维坐标GPS(Global Positioning System,全球定位系统)

        3、 Wi-Fi

        4、   手机信号

        5、用户自定义数据

如下图对不同获取方式的优缺点进行了比较,浏览器会自动以最优方式去获取用户地理信息。

API详解:

navigator.getCurrentPosition(successCallback, errorCallback, options) 获取当前地理信息

navigator.watchPosition(successCallback, errorCallback, options) 重复获取当前地理信息

1、当成功获取地理信息后,会调用succssCallback,并返回一个包含位置信息的对象position。Coords(坐标)

        position.coords.latitude纬度

        position.coords.longitude经度

2、当获取地理信息失败后,会调用errorCallback,并返回错误信息error

3、可选参数 options 对象可以调整位置信息数据收集方式

14,web存储

随着互联网的快速发展,基于网页的应用越来越普遍,同时也变的越来越复杂,为了满足各种各样的需求,会经常性在本地存储大量的数据,传统方式我们以document.cookie来进行存储的,但是由于其存储大小只有4k左右,并且解析也相当的复杂,给开发带来诸多不便,HTML5规范则提出解决方案。

Storage 存储 

window.sessionStorage

window.localStorage

(向本地保存数据,有可能在浏览器内存里面,有可能在硬盘上面.)

特性

1、设置、读取方便

2、容量较大,sessionStorage约5M、localStorage约20M

3、只能存储字符串,可以将对象JSON.stringify() 编码后存储

window.sessionStorage

1、生命周期为关闭浏览器窗口

2、在同一个窗口下数据可以共享

window.localStorage

1、永久生效,除非手动删除

2、可以多窗口共享

方法详解

setItem(key,value) 设置存储内容

getItem(key) 读取存储内容

removeItem(key) 删除键值为key的存储内容

clear() 清空所有存储内容

key(n) 以索引值来获取存储内容

15,全屏

 HTML5规范允许用户自定义网页上任一元素全屏显示。

 requestFullscreen()开启全屏显示

 cancleFullscreen()关闭全屏显示

不同浏览器需要添加前缀如:

 webkitRequestFullScreen、mozRequestFullScreen

 webkitCancleFullScreen、mozCancleFullScreen

 通过document.fullScreen检测当前是否处于全屏

 不同浏览器需要添加前缀

     document.webkitIsFullScreen、document.mozFullScreen

全屏伪类

:full-screen .box {}、:-webkit-fu2ll-screen{}、:moz-full-screen{}

var docElm = document.documentElement;

if (docElm.requestFullscreen) {   docElm.requestFullscreen(); }

else if (docElm.mozRequestFullScreen) {  docElm.mozRequestFullScreen(); }

else if (docElm.webkitRequestFullScreen) {  docElm.webkitRequestFullScreen(); }

16,网络状态

我们可以通过window.onLine来检测,用户当前的网络状况,返回一个布尔值

   window.online用户网络连接时被调用

   window.offline用户网络断开时被调用

window.addEventListener("online",function(){  alert("已经建立了网络连接") })

window.addEventListener("offline",function(){ alert("已经失去了网络连接")   })

17,应用缓存

HTML5中我们可以轻松的构建一个离线(无网络状态)应用,只需要创建一个cache manifest文件

优势

可配置需要缓存的资源

网络无连接应用仍可用

本地读取缓存资源,提升访问速度,增强用户体验

减少请求,缓解服务器负担

缓存清单

一个普通文本文件,其中列出了浏览器应缓存以供离线访问的资源,推荐使用.appcache为后缀名,添加MIME类型AddTypetext/cache-manifest .appcache

例如我们创建了一个名为demo.appcache的文件,然后在需要应用缓存在页面的根元素(html)添加属性manifest="demo.appcache",路径要保证正确。

相关文章

网友评论

      本文标题:Html5

      本文链接:https://www.haomeiwen.com/subject/eyowtctx.html