**html5**
1,新特性
- 新增语义化元素
- 新增表单相关新元素、新属性
- 新增canvas元素
* canvas 元素使用JavaScript 在网页上绘制图像
- 新增了多媒体相关的video和audio元素
- 地理信息
* HTML5通过引入Geolocation的API可以通过GPS或网络信息实现用户的定位功能,定位更加准确、灵活
- 对本地存储的更好支持
- 本地存储:提供两种客户端存储数据的方法
* localStorage存储 * sessionStorage存储
说明:兼容性是指(时间维度)
向后兼容, 就是本设备(或者软件)跟更老的设备比较, 是否可以读取更老设备的数据
向前兼容,就是指本设备跟更新设备比较, 是否可以读取更新设备产生的数据
2、H5新增的语义元素 <header>头部</header><footer>底部</footer>
<nav></nav>作用:定义导航链接的部分
- 典型应用:主导航、侧边栏导航、页内导航、菜单、面包屑导航、分页、目录和索引等
<article></article> 作用:元素表示文档、页面、应用或网站中的独立结构,可以成为可独立分配的或可复用的结构。
- 典型应用:论坛帖子、杂志或新闻文章、博客、用户提交的评论、交互式组,或者其他独立的内容项目
- 注意 - 每个article通常包括标题(h1 - h6元素)作为article元素的子元素
- 可能包含一个或多个section
<section></section>- 作用:- 定义文档中的节(页面中内容的区段、文章中的章节)。
- 典型应用:文章中的章节- 一个section元素通常由内容及标题组成
- 典型应用:侧边栏、标注框、广告等
新增其他标签
1、figure标签 - figcaption标签,在一个figure标签中只能有一个figcaption标签,一般用于图文
<figure>
<figcaption>定义figure的标题</figcaption>
<img src="../img/5.jpg" alt="">
</figure>
2、<mark>标签 带有标记的文本
表示页面中突出显示的、高亮的部分,目的吸引用户注意
- 行级标记;默认自带背景颜色(黄色),自带文字颜色(黑色),可修改
3、<time>日期时间标签 <time datetime="2020-8-13">中秋节</time>
datetime属性;日期时间,在time标签中设置日期时间
HTML5新标签对IE低版本浏览器的兼容处理
问题概述:IE9以下浏览器中还没有添加对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>
可以使用本地文件也可以使用外部资源库
- 百度静态资源库:(国内推荐使用)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标准推荐,建议尽量不要使用。