HTML5知识点总结(一)
最近在复习前端的基础知识,在这里做一个总结,这是HTML5篇。
新特性
- 取消了过时的显示效果标记
<font></font>和<center></center>... - 新增语义化标签
- 新增多媒体标签(video视频,audio音频)
- 增加更多表单类型
- 新增canvas绘图标签
- 增加了标签拖动、数据存储等一些API
HTML5优缺点
优点
- 提高可用性和改进用户的友好体验;
- 可以给网站带来更多的多媒体元素(视频和音频);
- 可以很好的替代FLASH和Sliverlight;
- 当涉及到网站的抓取和索引的时候,对于SEO很友好;
- 将被大量应用于移动应用程序和游戏;
- 可移植性好。
缺点
该标准并未能很好的被浏览器所支持。因新标签的引入,各浏览器之间将缺少一种统一的数据描述格式,造成用户体验不佳。
1、删除或重定义了哪些标签
1.1 删除的标签
纯表现的元素
besefont、 big、center、 font、s、strike、tt、u
对可用性产生负面影响的元素
frame、frameset、noframes
产生混肴的元素
acronym、 applet、 isindex、dir
1.2 重定义标签
显示不变,只是表达的含义进行了重新定义的标签
| 标签 | 备注 |
|---|---|
| b | 代表内联文本,通常是粗体,没用传递表示重要的意思 |
| i | 代表内联文本,通常是斜体,没有传递表达重要的意思 |
| dd | 可以同detailsy与figure一同使用,定义包含文本,dialog亦可使用 |
| dt | 可以同details与figrue一同使用,汇总细节,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>标签为例):
- 在CSS中设置标签样式为块级
header { display: block; }
- 通过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知识点总结(一)的更多相关文章
- HTML5知识点总结
HTML5知识点总结(一) 一.HTML新增元素 1.IE9版本以下支持HTML5的方法 <!--[if lt IE9]> <script src="http://cdn. ...
- HTML5 知识点
HTML5 知识点 (1)语义化标记 <header>,<footer>,<nav>,<article>,<section> ...
- html5知识点:DOM编程
DOM是Document Object Model的缩写,中文名称是文档对象模型. DOM是处理HTML页面的标准编程接口,DOM可被JavaScript用来读取.改变HTML的内容和结构. 前端三大 ...
- Html5知识点
学习资料:http://how2j.cn/p/1036 周期:3天 github:https://github.com/BenCoper/Html5欢迎大家去Star以及Fork 总结:采用的都是ht ...
- HTML5知识点汇总(1)
HTML5 1.html5是什么 万维网的核心语言.标准通用标记语言下的一个应用超文本标记语言(HTML)的第五次重大修改.-------h5并不是一门新的语言,而是html语言的第五次修订. 2.h ...
- HTML/HTML5 知识点思维导图
1 - 浏览器 | 浏览器页面构成 2 - 浏览器 | 浏览器内核相关知识点 3 - W3C | 对WEB标准以及W3C的理解与认识? 4 - 标签 | Doctype相关知识点 5 - 标签 | m ...
- Html5知识点以及兼容性
什么的HTNL5? HTML5 是最新的 HTML 标准. HTML5 是专门为承载丰富的 web 内容而设计的,并且无需额外插件. HTML5 拥有新的语义.图形以及多媒体元素. HTML5 提供的 ...
- HTML5知识点笔记
1.HTML是一种标记语言 2.HTML元素不区分大小写 //可以在xss绕过waf时使用 3.<code></code>为空元素标签 <code/>为自闭合标签 ...
- html5知识点补充—footer元素的使用
使用footer元素创建脚注 顾名思义,footer元素通常位于页面的底部.尽管footer通常位于某个区域或者页面的底部,但并非总是如此.footer元素旨在包含作者.网站所有者.版权数据.网站规章 ...
随机推荐
- CF1037H Security 后缀自动机 + right集合线段树合并 + 贪心
题目描述: 给定一个字符串 $S$ 给出 $Q$ 个操作,给出 $L,R,T$,求出字典序最小的 $S_{1}$ 为 $S[L...R]$的子串,且 $S_{1}$ 的字典序严格大于 $T$. 输出这 ...
- Eclipse安装STS插件两种方式
spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过 ...
- 51nod1600 Simple KMP
题目描述 对于一个字符串|S|,我们定义fail[i],表示最大的x使得S[1..x]=S[i-x+1..i],满足(x<i) 显然对于一个字符串,如果我们将每个0<=i<=|S|看 ...
- [CSP-S模拟测试]:building(模拟)
题目传送门(内部题64) 输入格式 第一行有一个整数$id$,表示测试点编号.第二行有四个整数$n,m,k,q$.然后有$k$行,每一行有四个整数$x_{i_1},y_{i_1},x_{i_2},y_ ...
- [CSP-S模拟测试]:Market(背包DP)
题目描述 在比特镇一共有$n$家商店,编号依次为$1$到$n$.每家商店只会卖一种物品,其中第$i$家商店的物品单价为$c_i$,价值为$v_i$,且该商店开张的时间为$t_i$. $Byteasar ...
- noi.ac #712 练级
分析 把船当作点 练级当作边 发现一个连通块大于n-1的边的条数的奇偶性影响这个连通块的答案 于是并查集维护即可 代码 #include<bits/stdc++.h> using name ...
- JS-计算身份证校验码(最后一位)
在线预览 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF- ...
- Skyline(6.x)-二次开发手册使用技巧
毕业设计选择 Skyline 的 Web 端二次开发,由于以前没有接触过 ActiveX 控件的使用,二次开发手册是英文的读起来有点吃力,并且 IE 直接控制台输出 ActiveX 控件创建的对象看不 ...
- 002-序列化装换JSON&XML概述
一.概述 https://github.com/bjlhx15/java-serializer java-serializer 序列化项目 serialize-json-lib:json-lib框架 ...
- 【BASIS系列】SAP BASIS模块-后台配置的传输
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[BASIS系列]SAP BASIS模块-后台配 ...