仅通过CSS定位IE9

Tim*_*Tim 22 html css stylesheet css-hack internet-explorer-9

只是想知道这些IE黑客入侵我的技巧

"\9" - for IE8 and below.
"*" - for IE7 and below.
"_" - for IE6.
Run Code Online (Sandbox Code Playgroud)

即如

body { 
    border:2px solid blue;
    border:2px solid yellow \9;
    *border:2px solid green;
    _border:2px solid orange;
}
Run Code Online (Sandbox Code Playgroud)

是否有人对IE9有这样的攻击?即我只是想通过CSS瞄准IE9?

Jef*_*ski 42

可怕,但它应该工作:

body { 
    border:2px solid blue;
    border:2px solid yellow \9;
    *border:2px solid green;
    _border:2px solid orange;
}
body:nth-child(n) {border:1px solid purple \9; /*Should target IE9 only - not fully tested.*/}
Run Code Online (Sandbox Code Playgroud)

  • 我已经测试了这一点,并确认它确实只针对IE9成功.这是实际问题的唯一实际答案.使用condcoms的建议是合理的,但建议不同的解决方案实际上并没有回答原始问题 (10认同)
  • 对我不起作用:(`\ 9;`部分被忽略 (3认同)

med*_*iev 29

我建议使用condcoms来提供IE9 css文件或者有一个条件html类,类似于:

<!--[if lt IE 7]> <html lang="en-us" class="no-js ie6"> <![endif]--> 
<!--[if IE 7]>    <html lang="en-us" class="no-js ie7"> <![endif]--> 
<!--[if IE 8]>    <html lang="en-us" class="no-js ie8"> <![endif]--> 
<!--[if gt IE 8]><!--> <html lang="en-us" class="no-js"> <!--<![endif]--> 
Run Code Online (Sandbox Code Playgroud)

  • **始终拥有安全的HTML**.保护自己:使用condcom. (129认同)
  • @Tim:你上面描述的黑客问题是它们是**错误**.从来没有打算成为特色.通过使用它们,您可能会导致其他具有类似错误的浏览器出现问题.坚持标准. (3认同)
  • Google应用程序通常没有最好的前端代码. (2认同)
  • @Tim:叹息......同样,JavaScript解决方案也存在问题.使用condcom.它符合标准,工作得很好. (2认同)
  • 这些CSS黑客不会干扰其他浏览器,我已经使用它们多年没有任何问题.是的,最好使用condcoms,但是如果你不能控制HTML,只有CSS呢?在这种情况下,如果尚未使用condcom,则无法使用condcom,并且CSS hack可能是您唯一的选择 (2认同)