IE 6,7,8,9 CSS兼容性样式表

时间:2012-11-20 23:12:24

标签: css internet-explorer

为所有浏览器开发,然后争取IE兼容性是所有Web开发过程中众所周知的一步。

不是网络集成商,你知道任何适用于IE的通用兼容性样式表(在我的情况下我只关心IE7,但我会让问题为所有版本打开)

2 个答案:

答案 0 :(得分:5)

normalize.css是一个很好的重置,可以解决许多跨浏览器问题。 http://necolas.github.com/normalize.css/

如果你想要预先制作的组件,

Twitter Bootstrap是好的。它与IE兼容。 如果你决定使用Bootstrap,它的重置实际上是从normalize.css改编的(所以你不需要两者)

如果您从头开始,HTML5 Boilerplate也可能有助于一些最佳实践标记: https://github.com/h5bp/html5-boilerplate

特别是,我建议使用HTML5BP条件注释来定位特定的IE版本,如下所示:

<!--[if lt IE 7]>      <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]>         <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]>         <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->

这意味着在您的CSS中,您可以使用类来解决IE版本特定的问题:

.lt-ie8 .awesome-component { ... }

最后,我建议使用像CSS3PIE这样的javascript polyfill来反对。根据我的经验,他们只会造成比他们更值得的麻烦,增加不必要的标记。

了解优雅降级/渐进增强。

另一个答案提到IE7.js我认为很好,但我不记得它有多么有用。你肯定需要在IE&lt; = 8中填充缺少的JS函数(如果你正在使用js),例如Array.indexOf。我刚刚发现这个看起来非常好的ECMAScript5垫片: https://github.com/kriskowal/es5-shim

答案 1 :(得分:1)

我通常使用Eric Meyer的CSS重置(http://meyerweb.com/eric/tools/css/reset/),这是一个很好的简单起点。

您可能还想考虑使用ie7js(http://code.google.com/p/ie7-js/),它使用JavaScript来让不同版本的IE表现得更好。