条件评论

时间:2014-02-06 20:33:39

标签: internet-explorer conditional-comments

我是UI的新手。我看到用于识别IE浏览器的条件注释,如

<!--[if IE 10]> <html class="no-js ie10" lang="en"> <![endif]-->
<!--[if !IE]><!--> <html lang="en" class="no-js"> <!--<![endif]-->

他们工作正常,但有人可以解释它是如何工作的吗? IE不会将这些陈述视为评论吗?

2 个答案:

答案 0 :(得分:1)

首先,IE10没有条件注释识别,它已被禁用,它仅适用于IE9及更低版本。超过10的版本比早期的版本少得多。 这是如何工作的:

<!--[if lte IE8]>
  <style type="text/css">
    IE lower or equal to 8 CSS rules go here
  </style>
<![endif]-->

整个样式表

<!--[if lte IE8]>
  <link rel="stylesheet" type="text/css" href="ie8-and-lower.css"/>
<![endif]-->

低于和等于IE7

<!--[if lte IE7]>

低于IE7

<!--[if lt IE7]>

大于IE7

<!--[if gt IE7]>

不是IE7

<!--[if !IE7]>

IE7

<!--[if IE7]>

条件注释在样式表中不起作用。但是,您可以在HTML中使用条件注释将不同的CSS类或ID应用于可以使用CSS定位的元素。

像这样的东西:

<!--[if IE7]>
  <div id="content" class="ie7">
<![endif]-->
<!--[if !IE7]>
  <div id="content">
<![endif]-->

答案 1 :(得分:0)

这些只是Internet Explorer读取的条件语句,允许Web开发人员解决为IE带来的大量问题。

具有讽刺意味的是,IE10及以上版本完全放弃了对这些内容的支持,所以它们实际上只对旧版浏览器的复古编码有用,例如,当使用HTML5 shivs时,如

<!--[if lt IE 9]>
<script src="dist/html5shiv.js"></script>
<![endif]-->

它们是如何工作的.. IE(低于10)只是将它们作为渲染引擎的一部分进行检测,而其他浏览器只是将其视为注释

这里有一些关于它们被删除的信息,以及一个指向其他资源的链接,如果你想更多地了解它,或者得到更好的例子

http://www.therailsview.com/2012/02/internet-explorer-10-to-no-longer-support-conditional-comments/