跨浏览器CSS整洁的解决方案建议?

时间:2011-05-10 11:15:04

标签: css cross-browser

在您看来,跨浏览器CSS(IE7,Safari,Chrome,Firefox)的整洁方式是什么。

考虑到这是一个巨大的网络应用程序,这有一个很大的主要css文件,以及一些其他css文件。

有条件的Css?并为每个浏览器使用不同的CSS? 任何已知的工具?

感谢。

4 个答案:

答案 0 :(得分:5)

在我看来,如果你已经开始编写好的CSS,那么唯一需要任何重要补救工作的浏览器将是IE(在v9之前)。

对于所有其他当前浏览器,标准CSS应该无需任何更改即可运行。实际上,即使对于IE,如果你确保你的页面在标准模式而不是怪癖模式下加载,那么IE应该对大多数基本CSS表现出来。

明显的例外是,如果给定的浏览器不支持您尝试使用的功能。在这种情况下,您应该使用功能检测而不是浏览器检测。这是一个更强大的解决方案,因为很可能很快就会发布新版本的浏览器,这将支持该功能。

对于功能检测,我建议Modernizr

IE中缺少的一些功能,例如CSS圆角,可以使用像CSS3Pie这样的黑客修复,这允许您为包括IE在内的所有浏览器使用标准CSS代码。

对于那些简单无法用其他任何方式处理的IE中的那些蠢事,你应该使用IE's conditional comments feature来包含一个特定于IE的样式表。

如果您的CSS代码在此之后仍然无法通过浏览器运行,那么您可能在使用样式表时出错 - 请在此处发布并请求有关特定问题的帮助。

答案 1 :(得分:1)

我发现最好的方法是对IE使用条件注释:

<!--[if IE 7]>
    <link href="styles/IE7styles.css" rel="stylesheet" type="text/css">
<! [endif]-->

看到其他浏览器的行为与您期望的一样,您可以使用IE7特定的样式表:)

答案 2 :(得分:0)

在您遇到浏览器兼容性问题之前,我不会开始担心浏览器兼容性。

现代浏览器通常都以相同或相似的方式工作,因此如果您确实遇到问题,那么它们很可能与IE有关。通常最有效的方法是创建一个特定于IE的样式表,在主CSS之后使用条件注释,它允许您解决任何特定于IE的问题。但是首先尝试使用它们。

答案 3 :(得分:0)

在处理不同的IE版本时,你应该只有真正的问题,所以我会使用条件注释将适当的css文件加载到不同的浏览器。

我通常有一个“主”css文件,然后使用条件注释来定位IE版本。