欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

前端笔记知识点整合之HTML5&CSS3(上)新特性&音频视频&本地存储

程序员文章站 2023-11-19 12:29:10
一、HTML5简介 HTML 5 的第一份正式草案已于2008年1月22日公布。HTML5 仍处于完善之中。然而,大部分现代浏览器已经具备了某些 HTML5 支持。 2014年10月29日,万维网联盟宣布,经过几乎8年的艰辛努力,HTML5标准规范终于最终制定完成了,并已公开发布。 HTML5不仅仅 ......

一、html5简介

html 5 的第一份正式草案已于2008122日公布。html5 仍处于完善之中。然而,大部分现代浏览器已经具备了某些 html5 支持。

20141029日,万维网联盟宣布,经过几乎8年的艰辛努力,html5标准规范终于最终制定完成了,并已公开发布。

html5不仅仅是超文本标记语言的新版本,而是一整套浏览器新api的综合

 

新的语义标签。我们知道html就是超文本标记语言,负责描述的是文档的语义、结构。html5中,提供了非常多的新的标签,<header><section><footer><nav><aside><article><address>等等。丰富了表单元素。

新的本地存储。html如果想往客户端存储东西(不是服务器),只能通过cookiehtml5中提供了一个新的api,叫做本地存储,可以让浏览器轻松的在客户端本地存储数据。

前端笔记知识点整合之HTML5&CSS3(上)新特性&音频视频&本地存储

 

  设备兼容特性。html5提供了移动设置的所有兼容的api方案,浏览器获得摄像头、陀螺仪、蜂鸣器等等的权利。对于pc浏览器,还加上了全屏api和拖放api

 前端笔记知识点整合之HTML5&CSS3(上)新特性&音频视频&本地存储

连接特性。http是无连接的,你的浏览器和服务器之间没有长久链接,html5中提出了web socket特性,可以让浏览器和服务器实时链接!比如制作联机对战的俄罗斯方块。

 前端笔记知识点整合之HTML5&CSS3(上)新特性&音频视频&本地存储

新的音频、视频。曾几何时,flash一统网页中的音视频,此时html5提出了新的videoaudio标签。可以让网页轻松的,不通过安装任何插件(比如不用安装adobe flash player)网页播放视频、音频。

 前端笔记知识点整合之HTML5&CSS3(上)新特性&音频视频&本地存储

新的画布和svg:制作网页的banner、游戏,可以不用flash了!现在有了canvas!我们要用canvas制作手机游戏,比如开心爱消除、flappy bird

 前端笔记知识点整合之HTML5&CSS3(上)新特性&音频视频&本地存储

性能与集成特性:比如xmlhttprequest对象出了2代版本,我们可以获得进度的apihtml现在提供了网页性能的api,能够检测http请求的拥堵、序列等等。

 

新的样式表:css3来了!炫酷爆了!

 前端笔记知识点整合之HTML5&CSS3(上)新特性&音频视频&本地存储

html5不是html的新版本,而是包含htmlcssjavascript、浏览器的一整套api

所以html5简称为h5有道理!不用刻意强调是html,因为html就是一个超文本标记语言,除了描述语义,什么都没有!但是你看见没有html5干到了http


 

1.1兼容性如何?

html5的兼容程度到底怎么样了呢?

兼容性测试:

 

 前端笔记知识点整合之HTML5&CSS3(上)新特性&音频视频&本地存储

 chrome

 前端笔记知识点整合之HTML5&CSS3(上)新特性&音频视频&本地存储

 firefox

 前端笔记知识点整合之HTML5&CSS3(上)新特性&音频视频&本地存储

ie 11

 前端笔记知识点整合之HTML5&CSS3(上)新特性&音频视频&本地存储

 ie9

 前端笔记知识点整合之HTML5&CSS3(上)新特性&音频视频&本地存储

ie8

 

html5的实现,特别依赖浏览器!所以现在pc端大家都在审慎使用html5,但是在移动端,html5已经火爆全球!!!整个微信中充斥html5小页面!婚礼请柬、炫酷页面。

华为p9iphone中的测试:

 前端笔记知识点整合之HTML5&CSS3(上)新特性&音频视频&本地存储前端笔记知识点整合之HTML5&CSS3(上)新特性&音频视频&本地存储

量化评分网站:html5一共555个新特性,每个小点算一个,不分权重。

 前端笔记知识点整合之HTML5&CSS3(上)新特性&音频视频&本地存储

特性兼容性查询网站html5所有特性(包括css3新属性,选择器)都能够进行查询,可以精确的告诉你什么浏览器兼容,什么不兼容。

 前端笔记知识点整合之HTML5&CSS3(上)新特性&音频视频&本地存储

统计研究院:

  

 

 


二、html5骨架和语法改变

2.1html5新骨架

<!doctype html>  →dtd极大简化dtd的书写
<html>
<head>
    <meta charset="utf-8" />   →字符集设置
    <title>document</title>
</head>
<body>

</body>
</html>

 这个dtd是ie67不支持,ie8开始支持。

 <!doctype html>

 

 ie8开始支持,如果为了更大用户兼容,还要写以前的写法

 <meta charset="utf-8" />

 


 

2.2html5新的语言规定

1html5中,属性的引号可以省略(除了有很多属性的)

  <div title=你好 id=box  class="box1 box2"></div>

2html5中标签不分大小写

 <div>标签不分大小写</div>

3html5中,自封闭标签可以省略“/”关闭符号

 <img src="" alt="" >

 <input type="" name="">

 <br>

4html5中,type类型可以不写

 <style></style>

 <link rel="stylesheet" href="">

 <script></script>

xhtml系列,在html5诞生之后就停止维护了,在html5中规范都放宽了标准,但是ie678对上面的支持不好。

作为老一代前端工程师,我们要保持风骨,在html5中也要以xhtml1.0的规范严格要求自己。

 


三、html5新增语义化标签

3.1新布局标签

传统布局风格:

<div class="header"></div>
<div class="nav"></div>
<div class="main"></div>
<div class="footer"></div>

 

html5推出了新的大纲标签,都是双标签,都有div的性质,块级元素,是容器 

以下是html5新的布局标签:

<header></header>   头部的语义
<footer></footer>   尾部的意义
<nav></nav>         导航语义
<main></main>       主体内容
<article></article> 文章语义
<section></section> 区域语义,代替div
<aside></aside>     侧边语义

 

上面这些标签,都是块级元素,没有任何默认样式,容器级标签,可以包裹任何东西,在语义上都比div大,它们能包裹div,但是div不能包裹它们。

新的提纲标签,ie9开始兼容,ie8还是不能用这些标签,移动端中可以嗷嗷用,因为手机没有ie

 

<header class="header">
    <h1 class="logo"></h1>
    <section class="right">
    </section>
</header>
<nav>
    <ul>
        <li>导航</li>
        <li>导航</li>
        <li>导航</li>
        <li>导航</li>
    </ul>
</nav>
<section class="content">
    <aside>侧边栏</aside>
    <main>
        <article>
            <header><h2>文章标题</h2></header>
            <section>
                文章内容
            </section>
        </article>
    </main>
</section>
<footer>
    底部
</footer>

 


3.2新的小语义标签

之前xhtml1.0中语义标签只有:puloldltable等,html5极大丰富了语义标签

 

● 地址address

 <address>广州市天河区棠东东路御富科贸园d108 点击查看百度地图</address>

 

缩写词语义 abbr

 <p>咱们出去玩的时候,记得带有<abbr title="gps是英文global positioning system(全球定位系统)">gps</abbr>的手机哈!</p>

前端笔记知识点整合之HTML5&CSS3(上)新特性&音频视频&本地存储

 

引用语义 cite

 <p>程序员一般不会老年痴呆,因为程序员都死得早,没有老年。<cite>中科院社会调查局2017年报告</cite></p>

 

 

程序语义:code

<code>
    for(var i = 0;i < 100;i++){
        if(i % 2 == 0){
            while(){
                console.log()
            }
        }
    }
</code>

前端笔记知识点整合之HTML5&CSS3(上)新特性&音频视频&本地存储

 

● 数据和数据标题,figurefigcaption

数据就是数据图片、表格。其实普通图片也可以称为数据。

<figure>定义媒介内容的分组,以及它们的标题

<figcaption>定义 figure 元素的标题。

<figure>
    <img src="images/1.jpg" >
    <figcaption>这个是我最喜欢的明星,但是有人了</figcaption>
</figure>

 

<details> 标签用于描述文档或文档某个部分的细节。

<summary> 标签 配合使用可以为 details 定义标题。标题是可见的,用户点击标题时会显示出 details

open 属性规定 details 是可见的。

<details open="open">
    <summary>*</summary>
    <address>北京市西城区南长街81号</address>
    <img src="img/znh.jpg" alt="">
</details>

 

对话框语义 dialog

规定 dialog 元素是活动的,用户可与之交互。

<dialog open>
    <p>您好</p>
    <p>我很好</p>
</dialog>

 

保留格式语义 pre

没有空白折叠现象了

<pre>
    for(var i = 0 ; i < 100 ; i ++){
        if(i % 2 == 0){
            while(true){

            }
        }
    }
</pre>

 

定义语义dfn

 <p><dfn>什么是浮云</dfn>一般暗指游子,浮云游子意,落日故人情。</p>

 

 

键盘按键语义 kbd

定义键盘文本。它表示文本是从键盘上键入的。它经常用在与计算机相关的文档或手册中

 p>qq中,截图的快捷键 是<kbd>ctrl</kbd>+<kbd>alt</kbd>+<kbd>a</kbd></p>

 

 

高亮语义 mark

<mark> 标签定义带有记号的文本突出显示

<p>明天天气很热,注意<mark>保暖</mark></p>

 前端笔记知识点整合之HTML5&CSS3(上)新特性&音频视频&本地存储

 

引用语义 q

 <p>我们学生必须<q>好好学习,天天向上</q></p>

浏览器在引用的周围插入了引号

 

注释语义,拼音语义:ruby rprt

<ruby>定义 ruby 注释。

<rt>定义 ruby 注释的解释。

<rp>定义若浏览器不支持 ruby 元素显示的内容(可选)

<ruby>
    汉<rp>(</rp><rt>hàn</rt><rp>)</rp>
    子<rp>(</rp><rt>zǐ</rt><rp>)</rp>
</ruby>

前端笔记知识点整合之HTML5&CSS3(上)新特性&音频视频&本地存储

 

定义样本文本 samp

<p>
    有钱人基本长得丑 <samp>马云</samp>
    不过张的丑的不一定是有钱人<samp>我</samp>
</p>

前端笔记知识点整合之HTML5&CSS3(上)新特性&音频视频&本地存储

 

小号文本 small

 <p>*雷事利驱使,淡定继续做<small>猎奴</small></p>

 前端笔记知识点整合之HTML5&CSS3(上)新特性&音频视频&本地存储

 

时间 time

 <p>每天<time datetime="201741417:22:22">9点整</time>上课</p>

 

●变量语义 var

 <p>二元一次方程:<var>x</var> = <var>y</var>+ 2</p>

 前端笔记知识点整合之HTML5&CSS3(上)新特性&音频视频&本地存储

 

换行机会 wbr

 <p>on the second friday of term anthony bevan, whom all his world called "bruiser bevan," house<wbr>master of "b. house" in hamchester college, sat at dessert with three of his prefects.</p>

 

菜单语义 menu

<menu type="context">
    <menuitem>西红柿炒番茄</menuitem>
    <menuitem>土豆炒马铃薯</menuitem>
    <menuitem>番薯煮地瓜</menuitem>
</menu>

 

<meter>标签定义已知范围或分数值内的标量测量。也被称为尺度

带有当前值以及 minmaxhighlow 属性的测量范围:

<h1>显示度量:</h1>
<p>张三的分数:<meter min="0" low="40" high="90" max="100" value="95"></meter></p>
<p>李四的成绩:<meter min="0" low="40" high="90" max="100" value="65"></meter></p>
<p>王五的成绩:<meter min="0" low="40" high="90" max="100" value="35"></meter></p>

前端笔记知识点整合之HTML5&CSS3(上)新特性&音频视频&本地存储

 

<progress>标签标示任务的进度(进程)

请结合 <progress> 标签与 javascript 使用,来显示任务的进度。

 下载进度:<progress value="22" max="100"></progress>

 

●模版存放盒子  template

<template>
    <p><%p%></p>
    <span><%sp%></span>
</template>

就是<script type="text/template"></script>浏览器自动给这个标签隐藏:

 前端笔记知识点整合之HTML5&CSS3(上)新特性&音频视频&本地存储


3.3选项列表分组标签

<select>
    <optgroup label="明星">
        <option>张学友</option>
        <option>刘德华</option>
        <option>黎明</option>
        <option>郭富城</option>
    </optgroup>
    <optgroup label="汽车">
        <option>奥拓</option>
        <option>比亚迪</option>
        <option>众泰</option>
    </optgroup>
</select>

四、html5新表单元素

4.1html5表单输入类型

 

类型

说明

type="email"

限制用户输入必须为email格式

type="url"

限制用户输入必须为网址格式

type="date"

限制类型为日期

type="time"

限制类型为时间

type="month"

限制类型为月份

type="week"

限制类型为星期

type="number"

限制用户输入必须为数字

type="range"

滑动条表单,value滑动条的值,min=’0’ max=’100’属性限制范围

type="color"

颜色选择表单 value的值必须为完整的16进制 value="#ffffff"

type="datetime-local"

本地时间

type="search"

搜索

 

以上大部分表单元素类型,在手机浏览器显示效果都不一样,在触摸屏键盘显示效果也不一样。


4.2 html5表单属性

autofocus属性

autofocus 属性规定在页面加载时,域自动地获得焦点。

注释:autofocus 属性适用于所有 <input> 标签的类型。

 <input type="text" autofocus>

 

required属性

required 属性规定必须在提交之前填写输入域(不能为空)。

注释 required属性适用于以下类型<input>标签:text, search, url, telephone, email, password, date pickers, number, checkbox, radio 以及 file

实例:

 <input type="text" required>

 

placeholder属性

placeholder 属性提供一种提示,描述输入域所期待的值。

注释:placeholder 属性适用于以下类型的 <input> 标签:text, search, url, telephone, email 以及 password

提示文本会在输入域为空时显示出现,会在输入域获得焦点时消失:

 <input type="text" placeholder="请输入内容">

autocomplete 属性

autocomplete 属性规定 form input 域应该拥有自动完成功能。

注释:适用于 <form> 标签,以及以下类型的 <input> 标签:text, search, url, telephone, email, password, datepickers, range 以及 color

当用户在自动完成域中开始输入时,浏览器应该在该域中显示填写的选项:

<form action="http://www.baidu.com" autocomplete="on">
    <p><input type="text" name="user1" ></p>
    <p><input type="text" name="user2" ></p>
    <p><input type="email" autocomplete="off" ></p>
    <input type="submit" >
</form>

multiple 属性

multiple 属性规定输入域中可选择多个值。

注释:multiple 属性适用于以下类型的 <input> 标签:email file

 <input type="file" name="img" multiple />

 

form 属性

form 属性规定输入域所属的一个或多个表单。

注释:form 属性适用于所有 <input> 标签的类型。

form 属性必须引用所属表单的 id

<form action="" id="user_form">
</form>
<input type="text" name="name" form="user_form" />

 

pattern属性

pattern 属性规定用于验证 input 域的模式是正则表达式。

注释:pattern 属性适用于以下类型的 <input> 标签:text, search, url, telephone, email 以及 password

下面的例子是验证11位手机号码:

 <input type="text" pattern="^[\d]{11}$" />

 

minmax step 属性

minmax step 属性用于为包含数字或日期的 input 类型规定限定(约束)。

max 属性规定输入域所允许的最大值。

min 属性规定输入域所允许的最小值。

step 属性为输入域规定合法的数字间隔(如果 step="3",则合法的数是 -3,0,3,6 等)。

注释:minmax step 属性适用于以下类型的 <input> 标签:date pickersnumber 以及 range

下面的例子显示一个数字域,该域接受介于 0 10 之间的值,且步进为 3(即合法的值为 036 9):

 <input type="number" name="points" min="0" max="10" step="3" />

 

注:属性和属性值一样的情况下,可以省略不写值。


4.3 html5表单元素

datalist 元素

定义和用法

<datalist> 标签定义选项列表。请与 input 元素配合使用该元素,来定义 input 可能的值。

datalist 及其选项不会被显示出来,它仅仅是合法的输入值列表。

请使用 input 元素的 list 属性来绑定 datalist

列表是通过 datalist内的option 元素创建的。

如需把 datalist 绑定到输入域,请用输入域的 list 属性引用 datalist id

<input type="url" list="url_list" />
<datalist id="url_list">
    <option label="w3school" value="http://www.w3school.com.cn" />
    <option label="google" value="http://www.google.com" />
    <option label="microsoft" value="http://www.microsoft.com" />
</datalist>
输入内容: <input type="text" list="cur" />
<datalist id="cur">
    <option value="奥迪汽车">奥迪</option>
    <option value="奥利奥饼干">奥利奥</option>
    <option value="迪奥汽车">迪奥</option>
    <option value="宝马汽车">宝马</option>
    <option value="悍马汽车">悍马</option>
    <option value="宝宝汽车">宝宝</option>
    <option value="众泰汽车">众泰</option>
    <option value="大众汽车">大众</option>
</datalist>

五、html5音频(audio

5.1音频格式

 前端笔记知识点整合之HTML5&CSS3(上)新特性&音频视频&本地存储

5.2音频标签

 <audio></audio>

基本写法:

 <audio src="music/yinyue.ogg" autoplay controls loop></audio>

 

兼容写法:

<audio controls>
    <source src="music/yinyue.mp3">
    <source src="music/yinyue.ogg">
    <a href="http://www.baidu.com">您的浏览器太旧了,请升级!</a>
</audio>

 

5.3音频标签属性

 前端笔记知识点整合之HTML5&CSS3(上)新特性&音频视频&本地存储


六、html5视频(video

6.1视频格式

 前端笔记知识点整合之HTML5&CSS3(上)新特性&音频视频&本地存储


6.2视频标签语法

 <video></video>

 

基本语法:

 <video src="video/pian.mp4" controls autoplay loop></video>

 

兼容语法:

<video controls>
    <source src="video/movie.mp4" type="video/mp4">
    <source src="video/movie.ogg" type="video/ogg">
    <a href="http://www.baidu.com">您的浏览器太旧了,请升级!</a>
</video>

6.3视频标签属性

 前端笔记知识点整合之HTML5&CSS3(上)新特性&音频视频&本地存储

音频和视频标签jsapi大全:


 

6.4音频/视频标签javascript api

6.4.1事件监听

当视频播放或停止时触发的事件

 v.onpause = function(){}

 v.onplay = function(){}

 


6.4.2方法

 play()   播放音频/视频

 pause()  暂停音频/视频

 load()  重新加载音频/视频元素

 

注意:这是原生js的方法,不能直接用jquery,但可以间接使用。

 $()[0].play()   通过[0]把选中的元素转换成原生对象就可以使用这些方法了。

 


6.4.3音频视频js api属性

 paused 设置或返回音频/视频是否暂停

 muted 设置或返回音频/视频是否静音

 currenttime 设置或返回音频/视频中的当前播放位置(以秒计),制作加速减速播放

 playbackrate 设置或返回音频/视频播放的速度

 duration 返回当前音频/视频的长度(以秒计)

 volume 设置或返回音频/视频的音量 1.0最高音量(默认)0.5一半音量(50%0.0静音

 


七、html5本地存储

7.1 本地存储简介

在客户端存储数据

html5 提供了两种在客户端存储数据的新方法:

  • localstorage - 没有时间限制的数据存储
  • sessionstorage - 针对一个 session 的数据存储

之前,这些都是由 cookie 完成的。但是 cookie 不适合大量数据的存储,因为它们由每个对服务器的请求来传递,这使得 cookie 速度很慢而且效率也不高。

html5 使用 javascript 来存储和访问数据。


7.2 localstorage语法

localstorage 方法存储的数据没有时间限制。第二天、第二周或下一年之后,数据依然可用。localstorage sessionstorage分别是本地存储和会话存储,统称本地存储。 

 存储数据:localstorage.setitem(‘key’,’value’);

 读取数据:localstorage.getitem(‘key’)

 

 删除指定数据:localstorage.removeitem(‘key’);

 清空所有数据:localstorage.clear()

 

本地存储数据库会自动的为每一个网站(ip地址)建立一个独立的表格,在同一个网站(ip地址)下数据是可以共享的,但是不能跨域。不能跨浏览器存储,每个浏览器都有自己的小数据库,chrome存储的,火狐看不见。

 前端笔记知识点整合之HTML5&CSS3(上)新特性&音频视频&本地存储

localstorage是简单的数据库,没有查询功能,不能用sql操作,只能简单的存储、读取k-v对。

sessionstorage 浏览器窗口一旦关闭,数据就丢失了

 

localstorage存储的数据,永远不丢失,关机,重启都不会导致数据丢失,除非清除了浏览器记录

前端笔记知识点整合之HTML5&CSS3(上)新特性&音频视频&本地存储

 

 


7.3使用json持久数据

很明显,如果只能存储字符串,这个数据威力不大,所以存储字符串意义不大,我们要存储json对象。

数据库只能存储字符串,所以存储josn的时候会显示object

 前端笔记知识点整合之HTML5&CSS3(上)新特性&音频视频&本地存储

 localstorage.setitem('iqianduan.cn_json',{"a":100,"b":200})

 

此时就要进行一个转换:

 把json变为字符串 → 存储 → 读取 → 把字符串转为json对象

&n