【问题标题】:Conditional Comments有条件的评论
【发布时间】:2014-03-04 00:31:04
【问题描述】:

我是 UI 新手。我看到用于识别 IE 浏览器的条件 cmets 像

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

它们工作正常,但谁能解释它是如何工作的? IE 不把这些语句识别为 cmets 吗?

【问题讨论】:

标签: internet-explorer conditional-comments


【解决方案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]>

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

像这样工作:

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

【讨论】:

    【解决方案2】:

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

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

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

    它们是如何工作的.. IE(10 以下)只是将它们检测为渲染引擎的一部分,而其他浏览器只是将它们视为 cmets

    这里有一些关于它们被删除的信息,以及指向其他资源的链接(如果您想深入了解它或获得更好的示例)

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-02
      • 1970-01-01
      • 1970-01-01
      • 2011-11-19
      • 2016-08-03
      • 2015-04-17
      • 1970-01-01
      • 2011-12-18
      相关资源
      最近更新 更多