我是UI的新手。我看到用于识别IE浏览器的条件注释,如
<!--[if IE 10]> <html class="no-js ie10" lang="en"> <![endif]-->
<!--[if !IE]><!--> <html lang="en" class="no-js"> <!--<![endif]-->
他们工作正常,但有人可以解释它是如何工作的吗? IE不会将这些陈述视为评论吗?
答案 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/