让老版本IE支持HTML5
一直想入手C3和H5,但因为所开发的项目一直要求兼容IE7,IE8。而这两个浏览器并不支持html5,所以一直都在观望而未真正的投入太多精力去学习。尽管我知道h5和c3是主流。 在最近的项目开发中,偶然的一个机会,让我了解了两个js插件。而这两个组件正好解决了我的困扰。有句话讲得好:“万事俱备,只欠东风!”。说了这么多,接下来正式说说东风。
html5shiv.js和respond.js。这两个JS文件让不支持H5的IE浏览器开始接受支持H5和C3。
1.html5shiv.js
html5shiv.js让不支持html5的浏览器支持html5标签。html5的新元素不能作为父节点包裹子元素,并且不能应用CSS样式。html5shiv的使用非常的简单,考虑到IE9是支持html5的,所以直选要在页面的head中添加如下代码。
[code]<!--[ifltIE9]>
<script type="text/javascript" src="scripts/html5shiv.js"></script>
<![endif]--> [/code]
如果版本小于IE9就引入html5shiv.js,IE9以前的浏览器就能使用h5标签,并使用定义好的样式了。
2.Respond.js
Respond.js 是一个快速、轻量的 polyfill(注解1),用于为 IE6-8 以及其它不支持 CSS3 Media Queries 的浏览器提供媒体查询的 min-width 和 max-width 特性,实现响应式网页设计(Responsive Web Design)。
注解1:啥叫shim?啥是polyfill?
shim:是一个库,它将一个新的API引入到一个旧的环境中,而且仅靠旧环境中已有的手段实现
polyfill:就是一个用在浏览器API上的shim.我们通常的做法是先检查当前浏览器是否支持某个API,如果不支持的话就加载对应的polyfill.然后新旧浏览器就都可以使用这个API了.术语polyfill来自于一个家装产品Polyfilla。
使用起来也非常方便~同上!
[code]<!--[ifltIE9]>
<script type="text/javascript" src="scripts/respond.js"></script>
<![endif]--> [/code]