【问题标题】:CSS: Detecting IE in different standard modes?CSS:在不同的标准模式下检测 IE?
【发布时间】:2014-11-17 17:55:43
【问题描述】:

所以我需要在 IE7 标准模式下检测 IE11,在 IE7 标准模式下检测 IE9,最好只通过 CSS。

我无法真正控制 HTML 或 JavaScript。我可以完全控制的是 CSS 文件。

我愿意接受任何肮脏的伎俩/黑客向两个不同的浏览器发送不同的样式。

要明确:

body{ 
background: red; /*Awesome IE11 hack here somewhere*/
background: green; /*Mindboggling IE9 hack around here*/
}

IE7 标准模式下的 IE11 应该有红色背景。 IE7 标准模式下的 IE9 应该有绿色背景。

通过 hack,我正在考虑这样的事情: 来自http://browserhacks.com/

_::selection, .selector:not([attr*='']) {}

以上支持除 IE8 和 Firefox 之外的所有内容。

拜托了,上面加糖...

【问题讨论】:

  • 不,它不是重复的。其他问题都不是 CSS 解决方案。
  • 不是重复的。 OP 询问是否可以在仅 CSS 文件中进行破解。如果 OP 可以编辑 HTML 并添加 JS,您提供的链接提供了解决方案。但是要回答这个问题,我认为这是不可能的,因为您无法真正在 CSS 文件中检测到浏览器,您需要在页面预处理时进行。但是,如果有办法,那就很有趣了。
  • @jBoive 我不知道您是否可以访问服务器,但这可能是您的解决方案conditional-css.com/usage - 如果您可以访问服务器,您可以编辑HTML 或 JS :)
  • +1 for the sugar ;) 这确实引出了问题:ie11 和 ie9 在 ie7 模式下的行为是否不同?为什么你需要知道 - 学术练习或老板要求你知道?
  • @disinfor 当然可以。例如,这仅适用于 IE10+:_:-ms-input-placeholder, :root .selector {}

标签: html css internet-explorer


【解决方案1】:

在 HTML 中:

<!--[if IE]>
Place content here to target all Internet Explorer users.
<![endif]-->

In CSS

【讨论】:

  • 请不要替换您的答案。改为添加另一个答案。
  • 请添加一个实际回答所提问题的内容。
  • 这不起作用,因为 IE10+ 不支持条件 cmets。我无法修改 HTML,也不愿意添加更多 JS。如原始问题所述。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-23
  • 1970-01-01
  • 2014-10-31
  • 1970-01-01
相关资源
最近更新 更多