在IE6中修复CSS问题的最佳方式是什么?
我知道这可能归结为一个哲学问题,所以我不打算开始讨论这个话题。但我在寻找(或他们夫妇的)最好的方式来解决在Internet Explorer中的CSS样式的最问题6.在IE6中修复CSS问题的最佳方式是什么?
我所知道的this article on forabeautifulweb.com,它的建议,只给IE6用户通用平原IE6样式表,只有一些基本样式优于浏览器默认值。对于我的应用来说,这不是最好的。
我也意识到通过Javascript“修复”IE6的CSS支持的概念,我对这个想法很有兴趣。但我不知道最好的是什么(如果有的话) - 我知道有几个在野外漂流。 This article by Eric Meyer mentions one,但是这是近2年前写的,那么现在是否有一个更标准的脚本用于此目的?
任何人都可以指向一两个这样的脚本,这些脚本已被证明可以有效更新IE6的一些CSS处理,使其更像现代浏览器?
UPDATE:所有的人回答谁试图说服我不要用JS来解决这个问题 - 我堵我的耳朵和嗡嗡声。 :)
说真的,我不问是否使用JS。我们已经决定我们不需要支持IE6,我们不值得花时间去试试IE6的样式表。这个决定是基于我们的观众和我们的网站使用IE6的统计数据。
至于所有关于“如果用户没有启用JS会怎样?”的评论那么在这种情况下,我们网站上的很多内容无论如何都不会看起来很正确,所以这有点不起眼。
我已经实现了Gordon建议的IE7.js,这对于我们在IE6中获得很少的缺点已经足够了。
谢谢大家,您的意见也一样。
您可以使用this library如果你想用JavaScript来做到这一点:
IE7.js是一个JavaScript库,使微软的Internet Explorer的行为像一个符合标准的浏览器。它修复了许多HTML和CSS问题,并使IE6和IE6下的透明PNG工作正常。
还有CSS3Pie,这更增加了浏览器对CSS3的支持:
PIE使得Internet Explorer中6-8能够呈现几个最有用的CSS3装饰功能。
哇。我感到震惊的是,在6个答案中,只有一个实际上发布了一个我之后说的脚本的例子。谢谢。 – 2010-07-29 16:55:02
请不要使用JavaScript来解决这个问题,只需添加一些规则样式表来解决这些问题......
<link rel="stylesheet" type="text/css" href="normal.css" />
<!--[if IE 6]>
<link rel="stylesheet" type="text/css" href="ie6.css" />
<![endif]-->
在ie6.css,你只是有捏造样式规则在IE6中工作,你仍然使用它的正常样式表,所以你的网站在IE6和普通的世界看起来是一样的。
jQuery及其插件最适合IE6问题。试一试!
jQuery如何帮助解决CSS问题? – 2010-07-29 14:05:39
这个问题有其参考JavaScript固定CSS问题。现在,如果您在IE6中使用jQuery插件,例如jqueryUI对话框,那么您现在不需要为CSS计算正确的规格了吗?在某种程度上,jQuery修复了CSS问题。 tsk tsk tsk – scubacoder 2010-07-29 14:12:56
jQuery如何帮助您解决*自己的布局代码中的CSS问题? – 2010-07-29 15:23:08
通常,你不需要JavaScript。你可以使用普通的旧CSS。尽管如此,它有助于了解hasLayout。
通常情况下,您可以通过给出问题元素布局来修复IE6和7的问题。要做到这一点,给它一个固定的height
或width
,或使用专有zoom
。
我的青睐目标IE浏览器的特定版本的方法是使用条件注释到<div>
添加作为<body>
直接子,它可以让我知道我在(like so),该版本的IE。这样一来,我可以直接针对IE6:
.IE6 div.fubar {
zoom: 1;
}
另外要记住的是,这几乎是不可能实现跨越IE6/7/8 /火狐/ Safari /铬/歌剧,所以如果有些事情不要像素平价在近十年的浏览器中看起来不错,你并不总是需要担心。
Position is everything对IE浏览器漏洞的一些有用的提示了。
不要使用JavaScript,如果你能避免它 - 你不能保证你的用户已经激活JS(前面已经提到),你其实并不需要它。
为了摆脱浏览器中不同解释的许多问题(不仅仅是IE),请使用css-reset样式表。周围有很多漂浮物。
甚至更好的是,使用一个CSS框架,将消除不同浏览器之间有很多很多问题,并会与许多有用的类来解决问题的标准。
我为一个爱YAML(http://www.yaml.de/en/home.html),然后有蓝图(http://www.blueprintcss.org/),可能还有其他几个。相信我 - 一旦你使用了CSS框架,你将永远不想回头。
从个人体验来看,ie6可以在几行CSS内修复,并且可以用萤火虫/开发人员工具栏进行一些检查。不需要有条件的评论。
大部分我都翻过的问题是填充/保证金基础,它是下到我不使用最好的方法第一次轮。
我也发现overflow:hidden
也修复了ie6错误的公平份额。
我建议,让ie6打开developers toolbar,然后尝试找出问题所在,并想出更好的方法来编写该部分。
这就是我个人而言,我使用有条件的评论作为最后的度假胜地。
哦,这里是我经常使用的PNG FIX,该死的ie6 =) http://blog.pauljamescampbell.co.uk/about-2/png-fix/ – 2010-07-29 15:07:20
Dean Edwards的ie7.js脚本(由Gordon链接)仍然是该领域的艺术状态。
至于什么是最好的方法,这取决于。 Dean Edwards的脚本修复了大量的IE浏览器CSS错误,并允许你使用IE 6中根本不支持的多重类选择器和子选择器等选择器。
如果您很高兴您的目标受众中的IE 6用户倾向于打开JavaScript,像Dean's这样的图书馆可以为您节省大量时间,并允许您通过使用选择器IE 6不支持。
然而,你可能仍然需要一个IE 6的样式表来处理该院长库不能解决问题。
最好的解决方案可能是等待微软停止支持IE 6(就像他们使用Mac IE 5一样),因为如果微软不支持它,那么人们期望你不太公平。我们目前的得分为hoping for 2014。
我会有点犹豫,试图解决JavaScript的CSS问题,只是因为不能保证用户将启用JavaScript。 – 2010-07-29 13:57:39
这对我很有效:'' – 2010-07-29 14:05:31