当您必须支持 IE6 时,是否可以拥有符合 W3C 标准的代码?w3
-
12-09-2019 - |
题
我试图激励我的团队成员验证我们的代码,但似乎有些失望,因为我们仍然需要支持 IE6。
对此大家有什么想法吗?
这就是我想要的:
- 语义代码 - 是
- 验证代码 - 是
- 适用于 IE6 - 是
我们不要在这里争论语义哈哈。=]
HTML JS CSS
解决方案
是的,您可以拥有完全兼容的代码,并将 IE6 的残渣保留在单独的文件中(通常):
只需使用 IE 条件语句隐藏任何 IE6 特定代码即可。如果您希望 CSS 仍然有效,这是首选方法。此外,所有有效的 HTML 都应该在 IE6 中正常工作,并通过 CSS 应用正确的样式:
<!--[if lte IE 6]>
<link rel="stylesheet" href="/css/ie6.css" type="text/css" media="screen" />
<![endif]-->
这将对所有验证器隐藏,并且代码的其余部分可以保持有效。
事实上,由于条件注释只是 HTML 注释,因此即使该代码仍然有效。
编辑:
证明这一点的唯一方法是构建一个示例,但是使用 IE6 和适当的编码知识,这三种方法都可以实现。
- 语义代码:是的
- 验证代码:是的
- 在 IE6 中工作:是的
事实上,不仅 IE6 存在有效代码问题,IE6 和 IE7(以及 IE8)也存在问题,但同样,仅在 CSS 中。验证您的主要 CSS 文件,但将 IE6 CSS 与条件分开。
我很少需要向 HTML 添加额外的标记来支持 IE6(除了 head
)。这只是理解盒模型并相应地构建语义页面的问题。
一个或两个 divs
如果它们呈现出适当的分组,那么它们就不是邪恶的。三层嵌套 divs
修复一个 bug
是邪恶的:)
其他提示
简短回答:是的!
根据我的经验,有效的语义标记实际上在 IE6 中效果更好。将其与正确、有效且简单的 CSS 结合起来,您就已经非常出色了。当然,您肯定会在 IE6 中遇到一些奇怪的行为,尤其是对于更复杂的设计,如上所述。然而,这些错误大部分都是 有据可查. 。使用简单、有效的代码,识别和解决这些问题通常相当简单。
如上所述,条件注释当然有效,但是开发有效的代码将阻止您在代码中加入各种条件。
还是无法发挥作用吗?优雅地降级!当然,圆角很漂亮而且很流行,但是 20%(希望更少)仍然生活在黑暗时代的用户可能不会错过它们。
让代码在 IE6 中工作需要做一些工作,让代码验证也需要一些工作,但这并不意味着它们是同一种工作,或者其中一个会使另一个变得不可能。
实际上没有任何内容表明代码必须通过验证才能在 IE6 中运行。相反,验证的代码更有可能在任何浏览器中运行,而不仅仅是 IE6。您可以使用无效代码来规避一些 IE6 怪癖,但这并不是规避这些问题的唯一方法。当新的浏览器版本发布时,使用有效代码的方法也更有可能继续工作,这样您就不必为每个新的浏览器更新重新开始。
如果您不必同时考虑有效代码,那么让代码在 IE6 中运行当然会更容易,但这只是因为需要考虑的因素更多,而不是因为这些因素本身不兼容。
不,对于任何中等复杂的布局都是不可能的。
编辑:至少在不添加大量难看的条件的情况下是这样。