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元素旨在包含作者.网站所有者.版权数据.网站规章 ...
随机推荐
- 【HDOJ6667】Roundgod and Milk Tea(模拟)
题意:有n个班级,每个班级有a[i]个人,b[i]杯奶茶 每个人至多喝一杯奶茶,且不能喝自己班的 问能喝到奶茶的最多总人数 n<=1e6,a[i],b[i]<=1e9 思路: 做法一: # ...
- /usr/bin/ld: cannot find -lgcc_s 问题解决小记
/usr/bin/ld: cannot find -lgcc_s 问题解决小记 博客分类: Linux/Ubuntu 由于之前用wubi装的ubuntu并且只给了它10G的硬盘空间,随着学习的深入这种 ...
- 移动端调试 — 安卓机+chrome
移动端开发时,我们常使用chrome自带的模拟器,模拟各种手机设备. 但模拟毕竟是模拟,当开发完毕,使用真机访问页面出现问题时如何调试呢? 下面介绍一种针对Android机的调试方法 1. 在pc和a ...
- I am going to India on a business trip
I think English is very important,and learn it must perseverant.So I determined to write diary on Bo ...
- JS-闭包(Closures)和let声明块级作用域变量
闭包: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Closures 闭包是函数和声明该函数的词法环境的组合. let: https ...
- leetcode 148. 排序链表(c++)
在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序. 示例 1: 输入: 4->2->1->3输出: 1->2->3->4示例 2: 输入: ...
- php面向对象三大特性
1.封装: 目的:使类更加安全 步骤:1.成员变量变成private(私有的)2.设置方法/调用方法3.在方法中增加限制 <?php class shao { private $aa;//必须是 ...
- 聊聊redis的监控工具
序 本文主要研究一下redis的监控工具 redis-stat redis-stat是一个比较有名的redis指标可视化的监控工具,采用ruby开发,基于redis的info命令来统计,不影响redi ...
- Content-Based Recommender System
Content-Based Recommender System是基于产品(商品.网页)的内容.属性.关键字,以及目标用户的喜好.行为,这两部分数据来联合计算出,该为目标用户推荐其可能最感兴趣的产品. ...
- ELK+Filebeat (2)
ELK+Filebeat收集多台机器不同日志 采坑:在使用了6.0版本的ELK以后,使用如上配置,if [type]匹配不到在filebeat里面使用document_type定义的字符串.在多次调试 ...