`
lizheng30781546
  • 浏览: 4016 次
文章分类
社区版块
存档分类
最新评论

浏览器兼容之旅第一站:如何在页面中创建IE条件注释

 
阅读更多

IE对于大家来说一定很熟悉了,作为一名Web前端开发人员或者是说前端攻程师来说,浏览器的兼容问题一定处理过不少了,特别是IE6的兼容问题,如果你的用户是针对中国市场来说,IE6下的效果是必须得处理了,一个让人头痛而又不得不去面对的一件事情,特别是对于刚接触CSS的童子们,更让无从下手,那么今天我重新开始针对浏览器的兼容问题,说说一些我自己的经验,以及尽可能多的搜集相关经典问题的处理方法。希望能对有需要的朋友有所帮助。

 

中国古语——万物都是相生相克的。这句话用到我们写CSS的人身上也是一样的,不管在哪个浏览器下,出现了问题,首先要追究的问题是我们自己怕HTML结构和CSS样式有没有出问题,然后在看看是不是因为浏览器各自的解析不同而造成的。千万不要一看到IE出问题,就骂上了IE,其实人家并不是那么差劲,另外有一点也需要注意的就是,不要动不动就使用你知道的HACK手段来解决各浏览器的兼容问题。小生有自己的一个原则——“处理各浏览器的兼容问题,未到情非得以的情况下才使用HACK”。

 

开头来了一大段的开场白,下面我们就开始我们的旅行——浏览器兼容之旅的第一站:如何创建条件样式。

大家都知道<!-- -- >是HTML语言中的注释。它是一种添加到代码中的笔记,让自己或你的团队成员明白你写的是什么,写到什么时候等等信息,这种注释并不会在浏览器中显示出来,但大家在查看页面的源代码时可以看到这一部分,如下面的一个简单实例


复制代码代码如下:

<div id="header" >Header Section </div>

<!-- End Header Section Content -- >

 

那么我们在上面的基础是增加一个条件语句,我们就可以使用条件注释,我们在平时用到的就是IE的有条件注释。IE的有条件注释是一种专有的(非标准的)、对常规(X)HTML注释的Miscrosoft扩展。换句话说,有条件注释使你能够根据条件(比如说浏览器的版本)显示代码块。尽管是非标准的,但是有条件注释对于其他所有浏览器作为常规注释出现,因此本质上是无害的。有条件注释在 Windows 上的 IE5 中首次出现,并且得到了 Widnows 浏览器所有后续版本的支持。

 

那么为什么要创建条件样式呢?言外之意我们创建条件样式有什么好处呢?创建条件样式优点在于:可以将部分兼容代码识让符合条件的浏览器识别;其二让你的主要样式表整洁,清爽。不过大家要记住,虽然我们这里说的是创建有条件样式,但这种条件注释标签的使用不仅仅只能用于CSS,你可以应用在javaScript中,他们甚至可以在您的网站内容显示特殊的IE浏览器特定的消息。下面我们一起来看看其具体的应用,和使用方法。

 

调用条件样式的方法

我们调用条件样式方法和<link>标签一样,常常放置在<head>标签中。和前面所见识的普通注释不一样的是,这里需要加上条件判断,具体格式如下所示:


复制代码代码如下:

<!--[if IE] >

...

<![endif]-->

 

在具体使用条件注释语句之前,有几种条件注释属性含义我们必须要理解:

gt(greate than): 选择条件版本以上版本,不包含条件版本本身;

lt(less than): 这个刚好与gt相反,表示的是选择条件版本以下的版本,不包含条件版本自身;

gte(greate than or equal): 选择条件版本以上版本,并包含条件版本自身;

lte(less than or equal): 选择条件版本以下的版本,并包含条件版本自身;

!:选择条件版本以外所有版本,无论高低。

 

条件样式的使用方法

下面我们一起来看针对不同版本如何使用条件样式

1、支持所有IE浏览器


复制代码代码如下:

<!--[if IE] >

<link rel="stylesheet" href="all-ie-only.css" type="text/css"/ >

<![endif]-->

 

2、支持除IE外的所有浏览器


复制代码代码如下:

<!--[if !IE] >

<link rel="stylesheet" href="not-ie.css" type="text/css"/ >

<![endif]-->

 

上面是除了IE浏览器外所有浏览器都识别这个样式,另外CSS-TRICKS的《How To Create an IE-Only Stylesheet 》一文中提供了另一种写法:


复制代码代码如下:

<!--[if !IE] ><!-->

<link rel="stylesheet" type="text/css" href="not-ie.css" / >

<!--<![endif]-->

 

3、仅仅支持IE10


复制代码代码如下:

<!--[if IE 10] >

<link rel="stylesheet" type="text/css" href="ie10.css" >

<![endif]-->

 

4、仅仅支持IE9


复制代码代码如下:

<!--[if IE 9] >

<link rel="stylesheet" type="text/css" href="ie9.css" >

<![endif]-->

 

5、仅仅支持IE8


复制代码代码如下:

<!--[if IE 8] >

<link rel="stylesheet" type="text/css" href="ie8.css" >

<![endif]-->

 

6、仅仅支持IE7


复制代码代码如下:

<!--[if IE 7] >

<link rel="stylesheet" type="text/css" href="ie7.css" >

<![endif]-->

 

7、仅仅支持IE6


复制代码代码如下:

<!--[if IE 6] >

<link rel="stylesheet" type="text/css" href="ie6.css" >

<![endif]-->

 

8、支持IE10以下版本(IE9以及IE9以下版本)

这种方法是样式表使用在低于IE10的浏览器,换句话说除了IE10以外的所有IE版本都将被支持。


复制代码代码如下:

<!--[if lt IE 10] >

<link rel="stylesheet" type="text/css" href="ie9-and-down.css" >

<![endif]-->

 

也可以写成


复制代码代码如下:

<!--[if lte IE 9] >

<link rel="stylesheet" type="text/css" href="ie9-and-down.css" >

<![endif]-->

 

前面我们也说过了lt和lte的区别,lt表示小于版本号,不包括条件版本号本身;而lte是小于或等于版本号,包括了版本号自身。

9、支持IE9以下版本(IE8以及IE8以下版本)


复制代码代码如下:

<!--[if lt IE 9] >

<link rel="stylesheet" type="text/css" href="ie8-and-down.css" >

<![endif]-->

 

或:


复制代码代码如下:

<!--[if lte IE 8] >

<link rel="stylesheet" type="text/css" href="ie8-and-down.css" >

<![endif]-->

 

10、支持IE8以下版本(IE7以及IE7以下版本)


复制代码代码如下:

<!--[if lt IE 8] >

<link rel="stylesheet" type="text/css" href="ie7-and-down.css" >

<![endif]-->

 

或:


复制代码代码如下:

<!--[if lte IE 7] >

<link rel="stylesheet" type="text/css" href="ie7-and-down.css" >

<![endif]-->

 

11、支持IE7以下版本(IE6以及IE6以下版本)


复制代码代码如下:

<!--[if lt IE 7] >

<link rel="stylesheet" type="text/css" href="ie6-and-down.css" >

<![endif]-->

 

或:


复制代码代码如下:

<!--[if lte IE 6] >

<link rel="stylesheet" type="text/css" href="ie6-and-down.css" >

<![endif]-->

 

上面8——11这几种方法,使用的是低于(lt)和低于或等于(lte)的方法来判断,我们也可以使用大于(gt)和大于或等于(gte)达到上面的效果:

12、高于IE9的版本(IE10以及IE10以上版本)


复制代码代码如下:

<!--[if gt IE 9] >

<link rel="stylesheet" type="text/css" href="ie10-and-up.css" >

<![endif]-->

 

或:


复制代码代码如下:

<!--[if gte IE 10] >

<link rel="stylesheet" type="text/css" href="ie10-and-up.css" >

<![endif]-->

 

13、高于IE8的版本(IE9以及IE9以上版本)


复制代码代码如下:

<!--[if gt IE 8] >

....................................................................

<![endif]-->

 

或:


复制代码代码如下:

<!--[if gte IE 9] >

....................................................................

<![endif]-->

 

14、高于IE7的版本(IE8以及IE8以上版本)


复制代码代码如下:

<!--[if gt IE 7] >

<link rel="stylesheet" type="text/css" href="ie8-and-up.css" >

<![endif]-->

 

或:


复制代码代码如下:

<!--[if gte IE 8] >

<link rel="stylesheet" type="text/css" href="ie8-and-up.css" >

<![endif]-->

 

15、高于IE6的版本(IE7以及IE7以上版本)


复制代码代码如下:

<!--[if gt IE 6] >

<link rel="stylesheet" type="text/css" href="ie7-and-up.css" >

<![endif]-->

 

或:


复制代码代码如下:

<!--[if gte IE 7] >

<link rel="stylesheet" type="text/css" href="ie7-and-up.css" >

<![endif]-->

 

16、高于IE5.5的版本(IE6以及IE6以上版本)


复制代码代码如下:

<!--[if gt IE 5.5] >

<link rel="stylesheet" type="text/css" href="ie6-and-up.css" >

<![endif]-->

 

或:


复制代码代码如下:

<!--[if gte IE 6] >

<link rel="stylesheet" type="text/css" href="ie6-and-up.css" >

<![endif]-->

 

12-16几种方式刚好和8-11几方式相反,我们此处使用的是“gt”和“gte”,“gt”刚好和“lt”相反,表示的是大于条件版本号,不包括版本号本身;而“gte”则和"lte"相反,表示的是大于或等于条件版本号,包括了条件版本自身。一共罗列了16种条件注释所表达的含义,大家要呵以根据平时的应用对比参照一下,如果从未接触的朋友,可以动手尝试一下,动手能丰衣足食嘛。

上面就是展示了如何创建条件注释样式,大家可以根据自己的需求使用其中的一种或是多种,最后总结一下条件注释主要针对的是IE浏览器,所以我们也把他称作IE条件注释。另外IE条件注释只有IE5以上的版本才开始支持IE条件注释,所以“只有IE”才能识别,换句话说,只有IE5版本以上才能识别IE条件注释。如此一来,我们管理给IE兼容写的单独样式,就带来了极大的方便与好处。最后有一点需要提出的是:“IE的条件注释不单单针对样式,我们也可以针对于javascrit或者其字的注释说明”。最后我们在来看一个IE条件注释应用在javaScript的实例:


复制代码代码如下:

<!--[if IE 6] >

<script type="text/javascript" src="js/pngfix.js" ></script>

<script type="text/javascript" src="js/ie6.js" ></script>

<![endif]-->

 

这一节主要了解了如何在页面中创建IE条件注释,以及其带来的好处,和所起的作用。那么下一节将进入浏览器兼容之旅第二站:各浏览器的Hack写法让浏览器达到一致的渲染效果。感兴趣的朋友请观注本站的相关更新。

 

参考地址:http://www.verydemo.com/demo_c104_i18002.html

分享到:
评论

相关推荐

    浏览器兼容之旅第三站:IE常见Bug总结及修复方法—part1

    前面在《浏览器兼容之旅第一站:如何在页面中创建IE条件注释》和《浏览器兼容之旅第二站:各浏览器的Hack写法让浏览器达到一致的渲染效果》中了解了一些处理兼容的基本方法。那么这节开始浏览器兼容之旅的第三站:IE...

    浏览器兼容之旅第二站:各浏览器的Hack写法让浏览器达到一致的渲染效果

    前面一节《浏览器兼容之旅的第一站:如何创建条件样式》和大家一起探讨了如何创建条件样式,了解和学习了创建IE条件样式的方法以及他们所起的作用,特别是知道了条件注释所起的作用。那么这一节将和大家一起学习:...

    针对主流浏览器的CSS-HACK写法及IE常用条件注释

    本文将为你总结CSS针对各浏览器的兼容HACK(以IE6/IE7/IE8 /FF为主),以及IE特有的条件注释使用方法.

    IE6升级到IE9兼容性问题和操作手册

    本文档内容涵盖:IE6升级到IE9过程中Javascript, DOM, HTML, CSS等方面的变化和调整。 概述 2 第一章:HTML 3 第一节:IE7-IE8更新 3 1. 如果缺少结束标记的 P 元素后跟 TABLE、FORM、NOFRAMES 或 NOSCRIPT 元素,会...

    jQuery改写上一个城市的三级联动(解决浏览器兼容bug)

    这个项目改进了上一个项目的不同,使用轻量的jQuery技术编写js的核心代码,不存在浏览器兼容的问题(本人亲测:IE、opera、火狐、google),而且代码更加简化和逻辑化;核心代码的编写采用了jQuery中提供的三种ajax...

    用条件注释判断浏览器版本解决页面兼容问题

    对于浏览器兼容问题,我们应该碰到很多了,在平时写一些页面时,在IE8、IE9上可能好好的,当我们在IE6、IE7或者是其他的浏览器上再浏览这些页面时,可能会发现我们的页面已经面目全非了,作为一名前端开发人员,这是...

    get-it:在网站上创建并保存注释的项目。 用Python制作的服务器和后端

    get-it:在网站上创建并保存注释的项目。 用Python制作的服务器和后端

    多个jquery图片轮播效果集合兼容IE6以上所有主流浏览器

    多个jquery图片轮播效果集合,兼容所有主流浏览器,兼容IE6-IE11,代码易看懂,注释很齐全,非常的实用。 让你下得安心,用的放心!

    ie10 css hack 条件注释等兼容方式整理

    截至到现在,在ie6到ie9的浏览器各种各样的古怪行为,开发人员不得不使用条件注释,有条件的类,和其他特定于IE的css hack来解决。 ps:条件注释是一种安全的区分IE浏览器版本的语法,且被认为是取代针对IE css hack...

    使用条件注释判断 IE 浏览器版本适用于IE5.0及以上版本

    IE条件注释是一种特殊的HTML注释,这种注释只有IE5.0及以上版本才能理解。比如普通的HTML注释是: &lt;!–This is a comment–&gt; 而只有IE可读的IE条件注释是: &lt;!–[if IE]&gt; &lt;![endif]–&gt; “非IE条件注释...

    详谈IE条件注释

    IE中的条件注释(Conditional comments)对IE的版本和IE非IE有优秀的区分能力,是WEB设计中常用的hack方法。条件注释只能用于IE5以上,IE10以上不支持。如果你安装了多个IE,条件注释将会以最高版本的IE为标准。条件...

    IE 条件注释详解总结(附实例代码)

    有条件注释在Windows上的IE5中首次出现,并且得到了Widnows浏览器所有后续版本的支持。 IE的有条件注释及其有效,而且非常容易记住。主要的缺点是这些注释需要放在HTML页面中,而不是放在CSS中。这样,当你不需要...

    JS判断是否在微信浏览器打开的简单实例(推荐)

    以下是一段示例代码,注释中表明了通过JS如何判断是否在微信浏览器打开,是否在QQ空间浏览器,是否在新浪微博打开。当然可以做得更完善一点,再加上判断是在移动设备打开还是在PC端浏览器打开的,更加细分一点,可以...

    面向XHTML的IE条件注释

    条件注释能被IE判断是什么版本的浏览器,并在符合条件的情况下显示其中的内容,从IE5.0到7.0都支持注释功能,而且版本号精确到小数点后4位: 程序代码 &lt;!–[if IE 6.1000]&gt;此内容只有IE6.1可见&lt;![endif]–&gt; ...

    条件注释判断浏览器(ie系列)

    使用条件注释判断浏览器在某些时候还是比较使用的,比如css 样式的兼容根据浏览器不同进行判断加载,类似的例子还有好多,感兴趣的朋友可以参考下,希望对大家有所帮助

Global site tag (gtag.js) - Google Analytics