我正在使用以下IE条件评论:
<!--[if gt IE 7]>
Here is some code.
<![endif]-->
这可以很好地防止代码在低于8的任何IE中呈现 但是,这也会使代码无法在Chrome和Firefox中呈现。
关于为什么会发生这种情况的任何想法,以及如何在IE以外的浏览器中呈现代码?
答案 0 :(得分:42)
条件注释是Microsoft IE特定的规则,它们不是任何标准的一部分。如果检查条件注释的结构:
<!--[if gt IE 7]>
Here is some code.
<![endif]-->
顾名思义,这只是一个很大的评论<!-- comment -->
。 IE会检查注释,以查找这些条件,这些条件同样不符合HTML标准。
要创建不在IE中呈现但在其他浏览器中呈现的代码,请使用以下条件:
<!--[if !IE]> -->
This will be rendered by anything but IE.
<!-- <![endif]-->
查看条件如何包含在已结束的评论中?这就是为什么在普通浏览器中渲染,而IE检查条件,并决定在endif
之前省略所有内容。
修改
如果您想添加其他条件,并继续在非IE浏览器上呈现代码,您可以使用以下解决方法:
<!--[if gt IE 7]> <!-- -->
Here is some code for anything but IE 7 and below.
<!-- <![endif]-->
注意我必须再次使用打开注释以防止IE在代码之前呈现-->
。其他浏览器仍会将其视为评论的一部分。