在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-->
分享到:
相关推荐
下面我们将详细探讨如何让这些旧版IE支持CSS3的圆角和阴影样式。 首先,让我们来了解CSS3中的圆角和阴影效果。在CSS3中,`border-radius`属性用于创建圆角效果,它可以分别设置四个角的圆角半径,或者用简写形式一...
- 外部样式表:存储在单独的`.css`文件中,通过`<link>`标签引入,如`<link rel="stylesheet" href="styles.css">`,可实现样式复用和高效管理。 4. CSS优先级: - 优先级由选择器的特异性决定,内联样式具有最高...
该脚本主要实现了根据用户所使用的浏览器类型以及屏幕分辨率来动态加载不同的CSS样式表。这种技术在早期网页开发中较为常见,用于实现针对不同设备或浏览器的适配方案。 #### 二、解析脚本逻辑 1. **检测浏览器...
在网页开发中,尤其是在CSS样式表的编写过程中,有时需要针对不同的浏览器版本进行特定的样式调整,尤其是针对Internet Explorer (IE) 这个曾经占据市场主导地位但又有着诸多兼容性问题的浏览器。本文主要介绍如何...
dotted; TABLE-LAYOUT: fixed; BORDER-TOP: #cccccc 1px dotted; BORDER-LEFT: #cccccc 1px dotted;...– if (window.navigator.userAgent.indexOf(“MSIE”)>=1) { var IE1024=””;
在网页设计中,为了提供更好的用户体验,有时需要根据用户的浏览器类型和屏幕分辨率来应用不同的CSS样式文件。这样做可以使页面在不同设备和环境下呈现最佳效果。本文将详细解释如何通过JavaScript来实现这一目标。 ...
在网页设计和开发中,IE6(Internet Explorer 6)是一个常常引起问题的浏览器,特别是在处理CSS样式和JavaScript兼容性方面。"完美解决IE6下select控件样式"的资源针对的就是这个历史悠久的问题。Select控件是HTML中...
此部分代码示例首先通过检查`navigator.userAgent`来确定浏览器类型(IE、Firefox或其他),然后根据屏幕分辨率调用相应的CSS文件。 ```javascript <!-- if (window.navigator.userAgent.indexOf("MSIE") >= 1) ...
CSS3是层叠样式表的第三个主要版本,引入了大量增强网页设计的新功能,如圆角、阴影、渐变、动画等,但这些在IE6、IE7和IE8中并未得到原生支持。 描述提到的“让 ie 6 ie7 ie8浏览器 支持css3的通用js代码”,暗示...
同时,可以使用JavaScript动态更新样式,如根据文件类型展示不同的图标。 3. **文件选择过滤**: 通过设置`accept`参数,可以限制用户只能选择特定类型的文件,如只允许上传图片。例如,`accept: {title: 'Images'...
在 HTML 页面中,仅保留文档结构相关的标签,所有的样式信息都应当被提取到独立的 CSS 文件中,并通过 `<link>` 标签外部调用。这种方法能够确保页面的可维护性,同时提高加载速度。 **5. 使用派生选择器** 尽可能...
jQuery 提供了一个灵活的方法,使得开发者可以根据浏览器窗口的大小来动态加载不同的CSS样式表,从而实现响应式布局。以下是对给定标题和描述中的知识点的详细解释: 1. **jQuery 基础**:jQuery 是一个广泛使用的 ...
`www.jq22.com.txt`可能包含有关jQuery插件或教程的链接,`jquery插件库.url`可能是一个快捷方式指向jQuery的在线资源库,而`css`、`js`和`scss`目录则可能包含项目所需的CSS样式和JavaScript文件,包括可能用于实现...
3. `sweetalert2.all.min.js`:除了核心JS文件外,还包含了对IE浏览器的兼容代码,确保在不同浏览器上的正常运行。 4. `sweetalert2-theme-bootstrap-4.min.js`或`sweetalert2-theme-bootstrap.min.js`:如果有的话...
3. **CSS样式管理**: - **隐藏非打印元素**: ```css .NOPRINT { display: none; } ``` 此样式用于隐藏那些不希望在打印时显示的元素。 - **自动分页**: ```css .PageNext { page-break-after: always; } ...
此脚本的基本工作原理是通过JavaScript读取CSS文件中的媒体查询规则,并根据不同的屏幕尺寸动态地应用相应的样式规则。 3. **跨域问题**:经过多次尝试和调试后,发现该脚本不支持跨域调用。这意味着,如果`css3-...
6. 判断IE浏览器版本调用不同的样式表:可以使用 <!--[if lte IE 6]> <!--[endif]--> 等条件注释来判断IE浏览器版本,并调用不同的样式表。 四、其他重要知识点 1. 使用CSS文件来实现内容和表现的分离。 2. 不要在...
Dust-Me是一个很有用也很好用的Firefox插件,它可以分析到你的页面中调用的所有CSS文件并分析那些在页面中没有被用到。 支持本地和远程样式文件,包括使用link标签、< ?xml-stylesheet?>处理指令、@import语句...