如何验证IE 7/8 CSS hacks?

jac*_*Joe 0 css internet-explorer

我已经使用条件注释技术来处理我的IE6/7/8 CSS"hacks",因此主CSS文件(使用公共/标准类)可以正确验证(在单独的CSS文件中隔离IE"hacks").

像这样的东西:

<!--[if IE 7]>
<link href="css/layoutIE7.css" rel="stylesheet" type="text/css" />
<![endif]-->
Run Code Online (Sandbox Code Playgroud)

现在我开始使用条件注释来添加一个类<body>(请阅读这个答案:CSS if语句......是不是?)然后在我的主CSS文件中定位需要"hack"的类,这样我只能有一个文件.

这种方法的问题在于,因为我将所有内容都放在一个文件中,这意味着如果我有一些像CSS3 opacity属性那样"简单"的东西:

.mydiv {
    opacity:0.6;
}
Run Code Online (Sandbox Code Playgroud)

IE"对应"(即:"hack")必须是这样的:

.mydiv {
    filter:alpha(opacity=60);
 }
Run Code Online (Sandbox Code Playgroud)

哪个不能正确验证.

我知道我之前使用的方法仍有这个问题,但由于你可以在非IE环境中测试网站,它总是经过验证(因为我确保主要的CSS是有效的),现在因为我想要一个单独的CSS它没有验证(由于解释的原因).

我的问题是如何以验证者认为有效的方式添加这些"黑客"?

希望答案应该只是CSS.

amu*_*ill 5

CSS验证被高估了.老实说.

只要您的标记有效,您的CSS就会很好地构建,并且该网站可以在所有目标浏览器中运行,然后您就完成了自己的工作.CSS必须验证的falacy早已死亡.

  • 好的,但有效的CSS实际上实现了什么?您的开发人员工具栏上有一点绿灯,让您感到自豪和轻松自在?有效的HTML是必须的,我永远不会对此提出异议.CSS的唯一目的是为文档设置样式,如果您的文档在目标浏览器中正确呈现,那么您已完成了自己的工作.质量保证应考虑解决方案的方法.该文档应该格式正确,没有明显的错误,但不使用供应商前缀或无效的属性,以实现验证是不值得的.CSS文档应易于导航,阅读,编辑和重复使用. (3认同)
  • 语法错误和破坏的嵌套就是我所说的"明显的错误".但是,担心您的供应商前缀使CSS文档无效是愚蠢的. (3认同)