在您看来,跨浏览器CSS(IE7,Safari,Chrome,Firefox)的整洁方式是什么。
考虑到这是一个巨大的网络应用程序,这有一个很大的主要css文件,以及一些其他css文件。
有条件的Css?并为每个浏览器使用不同的CSS? 任何已知的工具?
感谢。
答案 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版本。