1个回答

4
我认为Google Code页面上的条件注释(可能超过一年没有更新)是因为IE8及以下版本需要javascript技巧才能允许对HTML5元素进行CSS样式设置。
Firefox 4、Safari 4、Opera 11及其以下版本默认不会将display:block应用于“未知”的元素,但您只需要使用CSS重置就可以更改这种行为。
在这些浏览器上,html5shiv所做的就是在<head>的开头添加一个<style>,类似于以下内容:
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(如果是这样,你是个疯子),请查看本教程

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


谢谢。对于有兴趣的人,html5shiv 只要客户端在 UA 中启用了 JavaScript,也可以解决 FF2 问题。 - Jeff
谢谢@Jeff,我不知道这个!他们应该在他们的GitHub上写下来 :) - Giona
如果html5shiv只做这些事情,为什么不直接将该代码块添加到您的主CSS文件中并完成呢?如果您的网站被古老的浏览器访问,它会有帮助;而如果他们使用现代浏览器,它也不会造成任何损害。对吧? - B. Clay Shannon-B. Crow Raven
@ClayShannon html5shiv提供了IE8所需的JavaScript回退,因此这些CSS行不足以保证完全的跨浏览器兼容性。直到IE8灭绝为止;-) - Giona

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接