这些天程序员如何处理ie6错误?

时间:2009-01-26 03:40:56

标签: javascript internet-explorer browser internet-explorer-6

我一直在使用院长edwards ie7/8 script。不确定这是否是我的实现,但有时我会遇到ie6问题,这些问题并没有得到很好解决,或required special handling这意味着我会回到我开始的地方,关心ie6。所以,我想知道ie7 / 8是否还在继续,或者其他一些练习/解决方案是否更好。

17 个答案:

答案 0 :(得分:17)

更新:我在这里通过我的网站上的教程扩展了我的答案,这可能比我在这里的答案更有帮助。 Ultimate IE6 Cheatsheet: How To Fix 25+ Internet Explorer 6 Bugs

以下是我如何处理IE6:

  • 我验证了我的XHTML和CSS。
  • 我的设计简单,即使是复杂的设计。
  • 我不使用使我失效的黑客 CSS。
  • 我使用JavaScript框架/库 (我喜欢MooTools,但你会得到一个 很多投票给jQuery,Prototype, YUI,Dojo和其他许多人) 处理我的大部分跨浏览器 JavaScript问题。
  • 我逐渐增强了我的页面 他们先没有工作 JavaScript然后添加所有的铃声 和口哨。
  • 对于一些双重保证金 问题,我用display:inline;
  • 如果我绝对必须,我会用 单独的样式表,虽然我是 发现我必须少做这件事 以下。
  • 我尽量避免使用透明图像 我的布局。如果我绝对需要 他们,我使用带有alpha的PNG8 透明度,IE6实际上做的 支持。
  • 为了解决最小高度问题,我 执行以下操作:

这适用于IE6,它将高度解释为min-height:

.classNameHere {height:300px;}

这是为了其他一切:

div>div .classNameHere {min-height:300px; height:auto;}

顺便提一下,如果你需要将IE6与CSS隔离,这是一个很好的方法,因为它不支持子选择器。

答案 1 :(得分:3)

我尽量不支持IE6

答案 2 :(得分:2)

YUI resetYUI grids让我在支持IE6时保持理智。

IE 6是一个“A级”浏览器,这意味着错误和错误优先。

答案 3 :(得分:2)

我正在使用:

  • “Reset.css”缩小浏览器默认CSS计算样式之间的差异(例如YUI reset.css
  • Conditional Comments将额外的css文件放入范围;)(例如./ieFix.css)
  • W3C Validator判断渲染的差异是由嵌套错误造成的,还是只是IE;)
  • 如果失败,jQuery会帮助很多;)

答案 4 :(得分:1)

我最近制定了一个关于IE6的政策,基本上,只要它不会破坏IE6上的网站,就不要花时间在它上面。

我不认为恕我直言,IE6仍然有足够的用途让我的公司继续花钱修复小问题。

以下是我公司跟踪数据的几个网站的快速数据样本。这是最近的数据(今天)和大约1年前的一些数据的组合,所以IE6的百分比比我们现在实际得到的更高,即使这样,除了3%的点击之外的所有数据都是8个网站中的一个包含在数据中。

alt text http://unkwndesign.com/browerUsage.png
**注意Chrome是基于webkit构建的,但它的编号不包含在webkit中,只是为了显示它的增长速度。由于四舍五入,总百分比为100.5%。

答案 5 :(得分:1)

我同意那些谈论过程涉及干净代码,条件评论,保持ie6快乐但不完美等等的回应。但这是一个非常谨慎的,一点一点的过程仍然是,心里很久消费的时候真的是一个浏览器。 我不愿回答任何回复,因为所有回复都谈到了我熟悉的现有方法。这可能是我的问题得到回答“否”:)因为基本上我是在一个框架之后,这意味着你甚至不必担心ie6的细微差别,只是现代方式的代码 - 我认为ie7 / 8的js会做的事情但即便在今天,我也意识到最小高度没有被修复!! 无论如何,谢谢回复 - 这有助于重新强化我的方法仍然是现状,我尽可能高效地利用我的时间。

答案 6 :(得分:1)

Conditional comments,耐心,有时ie7-js

答案 7 :(得分:1)

说实话,我最近并没有真正处理IE6问题。我的设计过程很简单:

  • 重置所有内容的边距/填充。我的意思是一切。
  • 每隔几分钟测试一次我的页面布局。在F5上点击一下。
  • 如果任何更改破坏了页面,我会停止所有内容并评估更改。
  • 如果不能使用所需的方法,我会研究替代方法,不包括“黑客”。
  • 我验证了标记和CSS。并且始终使用XHTML 1.0 Strict。
  • 我确保我的网站首先没有Javascript,然后再使用jQuery。

这些基本实践使我不必多年来不得不解决IE6问题。我仍然感到不安的唯一问题是IE6对支持透明度的PNG24的支持,但是IEPNGFix会处理这些问题 - 通常也不会破坏我的布局。

这可能是一个愚蠢的人的意见:
伟大的开发者不会找到投诉,他们找到解决方案。

答案 8 :(得分:0)

我认为对于您可以或不可忽略的浏览器,没有任何标准。这取决于组织 - 或者是初创公司的受众。你写的任何JS应该“优雅地降级”,但确保实际发生需要一些艺术性。

答案 9 :(得分:0)

对于IE问题,实际上只有一个“修复”,这有助于促进其自杀。我发现帮助IE自杀的唯一方法是教育我的访客。这可以通过嗅探浏览器来完成,如果检测到IE,则会显示“帮助升级网络”横幅。

有点像GMail那样......

我们在ra-ajaxstacked执行此操作(使用任何版本的IE访问该网站)

答案 10 :(得分:0)

构建for firefox首先,核心或降级设计元素经验告诉你IE6一开始就无法处理,而且不会花费比客户端规格更多的时间权证

TBH经验是IE6问题的首要预防措施

答案 11 :(得分:0)

  1. 让它在Firefox中运行;
  2. 检查它在IE7中的外观和效果是否相同;
  3. 检查它是否在IE6中有效(因为这已经足够了)。
  4. 如果你不能用简单的CSS进行布局(没有疯狂的相对+绝对定位或浮动:修复后),那就用表做吧;
  5. 放入DOCTYPE以强制浏览器符合(而非怪癖)模式;
  6. 通过最小化包含边框的使用(或通过为其他类似元素提供不可见边框)和嵌套元素来最小化填充/边距/边框组合来最小化框模型问题,这只会让您感到悲伤;
  7. 不要试图让CSS菜单适用于所有浏览器。它不再是2003了。只需使用Javascript(例如jQuery / superfish)。
  8. 仅限使用:悬停在链接上。如有必要,可以使用display:block。
  9. 进行更改

答案 12 :(得分:0)

  1. 在开始之前杀死所有默认样式。
  2. 向Dean Edwards写下脚本。
  3. 如果问题仍然存在,告诉用户升级。
  4. 如果IE6至关重要,请使用IE样式表删除任何不起作用的内容,并用不太复杂的样式替换它们。
  5. jQuery:hover等到.hover,输入[type = submit]到input.submit等。偶尔帮助使用旧版本的FF和Opera。

答案 13 :(得分:0)

我昨天决定不再支持它了。有movement starting trying to kill IE 6

感谢IE的条件评论,很容易为这些用户显示消息。

答案 14 :(得分:0)

我为Chrome构建它,然后我大部分时间都在为Firefox优化它然后我进入IE 8然后我进入IE 7,因为大多数错误我将被淘汰。在IE 7之后,我简要地看了一下Opera,结束了这一天。谁再关心IE 6了?

您是否向英特尔制造商抱怨cpu不适合您的comodore?有技术进步,我认为应该杀死IE 6最好的方法是告诉用户他必须升级并让网站看起来像废话,这是迫使他们切换的唯一方法。有些人最终会问他们的孩子为什么互联网被打破,然后儿子会安装所有更新,妈妈或爸爸可以再次开心。

我的回答简而言之:根本不再是我的处理方式。

答案 15 :(得分:0)

鼓励用户升级到更好的东西 - 任何东西。

答案 16 :(得分:0)

面对IE6中提供无用错误消息的JavaScript错误,我发现以下解决方案很有价值。

  1. Set up the free Visual Studio 2008 as a Debugger
  2. Set up your project for debugging