-1

随着 Internet Explorer 放弃使用条件语句,我对如何将元素或样式单独应用到 IE 感到困惑。这不再适用于 IE10:

<!--[if IE]>
<![endif]-->

所以这是一个蓝色和红色框的jsfiddle:http: //jsfiddle.net/74yK9/1/

如何使蓝色框仅出现在 Internet Explorer(所有版本)中?

4

2 回答 2

1

您可以使用 jQuery 执行此操作,不要忘记也包含jQuery Migrate 插件

if ($.browser.msie) {

    // For IE only
    $('#bluebox').show();
} else {

    // all other browsers
    $('#bluebox').hide();
}
于 2013-03-29T18:49:09.383 回答
1

使用 Javascript,您可以使用仅在 IE 中可用的条件编译:

if (Function('/*@cc_on return true@*/')()) {
    // Is IE
}

从此处修改:对于某些情况,例如 Internet Explorer 特定的 CSS 或 Internet Explorer 特定的 JavaScript 代码,如何仅针对 Internet Explorer 10?

所以使用它的方式是这样的:

var isIE = false;
if (Function('/*@cc_on return true@*/')()) {
    isIE = true;
    // or
    document.documentElement.className += " isIE";
}

这会在 Javascript 中设置一个布尔值和/或isIE向您的元素添加一个类<html>......这将是<html class="isIE">. 所以这意味着你可以检查isIEJavacript 中的布尔值,或者基于class类似的样式:

html.isIE body {
    color: #111;    /* Only applied for IE*/
}

这使用特征检测(某种)并且不使用userAgent嗅探。userAgent嗅探是一种选择,但不可靠,并且在现代 jQuery 中已弃用/删除。

有关条件编译的更多信息:http ://www.javascriptkit.com/javatutors/conditionalcompile.shtml和http://msdn.microsoft.com/en-us/library/ie/121hztk3%28v=vs.94% 29.aspx

于 2013-03-29T18:53:12.613 回答