有没有IE8只有css黑客?

Jit*_*yas 27 css conditional-comments internet-explorer-8

对于Internet Explorer 8(IE8),我想使用以下CSS:

color : green;
Run Code Online (Sandbox Code Playgroud)

我想应用一个只影响IE8的黑客,而不是IE9,IE6和7.

Pal*_*tir 43

在HTML中使用条件注释,如下所示:

<!--[if IE 8]>
<style>...</style>
<![endif]-->
Run Code Online (Sandbox Code Playgroud)

见这里:http://www.quirksmode.org/css/condcom.html

您可以可靠地测试IE版本,并确保其他浏览器不会混淆.

  • 我需要hack没有条件 (9认同)
  • 你为什么需要黑客攻击?应该避免黑客的性质(除非作为绝对的最后手段). (3认同)
  • @Palantir:你是对的,有条件的评论是一种破解,但至少它们是"官方"支持的,可以根据需要直接针对特定版本,而不是仅仅依靠引擎的怪癖来解释它们以不同的方式. (3认同)
  • 使用hacks的一个原因是当你在一个环境(XML/XSL和东西)中工作时,它们会在文件传递给浏览器之前删除文件中的所有注释. (2认同)

Pau*_*tte 35

使用媒体查询分隔每个浏览器:

/* IE6/7 uses media, */
@media, { 
        .dude { color: green; } 
        .gal { color: red; }
} 

/* IE8 uses \0 */
@media all\0 { 
        .dude { color: brown; } 
        .gal { color: orange; }
} 

/* IE9 uses \9 */
@media all and (monochrome:0) { 
          .dude { color: yellow\9; } 
          .gal { color: blue\9; }
} 

/* IE10 and IE11 both use -ms-high-contrast */
@media all and (-ms-high-contrast:none)
 {
 .foo { color: green } /* IE10 */
 *::-ms-backdrop, .foo { color: red } /* IE11 */
 }
Run Code Online (Sandbox Code Playgroud)

参考

  • 你的ie8解决方案不是IE8唯一的黑客,我在我的电脑上尝试,ie9和ie10也将继承这种风格.你有IE8以及黑客攻击吗? (5认同)
  • @JackZhang是的,使用IE9,IE10,IE11等黑客来重置IE8 hack设置的样式规则.我用这些黑客更新了答案. (3认同)
  • ie8解决方案仍然不适用于IE8,'\ 0'适用于ie8,ie9和ie10.实际上除了条件css之外,没有针对ie8-only风格的hack方法. (2认同)

Bal*_*usC 15

使用\0.

color: green\0;
Run Code Online (Sandbox Code Playgroud)

然而,确实建议条件评论,因为你也想排除IE9,而且这种黑客攻击是否会影响IE9仍然是不可预测的.

无论如何,我从来没有需要IE8特定的黑客攻击.这是什么,IE8特定的问题,你想解决?它是否以IE8标准模式呈现?它的渲染器非常好.

  • 是的,但不要忘记'\ 0'之前的**空格**,否则它也会影响IE9. (9认同)

小智 8

如果需要CSS的小改动使用\ 9它针对IE8及以下(IE6,IE7,IE8)

.element { 
   color:green \9;
 }
Run Code Online (Sandbox Code Playgroud)

最好的方法是在HTML中使用条件注释,如下所示:

<!--[if IE 8]>
<style>...</style>
<![endif]-->
Run Code Online (Sandbox Code Playgroud)