Bang IE7 - 这是什么意思?

Clo*_*boy 36 css internet-explorer internet-explorer-7 internet-explorer-6

这个头衔看起来并不那么疯狂.我承诺!!

在研究另一个问题时,我注意到Stack Overflow的样式表中有以下内容:

...
width: auto;
...
width: 650px!ie7;
padding-bottom: 20px!ie7;
...
Run Code Online (Sandbox Code Playgroud)

这是一种奇怪的条件样式吗?这是一个错误吗?假设这不是一个错误,这适用于所有IE版本吗?是否有一种方法可以指定给定的规则只应用于大于 - 比如7的IE版本?

我之前从未遇到过这种情况 - 我总是对IE特定的样式使用条件注释(对于它的价值,我更喜欢将所有IE特定的样式完全分开).

thi*_*dot 57

我之前听说过这个,但没有确切的文字!ie7.

我在这里找到了一个参考:http://www.javascriptkit.com/dhtmltutors/csshacks3.shtml

!即

Internet Explorer 7使用!important标识符解决了其中一个问题,但是当标识符出现错误时仍然存在问题.如果使用非法标识符名称代替重要名称,Internet Explorer 7及更低版本将正常处理该属性而不是失败.因此,在任何样式声明块中,您可以包含仅适用于Internet Explorer的属性并添加!ie标识符. 几乎任何单词都可以用来代替ie.

!ie标识符允许在IE 7及更低版本中应用该属性.它可能会或可能不会在未来的版本中工作.警告:这使用无效的CSS!

因此,width: 650px!ie7;仅适用于IE 7及以下版本.

实际的文本ie7不是必需的,但它是一个明智的字符串,用于提醒人们黑客背后的目的.

  • 很好的捕获,从未听说过这个.但毫无疑问,这是一个危险而丑陋的黑客 (4认同)