HTML中的IE条件注释

  IE条件注释是一种特殊的HTML注释,这种注释只有IE5.0及以上版本才能理解。比如普通的HTML注释是:

<!--This is a comment-->

  而只有IE可读的IE条件注释是:

<!--[if IE]> <![endif]-->

  “非IE条件注释”:

<!--[if !IE]>--> non-IE HTML Code <!--<![endif]-->

  “非特定版本IE条件注释”(很少用到):

<!--[if ! lt IE 7]><![IGNORE[--><![IGNORE[]]>Code for browsers that match the if condition<!--<![endif]-->

  简而言之,除了“Windows上的IE”之外的所有浏览器都会认为条件注释只是一段普通的HTML注释。你不能在CSS代码中使用条件注释。IE条件注释是很有用的对IE隐藏或者展现特定代码的方法,比起在CSS中用诡异的_/制造bug,利用IE条件注释来写CSS “hacks”是更合理的方法。通俗点,条件注释就是一些if判断,但这些判断不是在脚本里执行的,而是直接在html代码里执行的。

  1. 条件注释的基本结构和HTML的注释(<!– –>)是一样的。因此IE以外的浏览器将会把它们看作是普通的注释而完全忽略它们。
  2. IE将会根据if条件来判断是否如解析普通的页面内容一样解析条件注释里的内容。
  3. 条件注释使用的是HTML的注释结构,因此他们只能使用在HTML文件里,而不能在CSS文件中使用。

  从语法上看这是相当合法的普通HTML注释。任何浏览器都会认为<!–和–>之间的部分是注释从而忽略它。但是IE也会看到其中[if IE]>,从而开始解释接下来的代码直到遇到<![endif]。所以,下面这些代码不会显示在任何其他浏览器中面。

  通过“比较操作符”可以更灵活地对IE版本进行控制,用法是在IE前面加上“比较操作符”。合法的操作符如下:

  • lte:就是Less than or equal to的简写,也就是小于或等于的意思。
  • lt :就是Less than的简写,也就是小于的意思。
  • gte:就是Greater than or equal to的简写,也就是大于或等于的意思。
  • gt :就是Greater than的简写,也就是大于的意思。
  • ! :就是不等于的意思,跟javascript里的不等于判断符相同

  示例:

  • <!–[if gt IE 5.5]> / 如果IE版本大于5.5 /
  • <!–[if lte IE 6]> / 如果IE版本小于等于6 /
  • <!–[if !IE]> / 如果浏览器不是IE /

  虽然看上去当你第一次使用条件注释的时候会更费时,但当你以后调试你的CSS的时候,就会发现非常方便。用条件注释你只需要写一遍HTML注释,而用bug你需要为每一条规则都写上又长又丑的代码,而且还经常是为了改变其他的hacks而写的hacks。除此之外条件注释对于不支持它的任何浏览器而言都是合法的HTML注释。以下为条件注释与CSS hacks的一些区别:

  1. Hacks是基于浏览器的bug,而这些bug最终可能会被修复。
  2. 条件注释是基于IE特定代码,这种识别机制任何时候都不会被移除。
  3. 每一个浏览器都能看见你的hacks,或许下一个版本或者一个新的浏览器会在你的hacks代码上出错。
  4. 只有IE才能看到条件注释,通过额外的“IE文件”来影响页面,其他浏览器根本就不会下载它。
  5. Hacks不能确保对哪些浏览器生效而对哪些不,用的hacks越多,代码越混乱。
  6. 条件注释利用版本匹配使得作者可以容易地对特定版本写代码
时间: 2024-10-13 21:24:59

HTML中的IE条件注释的相关文章

HTML中的Hack条件注释语句

IE 条件注释判断语句是 IE 特有的功能,通过 HTML 注释中的条件语句能让不同的 IE 版本识别注释中的内容 自IE10起,标准模式不再支持条件注释 条件注释语句中可以是HTML.CSS也可以是JavaScript,空格和大写不要写错 1.只能被 IE 识别 <!--[if IE]> 只能被 IE 识别; <![endif]--> 2.IE6 <!--[if IE 6]> 这是ie6 <![endif]--> 3.IE7 <!--[if IE 7

IE里的条件注释

<!--[if IE 6]> <script src="excanvas.js" type="text/javascript" charset="utf-8"></script> //引入IE 图像类库 <![endif]--> <!--[if IE 6]> 内容 <![endif]--> <!--[if !IE]><--> 内容 <!-->

IE条件注释

条件注释是IE专门提供的一种语法,其他浏览器会将其作为注释而忽略这些语句. 作用:根据不同的IE版本加载对应的CSS或者JS文件,甚至css代码和html代码. 重要提示 自IE10起,标准模式不再支持条件注释.而是采用特征检测给浏览器不支持的功能来提供备用策略.有关标准模式的详细信息,请参阅定义文档兼容性. 术语 熟悉下列术语有助于你学习文档兼容性. 名词 描述 expression 由运算符.特征和(或)值组合形成一个条件语句 downlevel browser 任何浏览器除了IE5+,其他

唐德刚在胡适口述中的一段注释

(作者: 唐德刚) 在上述讲演里,胡先生做了一个大胆的结论: 我的玩意儿对国家贡献最大的便是文学的"玩意儿",我所没有学过的东西.最近,研究<水经注>(地理学的东西).我已经六十二岁了,还不知道我究竟学 什么.都在东摸摸,西摸摸,也许我以后还要学学水利工程亦未可知,虽则我现在头发都白了,还是无所专长,一无所成.可是我一生很快乐,因为我没有依社会需 要的标准去学时髦.我服从了自己的个性,根据个人的兴趣所在去做,到现在虽然一无所成,但我生活得很快乐.希望青年朋友们,接受我经验得

IE浏览器条件注释if IE详解

无论是google还是百度搜到的if IE条件注释用法,排在前面的几个搜索结果文章都是有错误和漏洞的,而这些漏洞和错误导致我一度误以为有些IE条件注释已经失效了,即使不是失效,也令我 很费解.今天抽时间查阅了些老外写的东西,并且都试验了一遍.发现给我造成费解的原因是那些文章大多都是抄来的,没有经过亲自试验,在复制来复制去的过程 中就把某些关键的地方弄错了:( 现将正确的if IE条件注释用法总结一下,以便以后使用: 运算符 示例 说明 ! [if !IE] 非运算符.该例子表示所有的非IE浏览器

HTML if条件注释

if IE条件注释起着非常大的作用! if IE什么意思呢?下面就列举了一些在CSS常见的HACK控制语句. 作为IE的IF条件注释使用备忘,有些时候试用if IE而不是在css中使用hack. 在HTML中使用条件if注释,让客户端的不同版本IE浏览器读取各自版本浏览器注释里内容. <!--[if !IE]>除IE外都可识别<![endif]--> <!--[if IE]> 所有的IE可识别 <![endif]--> <!--[if gt IE 5.

CSS布局参考 IE的If条件注释使用备忘

内容提要:在CSS布局中,还常常用到IE Hack.if IE起着非常大的作用! 关键字:Div CSS IE Hack if IE什么意思呢?下面就列举了一些在CSS常见的HACK控制语句. 作为IE的IF条件注释使用备忘,大家可以参考,有经验欢迎与网友分享. <!--[if !IE]><!--> 除IE外都可识别 <!--<![endif]--> <!--[if IE]> 所有的IE可识别 <![endif]--> <!--[if

IE条件注释可以怎么玩

如果玩过条件注释的,可以忽略以下基础介绍. IE条件注释(Conditional comments)是IE浏览器私有的代码,是一个类似IF判断的语法注释块,IE5之上支持. 代码看起来是这样的 !--[if IE 6]> 你正在使用IE6 ![endif]-->复制代码 他的语法是一个普通的HTML注释 !– comments –>,分支块以 [if 条件(conditional)]> 开始 ![endif]结束.条件和JS中的if很类似,布尔值类型,可以把浏览器特性作为条件,比如

关于HTML条件注释你可能不知道的一些事儿

最近经常看到类似这样的HTML代码片段,很多前端开发人员应该都熟悉: 1 <!--[if lt IE 7]>      <html class="ie6"> <![endif]-->2 <!--[if IE 7]>         <html class="ie7"> <![endif]-->3 <!--[if IE 8]>         <html class="