(1)HTML5现在已经不是SGML的子集,主要是关于图像,位置,存储,地理定位等功能的增加。
绘画canvas元素;
用于媒介回放的video和audio元素;
本地离线存储localStorage长期存储数据,浏览器关闭后数据不丢失,sessionStorage的数据在浏览器关闭后自动删除;
语意化更好的内容元素,比如article、footer、header、nav、section;
表单控件,calendar、date、time、email、url、search;
新的技术webworker,websockt和Geolocation。
(2)CSS3新特性:
- 实现圆角(border-radius),阴影(box-shadow),边框图片(border-image);
- 对文字加特效(text-shadow),强制文本换行(word-wrap),线性渐变(linear-gradient);
- 实现旋转transform:rotate(90deg),缩放scale(0.85,0.90),translate(0px,-30px)定位,倾斜skew(-9deg,0deg);
- 增加了更多的CSS选择器、多背景、rgba();
- 唯一引入的伪元素是::selection ;
- 实现媒体查询(@media),多栏布局(flex)。
(3)移除的元素
- 纯表现的元素:basefont,big,center,font,s,strike,tt,u;
- 对可用性产生负面影响的元素:frame,frameset,noframes;
(4)HTML5新标签的浏览器兼容问题是浏览器不能识别HTML5新标签而不能使用,解决办法有两种:
- 方法1:实现标签被识别
通过document.createElement(tagName)方法即可让浏览器识别新标签,浏览器支持新标签后,还可以为新标签添加CSS样式。
- 方法2:JavaScript解决方案
A)使用html5shim:
在<head>中调用以下代码:
<!--[if lt IE 9]>
<script> src="http://html5shim.googlecode.com/svn/trunk/html5.js"</script>
<![endif]-->
当然也可以直接把这个文件下载到自己的网站上,但这个文件必须在head标签中调用。
B)使用kill IE6
在</body>之前调用以下代码:
<!--if lte IE 6]>
<script src="http://letskillie6.googlecode.com/svn/trunk/letskillie6.zh_CN.pack.js"></script>
<![endif]-->
(5)区分HTML和HTML5:
- DOCTYPE声明
- 新增的元素