IE条件注释详解
IE条件注释是微软从IE5开始就提供的一种非标准逻辑语句,作用是可以灵活的为不同IE版本浏览器导入不同html元素,如:样式表,html标签等。很显然这种方法的最大好处就在于属于微软官方给出的兼容解决办法而且还能通过W3C的效验。
让我们举几个例子来看看:
1、只有IE才能识别
1: <!--[if IE]>
2: <link type="text/css" rel="stylesheet" href="my.css" />
3: <![endif]-->
1: <!--[if IE]>
2: <link type="text/css" rel="stylesheet" href="my.css" />
3: <![endif]-->
因为只有IE5以上的版本才开始支持IE条件注释,所有“只有IE”才能识别的意思是“只有IE5版本以上”才能识别。
2、只有特定版本才能识别
1: <!--[if IE 8]>
2: <link type="text/css" rel="stylesheet" href="my.css" />
3: <![endif]-->
1: <!--[if IE 8]>
2: <link type="text/css" rel="stylesheet" href="my.css" />
3: <![endif]-->
识别特定的IE版本,高了或者低了都不可以。上例只有IE8才能识别。
3、只有不是特定版本的才能识别
1: <!--[if !IE 7]>
2: <link type="text/css" rel="stylesheet" href="my.css" />
3: <![endif]-->
上例中特定IE7版本不能识别,其他版本都能识别,当然要在IE5以上。
4、只有高于特定版本才能识别
1: <!--[if gt IE 7]>
2: <link type="text/css" rel="stylesheet" href="my.css" />
3: <![endif]-->
1: <!--[if gt IE 7]>
2: <link type="text/css" rel="stylesheet" href="my.css" />
3: <![endif]-->
上例中只有高于IE7的版本才能识别。IE7无法识别。
5、等于或者高于特定版本才能识别
1: <!--[if gte IE 7]>
2: <link type="text/css" rel="stylesheet" href="my.css" />
3: <![endif]-->
1: <!--[if gte IE 7]>
2: <link type="text/css" rel="stylesheet" href="my.css" />
3: <![endif]-->
上例中IE7和更高的版本都能识别。
6、只有低于特定版本的才能识别
1: <!--[if lt IE 7]>
2: <link type="text/css" rel="stylesheet" href="my.css" />
3: <![endif]-->
1: <!--[if lt IE 7]>
2: <link type="text/css" rel="stylesheet" href="my.css" />
3: <![endif]-->
上例中只有低于IE7的版本才能识别,IE7无法识别。
7、等于或者低于特定版本的才能识别
1: <!--[if lte IE 7]>
2: <link type="text/css" rel="stylesheet" href="my.css" />
3: <![endif]-->
1: <!--[if lte IE 7]>
2: <link type="text/css" rel="stylesheet" href="my.css" />
3: <![endif]-->
上例中IE7和更低的版本可以识别。
关键词解释
上面那些代码好像很难记的样子,其实只要稍微解释一下关键字就很容易记住了。
lt :就是Less than的简写,也就是小于的意思。
lte :就是Less than or equal to的简写,也就是小于或等于的意思。
gt :就是Greater than的简写,也就是大于的意思。
gte:就是Greater than or equal to的简写,也就是大于或等于的意思。
!:就是不等于的意思,跟javascript里的不等于判断符相同。
这样解释一下,是不是好记多了。
特别提示:
1、有人会试图使用<!--[if !IE]>来定义非IE浏览器下的状况,但注意:条件注释只有在IE浏览器下才能执行,这个代码在非IE浏览下被当做注释视而不见。
2、我们通常用IE条件注释根据浏览器不同载入不同css,从而解决样式兼容性问题的。其实它可以做的更多。它可以保护任何代码块——HTML代码块、JavaScript代码块、服务器端代码……看看下面的代码。
1: <!--[if IE]>
2: <script type="text/javascript">
3: alert("你使用的是IE浏览器!");
4: </script>
5: <![endif]-->
IE条件注释详解的更多相关文章
- JScript中的条件注释详解(转载自网络)
JScript中的条件注释详解-转载 这篇文章主要介绍了JScript中的条件注释详解,本文讲解了@cc_on.@if.@set.@_win32.@_win16.@_mac等条件注释语句及可用于条件编 ...
- IE的有条件注释详解
IE的有条件注释是一种专有的(因此是非标准的).对常规(X)HTML注释的Miscrosoft扩展.顾名思义,有条件注释使你能够根据条件(比如浏览器版本)显示代码块.尽管是非标准的,但是有条件注释对于 ...
- Nginx配置文件中文注释详解
Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx 是由 Igor Sysoev ...
- 关于opencv中人脸识别主函数的部分注释详解。
近段时间在搞opencv的视频人脸识别,无奈自带的分类器的准确度,实在是不怎么样,但又能怎样呢?自己又研究不清楚各大类检测算法. 正所谓,功能是由函数完成的,于是自己便看cvHaarDetectObj ...
- java注释详解--javadoc注释
一. Java注释分类// 注释一行 /* ...... */ 注释若干行 /** ...... */ 注释若干行,并写入 javadoc 文档 通常这种注释的多行写法如下: /** * ...... ...
- mapreduce入门之wordcount注释详解
mapreduce版本:0.2.0之前 说明: 该注释为之前学习时找到的一篇,现在只是在入门以后对该注释做了一些修正以及添加. 由于版本问题,该代码并没有在集群环境中运行,只将其做为理解mapredu ...
- Python学习教程(learning Python)--3.3 分支语句的条件表达式详解
本节主要讨论分支语句的条件表达式问题. 在if或者if-else分支控制语句里由于都用到条件判断(表达式是真还是假),条件判断可以是一种关系运算也可以是布尔表达式. 本节将对if及if-else语句的 ...
- MySQL数据库my.cnf配置文件注释详解
我们知道,在MySQL数据库安装完成后,要对my.cnf配置文件进行适当的修改才能充分利用MySQL数据库的功能.但是对于初学者来说,修改my.cnf配置文件似乎是一个比较难的过程.为了解决这个问题, ...
- Java基础入门 - 三种注释及文档注释详解
类似C/C++,Java也支持单行和多行注释 注释中的字符在编译时会被忽略 注释通常为类.变量和方法的主要描述 单行注释 // 注释内容 多行注释 /* 注释内容 */ /* * 注释内容 */ 文档 ...
随机推荐
- netfx_NativeCompilation.msi 传说中的 .NET Native 预览版的文件列表
卷 D 的文件夹 PATH 列表 卷序列号为 000000F6 CE0F:AB46 D:. │ LIST.TXT │ ├─12.0 │ └─Microsoft.Common.targets │ ├─I ...
- pdf.js在IIS中配置使用笔记
最近在手机App开发Android版本时候遇到需要显示PDF文件的需求,记得之前直接使用系统浏览器或者WebView就可以显示,但是现在不可以了,只能另寻其他办法. 最终找到PDF.JS来进行实现,但 ...
- 深入理解openstack网络架构(2)----Basic Use Cases
原文地址: https://blogs.oracle.com/ronen/entry/diving_into_openstack_network_architecture1 译文转自: http:// ...
- Ubuntu iptables配置
sudo su sudo apt-get install iptables-persistent modprobe ip_tables #启动iptable #删除原有iptables规则 ipt ...
- 规范化的软件项目演进管理--从 Github 使用说起
规范化的软件项目演进管理 从 Github 使用说起 1 前言 首先,本文的层次定位是:很基本很基础的 Github 工具的入门级应用,写给入门级的用户看的. 基本上工作过几年的人,下面描述的这些 ...
- 源代码版本管理与项目管理软件的认识与github的注册
源代码版本管理软件: 主要有:svn,cvs,hg,git,VSS 这些工具主要是一种记录代码更改历史, 可以无限回溯, 用于代码管理,多个程序员开发协作的工具.Perforce,StarTeam)- ...
- Programming Entity Framework CodeFirst--表关系约定
表之间的关系分为一对多,多对多,一对一三种,实质就是对外键进行配置. 一.一对多 1. Required Destination包含Lodging>的集合. public class Desti ...
- Qt控制台中文乱码问题
本文主要记录了Qt控制台出现中文乱码的问题,一下列出了集中编码设置的方法.以前用VC6.0写的一个贪吃蛇的游戏,今天把源文件拿出来在Qt上面运行,出现中文乱码的问题.以前也遇到过,没想到小小的乱码,折 ...
- C#入门基础三四
数组:数组是一组具有相同类型的值的集合,可以通过索引来访问数组中的元素. 声明数组的语法: A.数据类型 [] 数组名称: B.数据类型 [] 数组名称 = new 数据类型[数组大小]; C.int ...
- 爱上MVC~为Html.EditorForModel自定义模版
回到目录 挺有意思的一件事 对于MVC视图渲染来说,大家应该不会陌生,但对于模型的渲染,不知道是否听说过,主要是说Model通过它属性的相关特性(DataType,UIHint)来将它们自动渲染到Vi ...