这个问题类似于我提出的问题here。我正在清理一些文件,我在这个css中遇到了这个:
.something
{
height: 33px;
-height: 34px; /* does this do anything?? /
}
和
.something { _width: 150px; /
does this do anything?? */ }
编辑:好的,所以_(下划线)是IE的css hack,这很好,我会留下它,但是减号怎么样,它有什么用呢?
此外,我们不再支持IE 7以下的任何内容了,所以如果IE6的任何内容都是黑客攻击我可以把它拿出来。
答案 0 :(得分:11)
直接来自W3C CSS 2.1 Spec -
4.1.2.1特定于供应商的扩展程序
在CSS中,标识符可以以“
-
”(短划线)或“_
”(下划线)开头。关键词 以“-
”或“_
”开头的属性名称保留用于特定于供应商的扩展。
但是,使用下划线为CSS属性添加前缀是well known CSS hack,以便在IE 6中应用该规则。
由于CSS标识符可以以“-
”(破折号)开头且有效,因此可用于在开发期间快速注释掉部分CSS。例如,在下面的CSS中,不会为h1
设置任何属性,只会为margin
设置h2
。
-h1 { color:blue; margin:2em; }
h2 { -color:pink; margin:2em; } /* property "-color" not valid */
答案 1 :(得分:2)
这意味着CSS属性将在IE 6及更低版本中应用。这是CSS hack。
将样式应用于不同IE的更简洁的方法是使用conditional comments。
答案 2 :(得分:1)
我不确定减号,但下划线是在IE中忽略规则的黑客< 6。
答案 3 :(得分:1)
这是CSS hack,欺骗某些浏览器使用它们(或不使用它们)。 这个是Underscore Hack
互联网版本6及以下版本 资源管理器识别属性 这个前缀(丢弃之后) 字首)。所有其他浏览器都忽略 这样的属性无效。因此, 以...开头的属性 应用下划线或连字符 仅限Internet Explorer 6和 下方。
#elem { width: [W3C Model Width]; _width: [BorderBox Model]; }
这个hack使用无效的CSS [3]和 有有效的CSS指令 完成类似的结果。因此有些 人们不建议使用它。上 另一方面这个黑客没有 改变选择器的特异性 维护和扩展 CSS文件更容易。
CSS Hacks是一种(不那么优雅)技术,可以在浏览器中实现相同的外观和感觉。