我已经使用条件注释技术来处理我的IE6 / 7/8 CSS“hacks”,因此主要CSS文件(使用公共/标准类)正确验证(在单独的CSS文件中隔离IE“hacks”) )。
这样的事情:
<!--[if IE 7]>
<link href="css/layoutIE7.css" rel="stylesheet" type="text/css" />
<![endif]-->
现在我开始使用条件注释向<body>
添加一个类(请阅读此答案:CSS if statements... is it right?),然后在我的主CSS文件中定位需要“hack”的类这样我只能有一个文件。
这种方法的问题在于,因为我在一个文件中包含所有内容,这意味着如果我有一些像CSS3 opacity
属性那样“简单”的东西:
.mydiv {
opacity:0.6;
}
IE“对应物”(即:“hack”)必须是:
.mydiv {
filter:alpha(opacity=60);
}
哪个无法正确验证。
我知道我之前使用的方法仍有这个问题,但是因为你可以在非IE环境中测试网站,所以它总是经过验证(因为我确保主要CSS有效),现在因为我试图让一个单独的CSS无法验证(原因解释)。
我的问题是如何以验证者认为有效的方式添加此“黑客”?
希望答案应该只是CSS。
答案 0 :(得分:5)
CSS验证被高估了。诚实。
只要您的标记有效,您的CSS就会很好地构建,并且该网站可以在所有目标浏览器中运行,然后您就完成了自己的工作。 CSS必须验证的内容已经很久了。
答案 1 :(得分:2)
我不认为这是可能的。如果样式表中存在非标准CSS属性,则不会进行验证。没有人可以改变这一点。
我认为您必须选择有效的CSS或使用多个样式表。
答案 2 :(得分:2)
无法验证CSS黑客攻击。如果您希望CSS有效,请返回之前使用的条件注释解决方案。关于CSS验证,许多Web设计师大师如Andy Clarke或Zeldman都反复说CSS应该被用作有用的工具,而不是一般规则。除了帮助您纠正语法错误之外,它不会增加任何实用价值。