`

根据IE版本不同调用不同CSS样式文件

阅读更多

在webjx.com的文章中,并不提倡这样的方法,但是依然有很多CSSer会用到,这个资料保存在这里,以备大概查阅,请注意,不到不得已,请不要使用此方式。

<!--[if lte IE 6]>
<LINK rel="stylesheet" type="text/css" href="images/StyleSheet.css" />
<![endif]-->
<!--[if IE 7]>
<LINK rel="stylesheet" type="text/css" href="images/css.css" />
<![endif]-->
#example{color:red ;}
* html #example{color:blue;}
*+html #example{color:green;}
<!–[if lte IE 6]>……<![endif]–>
 


 Ite:less than or equal to意思是小于或等于IE6浏览器,用于IE浏览器的条件注释,常用于CSShack,针对IE的JS等。
  在进行WEB标准网页的学习和应用过程中,网页对浏览器的兼容性是经常接触到的一个问题。其中因微软公司的Internet Explorer(简称IE)占据浏览器市场的大半江山,此外还有Firefox、Opera等。需要对这些浏览器进行兼容。
  同时,单就IE而言,因IE版本的升级更替,目前浏览者使用的主要停留在 IE5(IE5.5)、IE6和IE7这三个版本中。而这3个版本对于我们制作的WEB标准网页(XHTML+CSS)解释执行的显示状况不尽相同。并且,其他非IE浏览器与IE对某些CSS解释也不一样。所以,通过IE浏览器中的专有条件注释可有针对性的进行相关属性的定义。
  条件注释只能用于Explorer 5+ Windows(以下简称IE)(条件注释从IE5开始被支持)。如果你安装了多个IE,条件注释(Conditional comments)将会以最高版本的IE为标准(目前为IE 7)。
  条件注释只能在windows Internet Explorer(以下简称IE)下使用,因此我们可以通过条件注释来为IE添加特别的指令。
  通俗点,条件注释就是一些if判断,但这些判断不是在脚本里执行的,而是直接在html代码里执行的,比如:

<!–[if IE]>
这里是正常的html代码
<![endif]–>

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

<!–[if IE]>
       <h1>您正在使用IE浏览器</h1>
       <!–[if IE 5]>
           <h2>版本 5</h2>
       <![endif]–>
       <!–[if IE 5.0]>
           <h2>版本 5.0</h2>
       <![endif]–>
       <!–[if IE 5.5]>
           <h2>版本 5.5</h2>
       <![endif]–>
       <!–[if IE 6]>
           <h2>版本 6</h2>
       <![endif]–>
       <!–[if IE 7]>
           <h2>版本 7</h2>
       <![endif]–>
<![endif]–>

 
  那如果当前的浏览器是IE,但版本比IE5还低,该怎么办呢,可以使用<!–[if ls IE 5]>,当然,根据条件注释只能在IE5+的环境之下,所以<!–[if ls IE 5]>根本不会被执行。
  lte:就是Less than or equal to的简写,也就是小于或等于的意思。
  lt :就是Less than的简写,也就是小于的意思。
  gte:就是Greater than or equal to的简写,也就是大于或等于的意思。
  gt :就是Greater than的简写,也就是大于的意思。
  ! :就是不等于的意思,跟javascript里的不等于判断符相同

  Conditional comments属于CSS hack? 条件判断属于CSS hack吗?
  严格地说是属于CSS hack。因为就好象其他真正的css hack一样,它使得我们可以给一些浏览器赋予特殊的样式,再则它不依赖于某个浏览器的BUG来控制另外一个浏览器(的样式)。除此之外,条件判断还能用来做一些超出CSS HACK范围的事情(虽然这种情况很少发生)。
  因为条件判断不依赖于某个浏览器的hack,而是一个经过深思熟虑的特色功能,所以我相信它是可以被放心地使用的。当然,其他浏览器也有可能支持条件判断(到目前为止还没有),但是看起来,他们应该不会使用如<!–[if IE]>这样的语法。
  应该如何应用条件注释
  本文一开始就说明了,因为IE各版本的浏览器对我们制作的WEB标准的页面解释不一样,具体就是对CSS的解释不同,我们为了兼容这些,可运用条件注释来各自定义,最终达到兼容的目的。比如:

<!– 默认先调用css.css样式表 –>
<link rel="stylesheet" type="text/css" href="css.css" />
<!–[if IE 7]>
<!– 如果IE浏览器版是7,调用ie7.css样式表 –>
<link rel="stylesheet" type="text/css" href="ie7.css" />
<![endif]–>
<!–[if lte IE 6]>
<!– 如果IE浏览器版本小于等于6,调用ie.css样式表 –>
<link rel="stylesheet" type="text/css" href="ie.css" />
<![endif]–>

 
  这其中就区分了IE7和IE6向下的浏览器对CSS的执行,达到兼容的目的。同时,首行默认的css.css还能与其他非IE浏览器实现兼容。
  注意:默认的CSS样式应该位于HTML文档的首行,进行条件注释判断的所有内容必须位于该默认样式之后。
比如如下代码,在IE浏览器下执行显示为红色,而在非IE浏览器下显示为黑色。如果把条件注释判断放在首行,则不能实现。该例题很能说明网页对IE浏览器和非IE浏览器间的兼容性问题解决。

<style type="text/css">
body{
background-color: #000;
}
</style>
<!–[if IE]>
<style type="text/css">
body{
background-color: #F00;
}
</style>
<![endif]–>

 
  同时,有人会试图使用<!–[if !IE]>来定义非IE浏览器下的状况,但注意:条件注释只有在IE浏览器下才能执行,这个代码在非IE浏览下非单不是执行该条件下的定义,而是当做注释视而不见。
  正常就是默认的样式,对IE浏览器需要特殊处理的,才进行条件注释。
  在HTML文件里,而不能在CSS文件中使用。 

<!--em336tj start-->

分享到:
评论

相关推荐

    根据分辨率不同,调用不同的css文件

    dotted; TABLE-LAYOUT: fixed; BORDER-TOP: #cccccc 1px dotted; BORDER-LEFT: #cccccc 1px dotted;...– if (window.navigator.userAgent.indexOf(“MSIE”)&gt;=1) { var IE1024=””; 

    根据判断浏览器类型屏幕分辨率自动调用不同CSS的代码

    根据判断浏览器类型屏幕分辨率自动调用不同CSS的代码

    css判断不同分辨率显示不同宽度布局实现自适应宽度

    CSS判断不同分辨率浏览器(显示屏幕)显示不同宽度布局CSS3技术支持IE6到IE8。将用到css3 @media样式进行判断,但IE9以下版本不支持CSS3技术,这里DIVCSS5给大家介绍通过JS实现低版本的浏览器也支持CSS3实现实用布局

    清理无用的CSS样式比较有用的几个工具

    Dust-Me是一个很有用也很好用的Firefox插件,它可以分析到你的页面中调用的所有CSS文件并分析那些在页面中没有被用到。 支持本地和远程样式文件,包括使用link标签、&lt; ?xml-stylesheet?&gt;处理指令、@import语句...

    《CSS全程指南》随书光盘

    2.2 调用样式表 23 2.2.1 内嵌样式 23 2.2.2 内部样式表 23 2.2.3 外部样式表 25 2.3 CSS的单位 27 2.3.1 长度单位 27 2.3.2 百分比单位 28 2.3.3 颜色单位 28 2.3.4 URL单位 29 2.4 基本语法 29 2.5 选择器 30 ...

    div+css有实例,易学易懂

    3.2.2 CSS 样式表书写顺序 3.3 怎样更好地应用CSS 3.3.1 块元素和内联元素 3.3.2 一些CSS 的实用技巧 3.3.3 怎样调试CSS 3.4 关于CSS 的学习 第4 章 网页头部元素的详细定义 第41 页 4.1 DOCTYPE 的选择 4.1.1 什么...

    CSS横向下拉菜单(兼容IE6)

    CSS驱动的横向下拉菜单(改进版) 由于我的IE是IE7的,所以起初没有意识到那个下拉菜单在IE6中不能显示,今天刚把IE7卸了装了IE6,一般的,由于CSS驱动的下拉菜单不能在IE6中正常工作,大多数人会选择用JavaScript去...

    require-css-respond:require-css 兼容IE Respond

    (原项目的respond.js必须在所有CSS加载完后再调用,这不符合require-css的意义)respond.js 源项目在require-css 源项目在css.min.jsrequire-css 使用此文件,兼容IE respond.js因respond.js只认link标签,所以修改...

    js自定义图片左右滚动条切换效果

    现在网上流行好多可以自定义图片横向滚动条的效果... 1、在网页head中调用lanrenzhijia.css样式以及lanrenzhijia.js 2、将index.html中body里的html代码拷贝到你需要的地方 3、修改css样式为你网页里的效果即可

    css入门笔记

    3.CSS样式特征 1.继承性 必须是父子(有层叠嵌套的关系)结构 大部分的css效果是可以 2.优先级 1.浏览器默认样式 2.内部样式和外部样式(就近原则) 3.内联样式 4.!important; 绝对优先使用() 格式 p{ ...

    jquery-1.8.3.min.js

    包含了jquery-1.8.3.js和jquery-1.8.3.min.js两个不同的版本 jQuery1.8.3更新日志 IE8中的HTML相关Bug jQuery1.8.2在IE9中调用ajax失败的问题 jQuery1.7.1不能正确地设置IE7中克隆元素的tabindex属性 压缩的JS文件...

    CSS解决方案:IE6中遇到png兼容性

    把背景图片如常的合并,利用相似于... 在问题1的基础上,针对IE6采用了CSS滤镜让其透明,但图片不能应用背景坐标定位的方式只能单张使用,这做法不利于带宽流量和请求链接数之余也不利样式的管理 在问题2的基础上,意

    cookie和dom操作调用样式表实现网页换肤

    原理:通过存取cookie和dom操作调用不同的样式表文件来实现前台换肤. 换肤示例下载:sour.rar Html代码部分: 1.要有一个带id的样式表链接,我们要通过操作这个链接来调用不同的href. &lt;link href=css/main0.css rel=...

    CSS模块化设计——从空格谈起

    引子:今天在蓝点看了Yang的博客《CSS样式表中继承关系的空格与不空格》,思考了一下,本来想写《CSS样式的复合定义与复合调用及简单的模块化设计》,但是内容太大,还是来点简单的实惠。所以改叫《CSS样式——从...

    34款经典Dreamweaver插件

    Text to SWF 类别:DW Command 把文档中选定的文字转换成SWF文件(奇妙的功能!) 增强DW的ASP+编码功能的插件 · ASP+ Dream 增强DW的ASP+编码功能的插件 ...根据分辨率不同载入不同的外部样式表

    日历特效控件My97DatePicker

    当WdatePicker.js里的属性:$wdate=true时,在input里加上class="Wdate"就会在选择框右边出现日期图标,如果您不喜欢这个样式,可以把class="Wdate"去掉,另外也可以通过修改skin目录下的WdatePicker.css文件来修改样式 ...

    CSS3 Media Queries(响应式布局可以让你定制不同的分辨率和设备)

    Media Queries这功能是非常强大的,...上面的media语句表示的是:当页页宽度小于或等于600px,调用small.css样式表来渲染你的Web页面。首先来看media的语句中包含的内容: 1、screen:这个不用说大家都知道,指的是一种

    Jquery1.8 chm

     jQuery 1.8.2在IE9中调用ajax失败的问题  jQuery 1.7.1不能正确地设置IE7中克隆元素的tabindex属性  压缩的JS文件包含非ASCII字符  如果body样式设置为display:none,则$('body').show()无法工作  在IE9中...

    日期控件(My97DatePicker)

    当WdatePicker.js里的属性:$wdate=true时,在input里加上class="Wdate"就会在选择框右边出现日期图标,如果您不喜欢这个样式,可以把class="Wdate"去掉,另外也可以通过修改skin目录下的WdatePicker.css文件来修改样式 ...

    ASP.NET开发实战1200例(第Ⅰ卷)第十二章

    第12章 CSS样式与JavaScript脚本 应用 458 12.1 应用CSS样式美化网站 459 实例289 利用DIV+CSS布局网站后台主页面 459 实例290 为主题添加CSS样式使界面更加 人性化 461 实例291 利用CSS设计普通控件和数据控件 的...

Global site tag (gtag.js) - Google Analytics