处理IE兼容性问题的最佳方法是什么?

时间:2010-05-19 05:42:46

标签: internet-explorer cross-browser

我认为这里的一切都与我一致,但IE是最不兼容的浏览器。

我为每个版本使用不同的特定css文件处理ie的不兼容性,以正确显示它?

有更好的方法吗?

2 个答案:

答案 0 :(得分:4)

使用不同的CSS文件与<! - [if IE]>的优势过滤器是你可以编写100%兼容的CSS,而黑客会使你的CSS无效。

另一方面,使用CSS hacks只有一个CSS文件的优点是下载效率。

不过,我更喜欢过滤器。使用下面的范例可以帮助我保持浏览器特定的CSS组织,并利用“级联”和等效的“特异性”是我发现处理浏览器不一致的最简单方法。不要忘记,您还可以在这些过滤器中包含特定于IE的JavaScript,以提高您的IE体验。


<link id="stylesheet1" rel="stylesheet" href="css/style.css" type="text/css" media="all" />
<!--[if IE]>
<link id="stylesheet2" rel="stylesheet" href="css/ie.css" type="text/css" media="all" />
<![endif]--> 
<!--[if lte IE 6]>
<link id="stylesheet3" rel="stylesheet" href="css/ie6.css" type="text/css" media="all" />
<![endif]-->

关于这个过滤器范例的另一个好处是你可以隔离为老化浏览器编写的代码,这些代码有一天会变得过时。例如,有人关心IE 5了吗?这些文件并没有减慢任何速度,因为它们只是根据需要下载,随着时间的推移它们不再那么需要。我宁愿这样做,而不是让我过时的代码与符合标准的代码交织在一起。

然而,除了IE以外的浏览器,如Safari或Firefox呢?好吧,尝试编写与Chrome / Safari / Firefox相同的CSS代码,我很少需要针对其中一个的特定黑客攻击,但是对于某些东西,我使用了特定于浏览器的CSS扩展。

另一种选择是javascript浏览器选择器:

http://rafael.adm.br/css_browser_selector/

最后,我简要地看了一下S.O.他们似乎没有使用IE过滤器。他们有一个CSS文件,他们巧妙地在无Cookie域上托管以提高性能:

http://sstatic.net/

答案 1 :(得分:2)

不同的CSS文件,每个文件都带有IF,即对它们进行过滤,这可能是分离出独立IE CSS的最简洁方法。