1:HTML5是什么?有哪些新特性?有哪些新增标签?如何让低版本的 IE 支持 HTML5新标签
HTML5是超文本标记语言的第五次重大修改,目的是为了在移动设备上支持多媒体。
HTML 5的新特性有:
- 新的解析规则增强了灵活性
- 新属性
- 淘汰过时的或冗余的属性
- 一个HTML5文档到另一个文档间的拖放功能
- 离线编辑
- 信息传递的增强
- 详细的解析规则
- 多用途互联网邮件扩展(MIME)和协议处理程序注册
- 在SQL数据库中存储数据的通用标准(Web SQL)
新增标签:
标签 | 定义 |
---|---|
canvas | 标签定义图形,比如图表和其他图像。该标签基于 JavaScript 的绘图 API |
audio | 定义音频内容 |
video | 定义视频(video 或者 movie) |
source | 定义多媒体资源 <video> 和<audio> |
embed | 定义嵌入的内容,比如插件 |
track | 为诸如 <video> 和 <audio> 元素之类的媒介规定外部文本轨道 |
datalist | 定义选项列表。与 input 元素配合使用该元素,来定义 input 可能的值 |
keygen | 规定用于表单的密钥对生成器字段 |
output | 定义不同类型的输出,比如脚本的输出 |
article | 定义页面正文内容 |
aside | 定义页面内容之外的内容 |
bdi | 设置一段文本,使其脱离其父元素的文本方向设置 |
command | 定义命令按钮,比如单选按钮、复选框或按钮 |
details | 用于描述文档或文档某个部分的细节 |
dialog | 定义对话框,比如提示框 |
summary | 标签包含 details 元素的标题 |
figure | 规定独立的流内容(图像、图表、照片、代码等等) |
figcaption | 定义 <figure> 元素的标题 |
footer | 定义 section 或 document 的页脚 |
header | 定义了文档的头部区域 |
mark | 定义带有记号的文本 |
meter | 定义度量衡。仅用于已知最大和最小值的度量 |
nav | 导航 |
progress | 定义任何类型的任务的进度 |
ruby | 定义 ruby 注释(中文注音或字符) |
rt | 定义字符(中文注音或字符)的解释或发音 |
rp | 在 ruby 注释中使用,定义不支持 ruby 元素的浏览器所显示的内容 |
section | 定义文档中的节(section、区段) |
time | 定义日期或时间 |
wbr | 规定在文本中的何处适合添加换行符 |
2:input 有哪些新增类型?
新增的input类型:
type | 定义 |
---|---|
用于编辑 e-mail 的字段;在提交表单时。 | |
url | 用于编辑URL的字段。 |
number | 用于输入浮点数的控件。 |
range | 用于输入不精确值控件。 |
search | 用于输入搜索字符串的单行文本字段。 |
color | 用于指定颜色的控件。 |
tel | 用于输入电话号码的控件. |
time | 用于输入不含时区的时间控件。 |
datetime | 基于 UTC 时区的日期时间输入控件(时,分,秒及几分之一秒)。 |
datetime-local | 用于输入日期时间控件,不包含时区。 |
date | 用于输入日期的控件(年,月,日,不包括时间)。 |
week | 用于输入一个由星期-年组成的日期,日期不包括时区。 |
month | 用于输入年月的控件,不带时区。 |
3:浏览器本地存储中 cookie 和 localStorage 有什么区别? localStorage 如何存储删除数据。
特性 | Cookie | localStorage | sessionStorage |
---|---|---|---|
数据的生命期 | 可设置失效时间,默认是关闭浏览器后失效 | 除非被清除,否则永久保存 | 仅在当前会话下有效,关闭页面或浏览器后被清除 |
存放数据大小 | 4K左右 | 一般为5MB | 一般为5MB |
与服务器端通信 | 每次都会携带在HTTP头中,如果使用cookie保存过多数据会带来性能问题 | 仅在客户端(即浏览器)中保存,不参与和服务器的通信 | 仅在客户端(即浏览器)中保存,不参与和服务器的通信 |
易用性 | 需要程序员自己封装,源生的Cookie接口不友好 | 源生接口可以接受,亦可再次封装来对Object和Array有更好的支持 | 源生接口可以接受,亦可再次封装来对Object和Array有更好的支持 |
localStorage的使用
清空localStorage
localStorage.clear() // undefined
localStorage //Storage {length: 0} 存储数据
存储数据
localStorage.setItem("name","caibin") //存储名字为name值为caibin的变量
localStorage.name = "caibin"; // 等价于上面的命令
localStorage // Storage{name: "caibin", length: 1} 读取数据
读取数据
localStorage.getItem("name") //caibin,读取保存在localStorage对象里名为name的变量的值
localStorage.name // "caibin"
localStorage.valueOf() //读取存储在localStorage上的所有数据
localStorage.key(0) // 读取第一条数据的变量名(键值)
//遍历并输出localStorage里存储的名字和值
for(var i=0; i<localStorage.length;i++){
console.log('localStorage里存储的第'+i+'条数据的名字为:'+localStorage.key(i)+',值为:'+localStorage.getItem(localStorage.key(i)));
}
删除某个变量
localStorage.removeItem("name"); //undefined
localStorage // Storage {length: 0} 可以看到之前保存的name变量已经从localStorage里删除了
检查localStorage里是否保存某个变量
// 这些数据都是测试的,是在我当下环境里的,只是demo哦~
localStorage.hasOwnProperty('name') // true
localStorage.hasOwnProperty('sex') // false
将数组转为本地字符串
var arr = ['aa','bb','cc']; // ["aa","bb","cc"]
localStorage.arr = arr //["aa","bb","cc"]
localStorage.arr.toLocaleString(); // "aa,bb,cc"
将JSON存储到localStorage里
var students = {
xiaomin: {
name: "xiaoming",
grade: 1
},
teemo: {
name: "teemo",
grade: 3
}
}
students = JSON.stringify(students); //将JSON转为字符串存到变量里
console.log(students);
localStorage.setItem("students",students);//将变量存到localStorage里
var newStudents = localStorage.getItem("students");
newStudents = JSON.parse(students); //转为JSON
console.log(newStudents); // 打印出原先对象
4:写出如下 CSS3效果的简单事例
1\. 圆角, 圆形
2\. div 阴影
3\. 2D 转换:放大、缩小、偏移、旋转
4\. 3D 转换:移动、旋转
5\. 背景色渐变
6\. 过渡效果
7\. 动画