7
.pageWidth
{
margin: 0 30px;
min-width: 940px;
_width: 976px;
_margin: 0 auto;

}

我从网站的 css 文件中看到了这一点。我的问题是:width/margin 和 _width/_margin 有什么区别?为什么在这里使用 _width/_margin ?

4

3 回答 3

13

这是 IE6 的 hack。CSS 规则_margin_width适用于该浏览器。IE 浏览器还有更多奇怪的 hack,例如:

width: 940px\9; /* IE8 and below */  
*width : 960px; /* IE7 and below */  

如果您在 google 中快速搜索“IE CSS hacks”,您可以在邪恶的 IE 中找到更多关于 CSS 规则的信息和技巧,例如:快速提示:如何使用 4 个字符唯一地定位 IE6、IE7 和 IE8

于 2013-04-27T12:34:28.673 回答
2

属性之前的 _ 和 - 是为了符合 Internet Explorer 6 及更低版本。以下是供您参考的文章:

http://www.javascriptkit.com/dhtmltutors/csshacks3.shtml

*使用 _ 或 - 为常规属性名称添加前缀将导致该属性应用于 Internet Explorer 6 及更低版本,但通常不适用于其他浏览器。*

于 2013-04-27T12:36:33.730 回答
1

这是一个针对 Internet Explorer 的旧 CSS hack。IE 试图变得聪明,并对 CSS 属性进行一些额外的解析,其中之一就是去除下划线。

因此,在您的情况下,IE 会将宽度覆盖为 976 像素,而对于其余浏览器,宽度将保持 940 像素。这在过去用于解决 IE 破盒模型的问题,该模型不遵循 W3C 约定。

于 2013-04-27T12:40:26.720 回答