找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1783|回复: 0

[教程] HTML中的IE条件注释

[复制链接]
发表于 2013-3-24 08:27:42 | 显示全部楼层 |阅读模式 来自 中国–广东–湛江
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代码里执行的。
  • 条件注释的基本结构和HTML的注释(<!&ndash; &ndash;>)是一样的。因此IE以外的浏览器将会把它们看作是普通的注释而完全忽略它们。
  • IE将会根据if条件来判断是否如解析普通的页面内容一样解析条件注释里的内容。
  • 条件注释使用的是HTML的注释结构,因此他们只能使用在HTML文件里,而不能在CSS文件中使用。
  从语法上看这是相当合法的普通HTML注释。任何浏览器都会认为<!&ndash;和&ndash;>之间的部分是注释从而忽略它。但是IE也会看到其中[if IE]>,从而开始解释接下来的代码直到遇到<![endif]。所以,下面这些代码不会显示在任何其他浏览器中面。
  通过"比较操作符"可以更灵活地对IE版本进行控制,用法是在IE前面加上"比较操作符"。合法的操作符如下:
  • lt :就是Less than的简写,也就是小于的意思。
  • lte:就是Less than or equal to的简写,也就是小于或等于的意思。
  • gte:就是Greater than or equal to的简写,也就是大于或等于的意思。
  • gt :就是Greater than的简写,也就是大于的意思。
  • ! :就是不等于的意思,跟javascript里的不等于判断符相同
  示例:
  • <!&ndash;[if gt IE 5.5]> / 如果IE版本大于5.5 /
  • <!&ndash;[if lte IE 6]> / 如果IE版本小于等于6 /
  • <!&ndash;[if !IE]> / 如果浏览器不是IE /
  虽然看上去当你第一次使用条件注释的时候会更费时,但当你以后调试你的CSS的时候,就会发现非常方便。用条件注释你只需要写一遍HTML注释,而用bug你需要为每一条规则都写上又长又丑的代码,而且还经常是为了改变其他的hacks而写的hacks。除此之外条件注释对于不支持它的任何浏览器而言都是合法的HTML注释。以下为条件注释与CSS hacks的一些区别:
  • Hacks是基于浏览器的bug,而这些bug最终可能会被修复。
  • 条件注释是基于IE特定代码,这种识别机制任何时候都不会被移除。
  • 每一个浏览器都能看见你的hacks,或许下一个版本或者一个新的浏览器会在你的hacks代码上出错。
  • 只有IE才能看到条件注释,通过额外的"IE文件"来影响页面,其他浏览器根本就不会下载它。
  • Hacks不能确保对哪些浏览器生效而对哪些不,用的hacks越多,代码越混乱。
  • 条件注释利用版本匹配使得作者可以容易地对特定版本写代码。

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 需要先绑定手机号

关闭

站长推荐上一条 /1 下一条

QQ|侵权投诉|广告报价|手机版|小黑屋|西部数码代理|飘仙建站论坛 ( 豫ICP备2022021143号-1 )

GMT+8, 2024-12-23 02:24 , Processed in 0.043649 second(s), 9 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表