IE的有条件注释详解(附实例代码)

摘要:
条件注释首次出现在Windows上的IE5中,并且所有后续版本的Windows浏览器都支持。IE条件注释是Microsoft对常规HTML注释的专有扩展。顾名思义,条件注释使您能够根据条件显示代码块。IE条件注释非常有效,易于记忆。[endif]--˃只能由版本高于指定版本的IE浏览器识别的代码块只能由版本低于指定版本的浏览器识别。所有IE7也都不起作用。关于IE条件注释的特殊注释只能由IE识别——我以前看过下面的代码,但一想到它,我就忍不住大笑起来。

转自:http://www.cnblogs.com/JustinYoung/archive/2009/03/02/ie-jiaojianzhushi.html

IE的有条件注释是一种专有的(因此是非标准的)、对常规(X)HTML注释的Miscrosoft扩展。顾名思义,有条件注释使你能够根据条件(比如浏览器版本)显示代码块(不一定就是css,也可以是html代码,甚至是JavaScript代码)。尽管是非标准的,但是有条件注释对于其他所有浏览器作为常规注释出现,因此本质上是无害的。有条件注释在Windows上的IE5中首次出现,并且得到了Widnows浏览器所有后续版本的支持。

IE的有条件注释是一种专有的(因此是非标准的)、对常规(X)HTML注释的Miscrosoft扩展。顾名思义,有条件注释使你能够根据条件(比如浏览器版本)显示代码块。尽管是非标准的,但是有条件注释对于其他所有浏览器作为常规注释出现,因此本质上是无害的。有条件注释在Windows上的IE5中首次出现,并且得到了Widnows浏览器所有后续版本的支持。

IE的有条件注释及其有效,而且非常容易记住。主要的缺点是这些注释需要放在HTML页面中,而不是放在CSS中。这样,当你不需要这些东西,或者有所更改的时候,就需要维护很多的地方。

让我们据几个例子来看看吧——

只有IE才能识别

因为只有IE5以上的版本才开始支持IE条件注释,所有“只有IE”才能识别的意思是“只有IE5版本以上”才能识别。

<!--[if IE]>
<style type="text/css">
@import "test.css";
</style>
<![endif]-->

只有特定版本才能识别

例如,只有IE5才能识别,只有IE6才能识别,只有IE7或者IE8才能识别。识别的条件是特定的版本,高了或者低了都不可以。例如下面的代码块,将只会在IE8中有效

<!--[if IE 8]>
<style type="text/css">
@import "test.css";
</style>
<![endif]-->
IE共存

只有不是特定版本的才能识别

当然,IE浏览器需要在5以上的版本,才在讨论范围之内。例如下面的例子中,特定了IE7版本不能识别。

<!--[if !IE 7]>
<style type="text/css">
@import "test.css";
</style>
<![endif]-->
IE共存

只有高于特定版本才能识别

只有高于制定版本的IE浏览器才能识别的代码块。

<!--[if gt IE 7]>
<style type="text/css">
@import "test.css";
</style>
<![endif]-->
IE共存

有朋友会问,为什么IE7没有应用到效果呢?那是因为IE7等于IE7,而不是高于IE7。所有IE7也没有起效果。

等于或者高于特定版本才能识别

<!--[if gte IE 7]>
<style type="text/css">
@import "test.css";
</style>
<![endif]-->
IE共存

只有低于特定版本的才能识别

<!--[if lt IE 7]>
<style type="text/css">
@import "test.css";
</style>
<![endif]-->
IE共存

等于或者低于特定版本的才能识别

<!--[if lte IE 7]>
<style type="text/css">
@import "test.css";
</style>
<![endif]-->
IE共存

关键词解释

上面那些代码好像很难记的样子,其实只要稍微解释一下关键字就很容易记住了。

lt :就是Less than的简写,也就是小于的意思。

lte :就是Less than or equal to的简写,也就是小于或等于的意思。

gt :就是Greater than的简写,也就是大于的意思。

gte:就是Greater than or equal to的简写,也就是大于或等于的意思。

!:就是不等于的意思,跟javascript里的不等于判断符相同。

这样解释一下,是不是好记多了。

关于IE条件注释的特别说明

只有IE才能识别哦——

曾经看到过下面的代码,现在想起来不禁有点想笑。这样的代码有什么意义吗?

<!--[if !IE]>
<style type="text/css">
@import "test.css";
</style>
<![endif]-->

不仅仅是CSS哦

很长时间,我对这个都有一种误解——以为它就是用来根据浏览器不同载入不同css,从而解决样式兼容性问题的。其实,我错了。它其实可以做的更多。它可以保护任何代码块——HTML代码块、JavaScript代码块、服务器端代码……看看下面的代码。

<!--[if IE]>
你使用的是IE浏览器,还会弹出个框哦。
<script type="text/javascript">
alert("你使用的是IE浏览器!");
</script>
<![endif]-->

免责声明:文章转载自《IE的有条件注释详解(附实例代码)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇sqlserver跨服务器数据库sql语句随机序列下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

STS(Eclipse)修改Project Exploer背景颜色及字体大小

一、信息 STS 4.4.0 操作系统:win10 二、找到相关的CSS文件 下图是STS的CSS文件夹 进入文件夹,找到对应的CSS文件。  这就是我们需要修改的CSS,点击进入文件,在末尾添加下面的代码。字体大小背景颜色请根据个人喜好填写。 #org-eclipse-jdt-ui-PackageExplorer Tree, #org-eclipse...

chrome livestyle插件

1.sublime 安装 >step1: ctrl+shift+p >step2:ip >step3:livestyle >step4:配置hostFQ下载chorm插件(见附录hosts文件) >step5:用chrome打开https://chrome.google.com/webstore/detail/emmet-l...

css无图片圆角效果

不知为何,现在的美工都喜欢弄圆角。之前的网站也弄过圆角,当时做法现在感觉确实太笨了:1用图片;2用Table 背景色嵌套出来这两个做法不仅增加客户端下载数据量,而且改起来也很麻烦。所以综合网上的资料整了个不用图片的单纯css的圆角效果,个人感觉还不错:看下代码吧:  1<html> 2<head> 3<title>css...

如何解决PC端和移动端自适应问题?

   做网页时,我们通常需要考虑到不同电脑屏幕尺寸,以及不同手机屏幕大小等问题,解决样式发生改变的情况,那么如何解决呢?现在主要是采用自适应来解决高度,宽度的,以及图片自适应问题,下面就PC端和移动端来总结一下,通常进行自适应高度和宽度,图片时,一般与页面的布局存在关系。 1、最小尺寸分辨率1024*768(传统17寸显示器),则可以采用940px、960...

css grid布局使用

+ display:grid 指定一个容器采用网格布局 ,采用网格布局的区域,称为"容器"(container)。容器内部采用网格定位的子元素,称为"项目"(item)。 一、容器属性 默认情况下 容器元素都是块级元素,但也可以设置成行内元素 display:inline-block Note:设置网格布局后,容器子元素(项目)的float、display...

Failed to mount component: template or render function not defined.

在公司下班前提交的代码,夜晚回家pull一把,运行却报错: Failed to mount component: template or render function not defined. 百度翻译:无法安装组件:模板或渲染功能未定义。 什么原因呢?百度了一大圈,有的说需要修改配置文件,有的说需要回退vue-loader版本。。。。。 但是都试了个遍...