在每个浏览器中加载html5shiv是否有任何不良副作用?

时间:2012-10-05 14:47:14

标签: javascript html5 browser

html5shiv Google Code page上,示例用法包括IE条件:

<!--[if lt IE 9]>
    <script src="dist/html5shiv.js"></script>
<![endif]-->

但是在html5shiv github page上,说明解释了:

  

此脚本是启用HTML5切片的实际方法   旧版Internet Explorer中的元素,以及默认的HTML5样式   在Internet Explorer 6 - 9, Safari 4.x (以及 iPhone 3.x )中,   和 Firefox 3.x

一个明显的矛盾。所以为了满足我的好奇心,对于那些研究过代码的人来说,在每个浏览器中加载 html5shiv 会有不利的副作用(没有IE条件)吗?

编辑:显然,我的目标是在没有IE条件的情况下使用shiv。

1 个答案:

答案 0 :(得分:4)

我认为googlecode页面上的条件评论(可能超过一年前更新)是因为IE8及以下版本需要javascript trick来允许HTML5元素的 css样式

FF4,Safari 4,Opera 11及以下版本不会将display:block默认为“未知”元素,但您只需CSS reset即可更改此行为。

html5shiv在这些浏览器上的作用只是在<style>的开头添加<head>,与此类似:

article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section {
    display: block;
}

来源:http://meyerweb.com/eric/tools/css/reset/

因此, 不应该 给出任何副作用,因为这些规则可以被连续的声明覆盖。

只要您在主CSS文件的顶部添加该规则,就可以有条件地仅为IE包含​​html5shiv,您将保存一个http请求。

如果你想让你的html5网站与FF2兼容(如果是这样,那你就是疯子),check this tutorial

OP发现html5shiv已经为FF2提供了后备!