我正在使用此工具验证CSS文件:http://jigsaw.w3.org/css-validator/
我的CSS文件中有23个错误,超过一半看起来像这样:
Line 46 #left_navigation Parse Error ;*width: 175px;
实际的CSS看起来像这样:
#left_navigation {
float: left;
width: 165px;
*width: 175px;
margin:0px;
padding:12px 5px 5px 5px;
}
错误是由星号设置宽度引起的。我最初没有把它放在这里,但很明显它需要处理IE中的一些显示问题。
所以我的问题是:我是否关心这些错误?还有其他/更好的方法吗?我不能把它拿掉,因为当我们这样做时,IE中会发生不好的事情。
答案 0 :(得分:3)
我是否关心这些错误?
我不确定。你呢?
但还有另一种选择。确保您的网页包含以下内容:
<!--[if lt IE 7 ]> <html class="ie ie6" lang="en"> <![endif]-->
<!--[if IE 7 ]> <html class="ie ie7" lang="en"> <![endif]-->
<!--[if IE 8 ]> <html class="ie ie8" lang="en"> <![endif]-->
<!--[if IE 9 ]> <html class="ie ie9" lang="en"> <![endif]-->
<!--[if gt IE 9]><!--><html><!--<![endif]-->
然后,您可以将IEx特定样式与自定义选择器一起使用,例如:
.ie7 #left_navigation { width: 175px; }
不再需要*prop: value;
hack。
除了上述方法之外,您还可以使用IE条件来包含单独的/附加的或替代的IE样式表。
答案 1 :(得分:0)
任何浏览器都可以正常工作。如果由于某种原因,对于经过验证的CSS来说,只要忽略它就不是必需的。
硬解决方案是让它在所有浏览器上都能正常工作。根据所需的向后兼容性,它可能很难。
还有类似(Modernizr)[http://modernizr.com/]的东西可以帮助你完成任务,如:
#left_navigation.ie{
/* IE specific code */
}
通过Jeoren发布了准备好的解决方案:)
答案 2 :(得分:0)
如果你想找一个有效的CSS hack , 以下允许您包含一个解决方案,无需包含整个modernizr脚本或通过添加IE条件注释来更改HTML(pre-)标题:
对于IE4-6和, * html #left_navigation { width: 175px; }
IE7的
*+html #left_navigation { width: 175px; }