Html 我应该为所有浏览器使用几乎标准模式吗?

Html 我应该为所有浏览器使用几乎标准模式吗?,html,cross-browser,Html,Cross Browser,我正在从事一个需要IE6兼容性的项目。不幸的是。正因为如此,我试图针对几乎所有浏览器的标准,完全忽略标准模式,因此我只针对在相同标准模式下运行的浏览器。我认为,由于XHTML过渡版非常流行,几乎大多数标准都能保证在很长一段时间内得到支持。这是个好主意吗?不,这不是个好主意 这不是一个好主意,因为最终IE6将被淘汰(早晚),你将有一个混乱的网站,你必须跳转通过箍使它看起来一半体面 一个更好的解决方案是使用,简而言之,支持IE6所需的最低限度,并为遵循浏览器标准的现代浏览器提供好处 通过渐进式增强,

我正在从事一个需要IE6兼容性的项目。不幸的是。正因为如此,我试图针对几乎所有浏览器的标准,完全忽略标准模式,因此我只针对在相同标准模式下运行的浏览器。我认为,由于XHTML过渡版非常流行,几乎大多数标准都能保证在很长一段时间内得到支持。这是个好主意吗?不,这不是个好主意

这不是一个好主意,因为最终IE6将被淘汰(早晚),你将有一个混乱的网站,你必须跳转通过箍使它看起来一半体面

一个更好的解决方案是使用,简而言之,支持IE6所需的最低限度,并为遵循浏览器标准的现代浏览器提供好处


通过渐进式增强,您仍然可以获得对IE6的支持,但剩下的是一个更易于维护和进一步开发的基于标准的网站。

为了IE,使用“几乎标准化”模式会使其他浏览器变得简单。IE6/7不支持标准模式,因为它不适用。你不应该写针对无能的标记。用严格的doctype编写现代标记,并使用“有条件的评论”来攻击和击败IE,使其达到你能从中获得的最佳合规性,否则你将注定陷入一个黑暗和受伤的世界。

我公司软件大约40%的用户群使用IE6(比几年前的约60%有所下降)

我们的母版页具有XHTML1.1doctype集。我使用最新版本的Firefox完成所有的设计工作,然后一旦我能按照自己的意愿完成所有工作,我就使用微软发布的虚拟PC应用程序兼容性虚拟机在IE6中进行测试,并根据IE6的要求对我的CSS进行任何必要的更改

大多数时候,我可以使用稍微不同的CSS,不必求助于黑客,尽管有时我仍然这样做。但是黑客不会影响其他浏览器,因为它们是IE6特有的。我还没有谈到使用特定于浏览器的CSS文件的长度,因为我的IE6黑客攻击的范围大约是大约1500行CSS中的10行。我将CSS修改为“支持”IE6,但仍然使Firefox完全符合标准

编辑:感谢Rob的评论,我将把我的doctype更改为“HTML4.01严格遵守系统标识符”(提供的测试表明它不会破坏任何东西)。Wikipedia上的怪癖模式图显示了我当前的doctype(带有系统标识符的XHTML1.1,没有XML声明)在相同的呈现模式下的结果


不过,我上面所说的一切仍然适用。我在最新版本的Firefox(插件是我的朋友)中编写了符合标准的代码,然后在Firefox中“让IE工作”而不违反标准。

@Darko:我重新检查了wiki,发现实际上是IE 6和7不支持标准模式。我认为这将需要很长时间才能成为我们企业客户的障碍。顺便说一句,我正在考虑使用几乎是标准模式而不是怪癖模式IE7,而非完美模式仍然比IE6好得多。然而,我的建议仍然有效,因为根据我的经验,PE是处理旧浏览器的最佳策略,不管它们是什么。关于“几乎是标准模式”,我相信这只存在于Firefox中。我不知道其他浏览器有第三种模式,也不知道会有DOCTYPE呈现它。您链接到的表中的“A”似乎表示标准不完全受支持,因此几乎是标准的。根据文章,用于“几乎是标准模式”的标准是“非标准表格单元格高度渲染”。这本来是几乎标准和标准模式之间的唯一区别,但正如前面提到的,其他浏览器可能在模式之间有其他区别。好吧,假设您将使用几乎标准模式-您的DOCTYPE声明是什么样子的?如果我使用XHTML:
,如果我使用HTML:
,我倾向于同意,严格永远胜过一切——但有时你只需要务实。请注意,XHTML1.1 doctype是一个XML应用程序,必须作为application/xhtml+XML使用。由于IE不承认XHTML作为XHTML,我想您没有这样做,应该只使用XHTML1.0 doctype。我没有意识到这一点,所以感谢您的启发。我使用的XHTML1.1doctype的呈现模式与HTML4.01的呈现模式相同,在怪癖模式图上严格使用系统标识符。因此,我希望更改为该doctype。