0

我正在使用这个工具来验证 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 中会发生坏事。

4

3 回答 3

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;黑客了。

作为上述方法的替代方案,您还可以使用 IE 条件来包含单独/附加或替代 IE 样式表。

于 2013-02-19T22:40:31.093 回答
0

无论如何,任何浏览器都可以正常工作。如果出于某种原因验证 CSS 不是至关重要的,请忽略它。

困难的解决方案是让它在所有浏览器上正常工作。根据所需的向后兼容性,它可能很难。

还有像 (Modernizr)[http://modernizr.com/] 这样的东西可以帮助你完成任务,比如:

#left_navigation.ie{
/* IE specific code */
}

Althrough Jeoren 发布了现成的解决方案:)

于 2013-02-19T22:41:58.983 回答
0

如果您想进行有效的 CSS hack,以下内容允许您包含一个解决方案,而无需包含整个modernizr 脚本或通过添加 IE 条件注释来更改 HTML(预)标题:

* html #left_navigation { width: 175px; }对于 IE4-6 和

*+html #left_navigation { width: 175px; }IE7

http://en.wikipedia.org/wiki/CSS_filter#Star_hack

于 2013-02-19T23:00:05.037 回答