最近在复习前端的基础知识,在这里做一个总结,这是HTML5篇。

新特性

  1. 取消了过时的显示效果标记<font></font><center></center>...
  2. 新增语义化标签
  3. 新增多媒体标签(video视频,audio音频)
  4. 增加更多表单类型
  5. 新增canvas绘图标签
  6. 增加了标签拖动、数据存储等一些API

HTML5优缺点

优点

  1. 提高可用性和改进用户的友好体验;
  2. 可以给网站带来更多的多媒体元素(视频和音频);
  3. 可以很好的替代FLASH和Sliverlight;
  4. 当涉及到网站的抓取和索引的时候,对于SEO很友好;
  5. 将被大量应用于移动应用程序和游戏;
  6. 可移植性好。

缺点

该标准并未能很好的被浏览器所支持。因新标签的引入,各浏览器之间将缺少一种统一的数据描述格式,造成用户体验不佳。


1、删除或重定义了哪些标签

1.1 删除的标签

纯表现的元素

besefontbigcenterfontsstrikettu

对可用性产生负面影响的元素

frameframesetnoframes

产生混肴的元素

acronymappletisindexdir

1.2 重定义标签

显示不变,只是表达的含义进行了重新定义的标签

标签 备注
b 代表内联文本,通常是粗体,没用传递表示重要的意思
i 代表内联文本,通常是斜体,没有传递表达重要的意思
dd 可以同detailsyfigure一同使用,定义包含文本,dialog亦可使用
dt 可以同detailsfigrue一同使用,汇总细节,dialog也可用
hr 表示主题结束,而不是水平线,虽然显示相同
menu 重新定义用户界面的菜单,配合commond或者menuitem使用
small 表示小字体,例如打印注释或则法律条款
strong 表示重要性而不是强调符号

2、新增了哪些标签

2.1 结构标签(块状元素)——有意义的div

标签 备注
article 标记定义一篇文章
header 标记定义一个页面或一个区域的头部
nav 标记定义导航链接
section   标记定义一个区域
aisde    标记定义页面内容的侧边栏
hgroup    标记定义文件中一个区块的相关信息
figure    标记定义一组媒体内容以及他们的标题
figcaption  标记定义figure元素的标题
footer    标记定义一个页面或一个区域的底部
dialog    标记定义一个对话框(会话框)类似微信

2.2 多媒体标签

标签 备注
video   标记定义一个视屏
audio   标记定义音频内容
source   标记定义媒体资源
canvas   标记定义图片
embed   标记定义外部的可交互的内容或插件,比如flash

标签的意义:多媒体标签的出现意味着多媒体的发展以及支持不适用插件的情况下即可操作媒体文件,极大提升了用户体验。

2.3 Web应用标签

状态标签

标签 备注
meter    实时状态显示:气压、气温。 例:<meter value="0.3"></meter>30%
progress   任务过程:安装、 加载。 例:<progress></progress>

列表标签

标签 备注
datalist   为input标记定义一个下拉列表,配合option
details   标记定义一个元素的详细内容,配合summary
summary   标签为<details> 元素定义一个可见的标题。当用户点击标题时会显示出详细信息。

Menu

标签 备注
menu   命令列表(目前所有的主流浏览器都不支持)
menuitem   menu命令列表的标签(只有FireFox9.0+支持)
command    menu标记定义一个命令按钮(只有IE9支持)

2.4 其他标签

注释标签

标签 备注
ruby 标记定义注释或音标
rp 告诉那些不支持ruby的元素的浏览器如何去显示
et 标记定义对rubyd 注释内容文本

其他标签

标签 备注
mark 标记定义有标记的文本(黄色选中状态)
output 标记定义一些输出类型,计算表单结果配合oninput事件
keygen 标记定义表单里生成的键值(加密信息传送)
time 标记定义一个日期/时间,目前所有主流的浏览器都不支持

2.5 语义化标签兼容性

对于不支持HTML5语法的浏览器(如:IE8及以下版本浏览器),要想使用这些新标签,需要那个通过JavaScript创建该标签。具体做法如下(以<header>标签为例):

  1. 在CSS中设置标签样式为块级
header { display: block; }
  1. 通过JavaScript的DOM方式创建该标签
document.createElement('header');

由于HTML5新增的标签很多, 如果用上述方法创建标签也比较麻烦,所以我们可以通过简单引用html5shiv.js文件解决这个问题。

3、多媒体

3.1 音频

<audio src="" controls autoplay="autoplay" loop></audio>
<!--
controls: 在页面显示音频控件
autoplay="autoplay": 自动播放(谷歌浏览器不支持音频自动播放)
loop: 循环播放
-->

3.2 视频

<video src="" controls autoplay muted loop></video>
<!--
controls: 在页面显示音频控件
autoplay='autoplay': 自动播放(谷歌浏览器与`muted`属性同用可自动播放)
muted: 配合`autoplay`可以做到谷歌浏览器自动播放,但是,是静音状态
-->

不同格式音视频的兼容性

<video controls autoplay loop>
<source src="1.mp4">
<source src="1.ogg">
对不起,您的浏览器不支持,请升级。
</video

从上至下播放浏览器第一个可支持的视频格式。

4、表单元素

自带格式验证

类型 备注
<input type="email"> 邮箱
<input type="number"> 数字
<input type="url"> 地址
<input type="range"> 滑块
<input type="color"> 颜色
<input type="time"> 时间
......
<form autocomplete="on" novalidate></form>
<!--
autocomplete: on表示开启智能提示;off表示关闭智能提示
novalidate: 关闭智能验证
-->
<form action="" method="get" id="fm">
<input type="text" value="" autofocus placeholder="请输入名字" required>
<input type="submit" value="提交">
</form>
<input type="text" name="name" form="fm">
<!--
autofocus: 自动获取焦点
placeholder: 文本框提示信息
required: 该属性出现,当前的表单元素必须有验证
form: 该属性出现在表单标签中,值设置为form标签的ID值,该标签可以提交
-->
<input type="text" value="" list="url_list">
<datalist id="url_list">
<option value="https://www.baidu.com">百度</option>
<option value="https://www.google.com">谷歌</option>
<option value="https://www.youku.com">优酷</option>
<option value="https://www.qq.com">腾讯</option>
</datalist>

查看效果

5、自定义属性

<div id="dv" data-name="名字" data-age="20" data-user-sex="男"></div>

HTML5通过 "data-属性名" 的方式创建自定义属性。

JavaScript 通过dataset对象获取自定义属性。

注:获取dataset中的属性名需要改成驼峰式命名,如 user-sex 改为 userSex

var dv = document.getElementById('dv')
var dt = dv.dataset;
var str = ''
str = dt.name + ',' + dt.age + ',' + dt.userSex;
dv.innerText = str;

执行上方代码或 点击这里 查看打印结果

6、读取文件

通过 FileReader 接口读取文件内容。

<input type="file" id="f1">
<input type="submit" id="btn1" value="上传">
var f1 = document.querySelector('#f1');
var btn1 = document.querySelector('#btn1');
btn1.onclick = function(){
// 获取上传文件
var fl1 = f1.files[0];
// 读取文件,创建读取文件的对象
var fReader = new FileReader();
// 读取文件
fReader.readAsText(fl1);
// 开始读取文件的加载事件
fReader.onload = function() {
var style= document.createElement('style');
var result = fReader.result;
style.innerHTML = result;
document.querySelector('head').appendChild(style)
}
}

新建 style.txt 文件,编辑内容:

#btn1{
width: 70px;
height: 30px;
border: none;
background-color: green;
font-size: 14px;
color: #fff;
}

运行程序,上传 style.txt 文件,查看样式变化。
点击此处 快速运行

7、网络状态检测

7.1 navigator.onLine

var state = window.navigator.onLine;
// 返回布尔值,网络联通为true,反之为false
if(state){
alert('在线')
}else{
alert('离线')
}

主流浏览器都支持。

7.2 document.ononline

window.ononline=function(){
alert('连接上了')
}
window.onoffline=function(){
alert('断网了')
}

浏览器支持情况:

事件 Chrome IE Firefox Safari Opera
ononline 不支持 IE8(IE11 已废弃) 3.0 不支持 不支持

HTML5知识点总结(一)的更多相关文章

  1. HTML5知识点总结

    HTML5知识点总结(一) 一.HTML新增元素 1.IE9版本以下支持HTML5的方法 <!--[if lt IE9]> <script src="http://cdn. ...

  2. HTML5 知识点

    HTML5 知识点   (1)语义化标记       <header>,<footer>,<nav>,<article>,<section> ...

  3. html5知识点:DOM编程

    DOM是Document Object Model的缩写,中文名称是文档对象模型. DOM是处理HTML页面的标准编程接口,DOM可被JavaScript用来读取.改变HTML的内容和结构. 前端三大 ...

  4. Html5知识点

    学习资料:http://how2j.cn/p/1036 周期:3天 github:https://github.com/BenCoper/Html5欢迎大家去Star以及Fork 总结:采用的都是ht ...

  5. HTML5知识点汇总(1)

    HTML5 1.html5是什么 万维网的核心语言.标准通用标记语言下的一个应用超文本标记语言(HTML)的第五次重大修改.-------h5并不是一门新的语言,而是html语言的第五次修订. 2.h ...

  6. HTML/HTML5 知识点思维导图

    1 - 浏览器 | 浏览器页面构成 2 - 浏览器 | 浏览器内核相关知识点 3 - W3C | 对WEB标准以及W3C的理解与认识? 4 - 标签 | Doctype相关知识点 5 - 标签 | m ...

  7. Html5知识点以及兼容性

    什么的HTNL5? HTML5 是最新的 HTML 标准. HTML5 是专门为承载丰富的 web 内容而设计的,并且无需额外插件. HTML5 拥有新的语义.图形以及多媒体元素. HTML5 提供的 ...

  8. HTML5知识点笔记

    1.HTML是一种标记语言 2.HTML元素不区分大小写  //可以在xss绕过waf时使用 3.<code></code>为空元素标签 <code/>为自闭合标签 ...

  9. html5知识点补充—footer元素的使用

    使用footer元素创建脚注 顾名思义,footer元素通常位于页面的底部.尽管footer通常位于某个区域或者页面的底部,但并非总是如此.footer元素旨在包含作者.网站所有者.版权数据.网站规章 ...

随机推荐

  1. php怎么启动exe文件

    PHP作为一种服务器端的脚本语言,象编写简单,或者是复杂的动态网页这样的任务,它完全能够胜任.但事情不总是如此,有时为了实现某个功能,必须借助于操作系统的外部程序(或者称之为命令),这样可以做到事半功 ...

  2. Angular:自定义表单控件

    分享一个最近写的支持表单验证的时间选择组件. import {AfterViewInit, Component, forwardRef, Input, OnInit, Renderer} from & ...

  3. BZOJ 4407: 于神之怒加强版 莫比乌斯反演 + 线筛积性函数

    Description 给下N,M,K.求     Input 输入有多组数据,输入数据的第一行两个正整数T,K,代表有T组数据,K的意义如上所示,下面第二行到第T+1行,每行为两个正整数N,M,其意 ...

  4. [CSP-S模拟测试]:Seat(概率DP+数学)

    题目描述 有$n+2$个座位等距地排成一排,从左到右编号为$0$至$n+1$.最开始时$0$号以及$n+1$号座位上已经坐了一个小$G$,接下来会有$n$个小$G$依次找一个空座位坐下.由于小$G$们 ...

  5. php常见五种设计模式

    php面向对象基础知识 请点击查看 一.常见的设计模式主要有23种,根据使用目标的不同可以分为以下三大类:创建设计模式.结构设计模式.行为模式创建设计模式: (5种)用于创建对象时的设计模式.初始化对 ...

  6. 129、TensorFlow计算图的可视化

    import tensorflow as tf # Build your graph x = tf.constant([[37.0, -23.0], [1.0, 4.0]], name="i ...

  7. 2019牛客暑期多校训练营(第三场)H Magic Line

    原题链接:H  Magic Line 题意简述: 给定n个点,要求画一条直线将n个点分成均有n / 2个点的两部分,不能有点在线上: 解题思路: 首先,先将所有的点进行以x为第一关键字,y为第二关键字 ...

  8. HTML5基本标签<搬运>

    HTML语言基本标签: 创建一个HTML文档<html></html> 设置文档标题以及其他不在WEB网页上显示的信息<head></head> 设置文 ...

  9. Yii中CreateUrl的使用总结

    在Yii中经常要生成URL,不管是为了自动跳转还是仅仅是一个链接.下面对Yii中的URL生成做了一个总结.提示:以下controllerX代表控制器X,actionX代表方法X.在Controller ...

  10. spring(二):bean的生命周期

    bean的生命周期指的是bean的创建——>初始化——>销毁的过程,该过程是由spring容器进行管理的 我们可以自定义bean初始化和销毁的方法:容器在bean进行到当前生命周期时,调用 ...