如何在 IE HTML 条件中创建“else”?

IT技术 javascript html css internet-explorer-9
2021-03-04 16:31:12
<!--[if lt IE 9]>
    This is less then IE9
ELSE
    this is all browsers: firefox, chrome, etc.
<![endif]-->

如何在我的 HTML 中执行此操作?我想做一个“其他”...

6个回答

您不是在寻找 else,而是在寻找<![if !IE]> <something or other> <!--[endif]>(请注意,这不是评论)。

<!--[if IE]>
   You're using IE!
<![endif]-->
<![if !IE]>
   You're using something else!
<![endif]>

您可以在此处找到有关条件注释的文档

请注意,为了否定 ie 版本,条件必须在括号中,例如 <![if !(IE 7)]>
2021-04-21 16:31:12
我可以用它来包含 javascript 文件吗?换句话说,如果浏览器是 IE,则包含 ie.js,否则包含 'all_other_browsers.js'
2021-04-22 16:31:12
@IanCampbell 幸运的是,IE10 不需要任何接近于先前版本的匀场级别的东西,因此这可以被视为一个好处(IE10 将运行 ES5+ 兼容的 JS)
2021-05-15 16:31:12
为更高的 IE 版本 + 所有其他浏览器做一个 else。你需要特殊的语法<!--[if gt IE 8]> <!-- --> Here is some code for anything but IE 8 and below. <!-- <![endif]-->参见:stackoverflow.com/a/10159787/903186
2021-05-17 16:31:12
不幸的是,HTML条件注释并不在IE 10的支持,因此检查if IE不会在IE 10的工作......见下文KhanSharp的回答为一体的现代化解决方案。
2021-05-20 16:31:12

我使用以下在 IE9 或更新版本和所有其他浏览器中加载资源

<!--[if gte IE 9]><!-->        
    //your style or script
<!--<![endif]-->

这很难相信。查看 if 语句部分在注释中的开头和结尾(因此,它对其他浏览器不可见)但对 IE 可见。

此语法<!--[if IE]>不适用于 IE7 兼容模式。如果您不幸支持 IE6,请使用此答案中的语法使其工作:-|
2021-04-23 16:31:12
太糟糕了 Babel/webpack 认为这是一个 SyntaxError
2021-04-23 16:31:12
+1 太棒了,这实际上也适用于 IE 10!<!--[if lte IE 8]> ... ... <![endif]--> 之前的检查应涵盖使用 CSS 媒体查询时要检查的所有条件。
2021-04-27 16:31:12
还要注意的是没有<!紧随开幕if语句,“ - >”将在页面上IE 9的出现,所以你想包括。
2021-05-04 16:31:12

您的问题的解决方案是(注意使用<!-- -->):

<!--[if lt IE 9]>
  This is less then IE9
<![endif]-->
<!--[if gt IE 8]> <!-- -->
  this is all browsers: IE9 or higher, firefox, chrome, etc.
<!-- <![endif]-->
我知道这不完全是 OP 所要求的,但这正是我正在寻找的解决方案。不幸的是,我必须将第二个更改为 [if gt IE 7]。如果微软对浏览器更新和操作系统更新一样坚持,我们的工作就会容易得多。
2021-04-24 16:31:12

条件注释可以在脚本中也可以在 html 中

/*@cc_on
@if(@_jscript_version> 5.5){
    navigator.IEmod= document.documentMode? document.documentMode:
    window.XMLHttpRequest? 7: 6;

}
@else{
    alert('your '+navigator.appName+' is older than dirt.');
}
@end
@*/

您无需执行else. 它是隐含的所以

// put your other stylesheets here

<!--[if lt IE 9]>
    //put your stylesheet here for less than ie9
<![endif]-->
@太平洋标准时间。也许需要更好地使用词语。大概您的 IE 目标样式在您的普通样式表中以其他方式处理,因此它可以以一种或另一种方式工作。
2021-04-22 16:31:12
注意到@RobG。谢谢。在我发布之前想到了这一点,但...编辑
2021-04-26 16:31:12
@Jason Gennaro 编辑要好得多(在许多情况下,反转顺序也很重要。)
2021-04-27 16:31:12
制作了 IE 条件,以便 IE 可以拥有自己的指令。所有其他浏览器只会将其视为纯 HTML 注释。
2021-04-29 16:31:12
既然CSS中的“C”表示“级联”,那么非IE样式表肯定应该IE条件语句之前吗?否则,后面的将优先于前面的以及它们共有的任何 IE 特定选择器和规则。
2021-05-02 16:31:12