1.HTML5是什么?有哪些新特性?有哪些新增标签?如何让低版本的IE支持HTML5新标签
HTML5是超文本标记语言的第五次重大修改,2014年10月29日标准规范制定完成
特性:
语义特性
HTML5赋予网页更好的意义和结构。更加丰富的标签将随着对RDFa的微数据与微格式等方面的支持,构建对程序、对用户都更有价值的数据驱动的Web。
本地存储特性
基于HTML5开发的网页APP拥有更短的启动时间,更快的联网速度,这些全得益于HTML5 APP Cache以及本地存储功能。Indexed DB(html5本地存储最重要的技术之一)和API说明文档。
设备兼容特性
从Geolocation功能的API文档公开以来,HTML5为网页应用开发者们提供了更多功能上的优化选择,带来了更多体验功能的优势。HTML5提供了前所未有的数据与应用接入开放接口。使外部应用可以直接与浏览器内部的数据直接相连,例如视频影音可直接与microphones及摄像头相联。
连接特性
更有效的连接工作效率,使得基于页面的实时聊天,更快速的网页游戏体验,更优化的在线交流得到了实现。HTML5拥有更有效的服务器推送技术,Server-Sent Event和WebSockets就是其中的两个特性,这两个特性能够帮助我们实现服务器将数据“推送”到客户端的功能。
网页多媒体特性
支持网页端的Audio,Video等多媒体功能,与网页自带的APPS,摄像头,影音功能
三维、图形及特效特性(class: 3D, Graphics & Effects)
基于SVG、Canvas、WebGL及CSS3的3D功能
性能与集成特性
没有用户会永远等待你的Loading——HTML5会通过XMLHttpRequest2等技术,解决以前的跨域等问题,帮助您的Web应用和网站在多样化的环境中更快速的工作。
CSS3特性
在不牺牲性能和语义结构的前提下,CSS3中提供了更多的风格和更强的效果。此外,较之以前的Web排版,Web的开放字体格式(WOFF)也提供了更高的灵活性和控制性。
新增元素
元素 | 描述 |
---|---|
canvas | 标签定义图形,比如图表和其他图像。该标签基于JavaScript的绘图API |
audio | 定义音频内容 |
video | 定义视频(video或者movie) |
source | 定义多媒体资源<audio>和<video> |
embed | 定义嵌入的内容,比如插件 |
track | 为诸如<audio>和<video>元素之类的媒介规定外部文本轨道 |
datalist | 定义选项列表。与input元素配合使用该元素,来定义input可能的值 |
keygen | 规定用于表单的密钥对生成器字段 |
output | 定义不同类型的输出,比如脚本的输出 |
article | 定义页面正文内容 |
aside | 定义页面内容之外的内容 |
bdi | 设置一段文本,使其脱离其父元素的文本方向的设置 |
command | 定义命令按钮,比如单选按钮、复选框或按钮 |
details | 定义对话框,比如提示框 |
summary | 标签包含details元素的标题 |
figure | 规定独立的流内容(图像、图表、照片、代码等等) |
figcaption | 定义<figure>元素的标题 |
footer | 定义section或document的页脚 |
header | 定义文档的头部区域 |
mark | 定义带有记号的文本 |
meter | 定义度量衡。仅用于已知最大和最小值的度量 |
nav | 导航 |
progress | 定义任何类型的任务进度 |
ruby | 定义ruby注释(中文注音或字符) |
rt | 定义字符(中文注音或字符)的解释或发音 |
rp | 在ruby注释中使用,定义不支持ruby元素的浏览器所显示的内容 |
section | 定义文档中的节(section、区段) |
time | 定义日期或时间 |
wbr | 规定在文本中的何处适合添加换行符 |
针对低版本的IE支持HTML5新标签的解决方案是html5shiv
html5shiv的使用非常简单,考虑到IE9是支持HTML5的,所以只需要在页面head中添加如下代码即可:
<!–[if lt IE 9]> <script src="http://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script> <![endif]–>
2.input有哪些新增类型?
input新增type有:email, url, number, range, date picker(date, mouth, week, time, datetime )
3.浏览器本地存储中 cookie 和 localStorage 有什么区别?localStorage 如何存储删除数据。
cookie
cookie的内容主要包括:名字,值,过期时间,路径和域。路径与域一起构成cookie的作用范围。若不设置过期时间,则表示这个cookie的生命期为浏览器会话期间,关闭浏览器窗口,cookie就消失。这种生命期为浏览器会话期的cookie被称为会话cookie。会话cookie一般不存储在硬盘上而是保存在内存里,当然这种行为并不是规范规定的。若设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie仍然有效直到超过设定的过期时间。存储在硬盘上的cookie可以在不同的浏览器进程间共享,比如两个IE窗口。而对于保存在内存里的cookie,不同的浏览器有不同的处理方式。
cookie的特点:
1)cookie的大小受限制,cookie大小被限制在4KB,不能接受像大文件或邮件那样的大数据。
2)只要有请求涉及cookie,cookie就要在服务器和浏览器之间来回传送(这解释为什么本地文件不能测试cookie)。而且cookie数据始终在同源的http请求中携带(即使不需要),这也是Cookie不能太大的重要原因。正统的cookie分发是通过扩展HTTP协议来实现的,服务器通过在HTTP的响应头中加上一行特殊的指示以提示浏览器按照指示生成相应的cookie。
3)用户每请求一次服务器数据,cookie则会随着这些请求发送到服务器,服务器脚本语言如PHP等能够处理cookie发送的数据,可以说是非常方便的。当然前端也是可以生成Cookie的,用js对cookie的操作相当的繁琐,浏览器只提供document.cookie这样一个对象,对cookie的赋值,获取都比较麻烦。而在PHP中,我们可以通过setcookie()来设置cookie,通过$_COOKIE这个超全局数组来获取cookie。
sessionStorage
和服务器端使用的session类似,是一种会话级别的缓存,关闭浏览器会数据会被清除。不过有点特别的是它的作用域是窗口级别的,也就是说不同窗口间的sessionStorage数据不能共享的。
localStorage
这是一种持久化的存储方式,也就是说如果不手动清除,数据就永远不会过期。
它也是采用Key - Value的方式存储数据,底层数据接口是sqlite,按域名将数据分别保存到对应数据库文件里。它能保存更大的数据(IE8上是10MB,Chrome是5MB),同时保存的数据不会再发送给服务器,避免带宽浪费。
localStorage的缺点
① localStorage大小限制在500万字符左右,各个浏览器不一致
② localStorage在隐私模式下不可读取
③ localStorage本质是在读写文件,数据多的话会比较卡(firefox会一次性将数据导入内存,想想就觉得吓人啊)
④ localStorage不能被爬虫爬取,不要用它完全取代URL传参
属性方法 | 说明 |
---|---|
localStorage.length | 获得localStorage中的个数 |
localStorage.key(n) | 获得localStorage中第n个元素对的键值(第一个元素是0) |
localStorage.getItem(key) | 获取键值key对应的值 |
localStorage.key | 获取键值key对应的值 |
localStorage.setItem(key, value) | 添加数据,键值为key,值为value |
localStorage.removeItem(key) | 移除键值为key的数据 |
localStorage.clear() | 清除所有数据 |
4.写出如下CSS3效果的简单实例
1.圆角,圆形
2.div阴影
3.2D转换:放大、缩小、偏移、旋转
4.3D转换:移动、旋转
5.背景色渐变
6.过渡效果
7.动画