每日知识分享

# **HTML5**

>html经过了第5次重大改版,增加了一些语义化的标签 高版本浏览器支持,ie9以下不支持, html5是向后兼容的,原来html4的 标签仍然可以用

## 1、新特性

- 新增语义化元素

- 新增表单相关新元素、新属性

- 新增canvas元素

* canvas 元素使用JavaScript 在网页上绘制图像

- 新增了多媒体相关的video和audio元素

- 地理信息

* HTML5通过引入Geolocation的API可以通过GPS或网络信息实现用户的定位功能,定位更加准确、灵活

- 对本地存储的更好支持

- 本地存储:提供两种客户端存储数据的方法

* localStorage存储

* sessionStorage存储

说明:兼容性是指(时间维度)

向后兼容, 就是本设备(或者软件)跟更老的设备比较, 是否可以读取更老设备的数据

向前兼容,就是指本设备跟更新设备比较, 是否可以读取更新设备产生的数据

## 2、H5新增的语义元素

HTML5新增了页眉、页脚、内容块等文档结构相关的标签,可以使文档结构更加清晰明确。

### header

- 语法

```

<header></header>

```

- 语义:定义整个文档或文档中一个节段的的头部(页眉)。

表示页面中一个内容区块或整个页面的头部或者标题, 通常可以用来包含logo 搜索框 标题

- 典型应用:整个页面的头部,某个区块的头部

### nav

- 语法

```

<nav></nav>

```

- 作用:定义导航链接的部分

- 典型应用:主导航、侧边栏导航、页内导航、菜单、面包屑导航、分页、目录和索引等

### footer

- 语法:

```

<header></header>

```

- 作用:定义文档或节的页脚

- 表示页面中一个内容区块或整个页面的脚注 , 包含友情链接、版权等

- 典型应用:网页中的底部版权信息,相关阅读链接,某个区块底部

### article

- 语法:

```

<article></article>

```

- 作用:元素表示文档、页面、应用或网站中的独立结构,可以成为可独立分配的或可复用的结构。

- 典型应用:论坛帖子、杂志或新闻文章、博客、用户提交的评论、交互式组,或者其他独立的内容项目

- 注意:

- 每个article通常包括标题(h1 - h6元素)作为article元素的子元素

- 可能包含一个或多个section

### section

- 语法:

```

<section></section>

```

- 作用:

- 定义文档中的节(页面中内容的区段、文章中的章节)。

- 典型应用:文章中的章节

- 一个section元素通常由内容及标题组成

- ```html

<section>

<h2> 标题一 </h2>

<p> 内容区域 </p>

</section>

```

### aside

- 语法

```

<aside></aside>

```

- 语义:定义当前页面或文章的附属信息部分

- 典型应用:侧边栏、标注框、广告等

### 新增其他标签

- 1、figure标签

- figcaption标签,在一个figure标签中只能有一个figcaption标签,一般用于图文

```html

<figure>

被主体内容引用的,相对独立的内容块,如:图表、代码块、图片等

<figcaption>定义figure的标题</figcaption>

<img src="../img/5.jpg" alt="">

</figure>

```

> 块级标记、自带间距

- 2、<mark>标签

带有标记的文本

- 表示页面中突出显示的、高亮的部分,目的吸引用户注意

- 行级标记;默认自带背景颜色(黄色),自带文字颜色(黑色),可修改

```html

<mark></mark>

mark {

background-color: pink;

color: red;

}

```

- 3、<time>日期时间标签

- 公历日期时间,行级标记

```html

<time>2020-8-13</time>

<time datetime="2020-8-13">中秋节</time>

datetime属性;日期时间,在time标签中设置日期时间

```

## 3、HTML5新标签对IE低版本浏览器的兼容处理

问题概述:IE8浏览器中还没有添加对HTML5新标签的支持,当在页面中使用HTML5新标签时,新标签不兼容

### 1)使用JavaScript新增元素的方法解决

```html

注意:使用javascript新增元素的方法解决,新增的出来的html5标签是行级元素,需要css把行内元素转为块

//js创建html5标签

document.createElement("header");

document.createElement("nav");

document.createElement("article");

document.createElement("section");

document.createElement("aside");

document.createElement("footer");

</script>

最后在css样式中将新建的header元素转为块级元素

header,

nav,

article,

section,

aside,

footer {

display: block;

}

<header>我说头部信息</header>

```

### 2)使用谷歌提供的html5shiv.js解决

~~~html

插件功能:用于解决IE8及以下版本的浏览器对HTML5新增元素的不兼容问题

写在网页头部(写在head标签内部)

<script src="js/html5shiv.min.js"></script>

可以使用本地文件也可以使用外部资源库

- Google 资源库:(不稳定)http://html5shiv.googlecode.com/svn/trunk/html5.js

- 百度静态资源库:(国内推荐使用)http://apps.bdimg.com/libs/html5shiv/3.7/html5shiv.min.js

~~~

## 4、html5里废弃的一些标签

```htm

● <acronym> 定义只取首字母缩写

● <applet> 规定 Java applet 的文件名

● <basefont> 定义文档中所有文本的默认颜色、大小和字体

● <big> 呈现大号字体效果

● <center> 标签控制文本的居中显示

● <dir> <dir> 标签定义目录列表

● <font> 标签规定文本的字体、字体尺寸、字体颜色

● <frame> 标签定义 frameset 中的一个特定的窗口(框架)

● <frameset> frameset 元素可定义一个框架集

● <noframes> noframes标签向浏览器显示无法处理框架的提示文本

● <strike> strike 标签可定义加删除线文本定义。

```

注意:由于H5是向后兼容的,所以在H5中使用这些标签也不会报错或出现异常,但这些元素在H5中已不被W3C标准推荐,建议尽量不要使用。

## 5、新增的多媒体元素

HTML5 规定了网页包含视频、音频的标准方法

### 1、音频audio

- HTML5种新增的音频的标准方法

- IE8及更早版本的浏览器中不支持

- HTML5中支持的音频格式

- ogg audio/ogg 支持浏览器 chrome、Firefox、Opera10+

- MP3 audio/MPEG 支持浏览器 chrome、firefox、OPera10+、IE9+、safari

- wav audio/wav 支持浏览器 chrome、Firefox、Opera、Safari

- 语法

```html

<audio src="音频文件路径"></audio>

加controls属性才可以播放

<audio src="./file/zhoujie.mp3" controls loop muted></audio>

行内块标签

```

- 常用属性

- src属性:音频文件的路径

- controls属性:浏览器为音频提供播放控件

- loop属性;循环播放

- muted属性;静音

### 2、视频video

- HTML5中视频标准方法

- IE8及更早版本的浏览器中不支持video标签

- HTML5支持的视频格式:

- ogg 支持的浏览器chrome、Firefox、Opera

- MPEG4--mp4 支持的浏览器chrome、Firefox、Safari、IE9+

- WebM 支持的浏览器chrome、Firefox、Opera

- 语法

```html

加controls属性才可以播放

<video src="./file/movie.mp4" controls></video>

行内块标签

```

- 常用属性

- src属性:视频文件的路径

- controls属性:视频播放控件

- loop属性:循环播放

- muted属性:静音

- width属性、height属性:视频播放器的宽度和高度

- poster属性:预览图片,视频正在下载时显示的图像

- autoplay属性:自动播放,必须静音后在播放

```html

<video controls poster="./img/01.jpg" width="200" height="200">

<source src="file/movie.mp4" type="video/mp4">

<source src="file/movie.ogg" type="video/ogg">

<source src="file/movie.webm" type="video/webm">

</video>

```

### 3、source音频媒介标签

允许使用source标签 引入多个音频、视频资源,浏览器使用第一个可以被识别的格式

```html

<source src="" type="audio/ogg">

<source src="" type="video/mp4">

<!-- 音频 -->

<audio controls>

<source src="../file/movie.ogg" type="audio/ogg">

<source src="../file/zhoujie.mp3" type="audio/mp3">

</audio>

<!-- 视频 -->

<video controls>

<source src="../file/guo.mp4" type="video/mp4">

<source src="../file/movie.webm" type="video/webm">

<source src="../file/movie.ogg" type="video/ogg">

</video>

```

## 6、新增表单元素和表单属性

### 1、表单元素

- 包含访问协议的完整路径的输入域,在提交表单时,自动验证url域的值

```html

<input type="url" placeholder="请输入地址" name="userURL">

```

- 包含e-mail地址的输入域,在提交表单时,自动验证email域的值

```html

<input type="email" placeholder="请输入邮箱地址" name="usermail">

```

- 用于搜索关键字的文本输入域,多用于手机客户端

```

<input type="search">

```

- 用于输入电话号码的文本输入域,服务于触屏网页开发,在电脑网页中无效,在触屏网页中点击输入域,显示虚拟电话键盘(0-9、*、#)

```html

<input type="tel">

```

- 用于包含数值的输入域

```html

<input type="number" max="10" min="0" value="2" step="2">

max属性:最大值

min属性:最小值

step属性:步长,合法的数字间隔,默认步长为1

```

> 注意:当用户输入的数值不在指定范围内,会弹出相关提示,并阻止表单提交

- 用于生成一个数字滑动条。与number类型比区别在于外观样式不同、默认值不同。range类型的min值默认为0,max属性默认值为100

```html

<input type="range" max="10" min="0" value="2">

```

- 用于生成一个颜色选择器,值为十六进制色值

```html

<input type="color">

<input type="color" value="#ffff00">

value:必须是十六进制,不能简写

```

### 时间日期选择器

#### 1、date日期

- 作用:选择一个日期(年月日)

- 代码示例

```html

<input type="date">

```

#### 2、time时间

- 作用:选择小时分钟

- 代码示例

```html

<input type="time">

```

#### 3、datetime-local本地时间

- 作用:选择一个日期和时间 (年月日时分)

- 代码示例

```html

<input type="datetime-local">

```

#### 4、month月份

- 从日期选择器中选择一个月份,包含年、月

```html

<input type="month">

```

#### 5、week周

- 从一个日期选择器中选择周,包含年、周(全年的第几周)

```html

<input type="week">

```

### 2)表单属性

- min、max、step属性

最小值、最大值、合法的数字间隔

用于包含数字的input类型,规定数值范围,如:input的number类型等

```html

<input type="number" step="2" min="4" max="10">

```

- placeholder属性

设置文本域的提示信息,当用户开始输入内容,提示信息会消失

- autocomplete属性

设置表单是否启用自动完成功能,可以加在form标签、input标签中

- autocomplete="on" 启用自动完成功能

- autocomplete="off" 不采用自动完成功能

> 在input标签中name属性是必要的

```html

<form action="#">

<div>

<input type="text" name="username" autocomplete="on">

<input type="text" name="username2" autocomplete="off">

</div>

<div><input type="submit" value="提交"></div>

</form>

```

- autofocus属性

页面加载时自动获取焦点;一个页面中只能有一个表单元素具有这个属性

```html

<input type="text" name="username2" autofocus>

```

- required属性

提交表单时元素不能为空

> 要让属性生效,不能添加value值

```html

<input type="text" required>

```

- pattern属性

验证输入内容——正则表达式

```html

<input type="text" pattern="[0-9]{3}">

0-9的三位数字

```

- multiple属性

```html

- multiple属性

可以选择多个值,用于长传域file类型和email类型的文本输入域

```html

<input type="file" multiple>

按ctrl键多选

```

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值