你在试图修复IE6中的一个错误之前,希望自己知道什么?

16

我最关注的是浮动和边距问题...

如果一个元素被浮动了,并且指定了它的边距,那么它的边距会变成两倍。

解决方法是在元素上添加 display: inline。这将阻止双倍边距,而其他浏览器将忽略它,因为只有块级对象可以浮动。

23个回答

18

我希望知道我会一遍又一遍地花费数小时来修复 IE 6 中的错误,并且这样做将持续多年,我真的会更喜欢送披萨。


想象一下当IE8发布,且符合他们所声称的标准时,生活将会是什么样子。再过几年,IE6可能就会消失不见了。至于CSS方面,开发IE7相对来说要容易一些。 - alex
@alex:下一个Windows Mobile将包含IE 6引擎。这说明它短期内不会消失。 - eyelidlessness
几乎所有IE 7 DOM的问题都是IE 6 DOM的问题。这包括规范中的大量内容,从Range的不正确实现到缺乏Mutation事件,再到完全破损的事件系统。 - eyelidlessness
jQuery可以将这个抽象化吗?我已经爱上了这个框架,尽管我觉得不应该依赖它。 - alex
我听说在澳大利亚的一次会议上。但你真的认为他们会这样做吗?苹果和微软友好相处?也许...顺便说一句,我曾经送过披萨,那几乎和为IE6编写CSS一样令人紧张(几乎!) - alex
显示剩余22条评论

17

我希望我早些了解 quirksmode.org。它的兼容性表、错误报告和JavaScript示例都非常有用。


链接指向 quriksmode.org,而非 quirksmode.org。 - Ray
1
@Ray:这肯定是IE的bug。 - eyelidlessness
1
@eyelidlessness,我称之为IR错误。 - Jimmy

13

不要首先为IE6编写代码,这是通往疯狂的道路。


阿门。我主要使用Firefox 3(以及使用IE Tab的IE7)作为测试平台来开发所有内容,一旦我把所有东西都搞定并且看起来不错,我就开始尝试让它在IE6中看起来相同(在较小程度上也是FF2),而不会破坏它。反过来做真的很糟糕。 - CMPalmer
我同意,Firefox似乎是开发人员的最佳选择。先为Firefox 3开发,然后再与其他浏览器兼容。这似乎是保持理智的最佳方式。 - Liam
你可能想要加入Webkit(Chrome或Safari)和Opera进行测试。站在“FireFox是WC3标准”的高峰上可能会导致非常痛苦的失败。 FireFox有很多CSS渲染错误,特别是在UI控件周围(例如,“input type = button”忽略了WC3盒模型,这可能会导致在符合标准的浏览器中查看其他控件时出现对齐问题)。目前没有任何浏览器完全按照WC3标准工作(不要让我开始谈论Opera对CSS2打印属性的切割),我怀疑它们是否会这样做。 - David
我完全同意。真正的要点是:不要只使用一个浏览器编码。任何浏览器(但尤其是IE)。你必须在所有浏览器中切换并逐步测试。 - Ben Scheirman

11

我希望我知道许多IE 6错误的行号会偏移一个。


8

首要问题:具有布局(hasLayout) 如果我一开始知道这个问题,那么我大部分的担忧都可以解决。 我甚至认为它比IE6愚蠢的盒子模型还要糟糕。


7

禁止访问 您没有权限访问此服务器上的/explorer/。 - Chris Porter
1
我认为这是您想要的链接:http://www.positioniseverything.net/explorer.html - Chris Porter

7
如果你真的很注重细节并花费大量时间,那么它会得到回报,然后你就成为了一个IE大师,除了自己变得悲哀之外,什么都不怕了...
虽然用你惊人的IE bug修复能力来 impress 别人是很好的...
  1. 大多数IE bug可以通过使用不同(通常更好)的CSS方法和超级干净的逻辑xhtml来避免
  2. 始终使用 overflow hidden(或者只有IE需要 hasLayout)清除浮动
  3. 了解什么是 hasLayout(基本上是一种给IE踢屁股的css属性)
  4. 当你开始开发网站时,一定要一直检查IE6,直到你成为专家为止;¬P
不幸的是,我训练了一个由6名开发人员组成的小团队,经验是唯一真正有助于解决这些问题的事情之一,保持冷静,在Google中进行良好的研究,并在社区发布您的问题,如果您真的陷入困境,请提供一个好的演示。
不错的链接>
  1. http://css-tricks.com/ie-css-bugs-thatll-get-you-every-time/(虽然我推荐Bob Osola的PNG修复/-0
  2. http://www.gtalbot.org/BrowserBugsSection/(惊人而有趣...太棒了!)
祝你好运!

使用overflow:hidden来清除浮动很方便,但并不适用于所有情况。有时候你需要让某个元素(比如图形或鼠标悬停效果)"溢出"其所在的div,但是overflow:hidden会将其裁剪掉。 - Andy Ford

7

我希望我知道微软为什么这么讨厌我。


如果IE6是一个人,他会被我残忍地折磨致死,让他经历丑陋、缓慢、屈辱和痛苦的死亡。我会享受每一秒钟的过程。 - DMin

6

我希望我早知道以下内容:

  • 有条件的注释可以用来仅为IE包含样式表。
  • xhtml头可以使IE以兼容模式呈现。
  • 盒子模型问题,这样我就知道在我的IE样式表中应该放什么了。

自从我学会了这些内容后,我没有花太多时间解决IE6的问题。

.Hauge


2
您不需要任何“xhtml头”(IE根本不支持XHTML)。标准模式是由某些DOCTYPE触发的,包括HTML4 Strict DOCTYPE。确保您使用的DOCTYPE具有URL。 - Kornel

5

而且JavaScript/专有的hack非常丑陋。他们为什么不能至少在服务包中添加更新来支持24位PNG的alpha通道呢? - alex
虽然支持单色透明的PNG图像,但是我在一个有很多4位图像和单色透明度的网站上使用了它,因为它们通常比它们的GIF对应物更小。 - Martin Kool
是的,但alpha透明度更酷炫!!!PNG中的单色(我是澳大利亚人:P)透明度与GIF相同,不是吗? - alex

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接