1.区别IE和非IE浏览器
#tip {
background:blue; /*非IE 背景藍色*/
background:red \9; /*IE6、IE7、IE8背景紅色*/
}
2.区别IE6,IE7,IE8,FF
【区别符号】:「\9」、「*」、「_」
【示例】:
#tip {
background:blue; /*Firefox 背景变蓝色*/
background:red \9; /*IE8 背景变红色*/
*background:black; /*IE7 背景变黑色*/
_background:orange; /*IE6 背景变橘色*/
}
【说明】:因为IE系列浏览器可读「\9」,而IE6和IE7可读「*」(米字号),另外IE6可辨识「_」(底线),因此可以依照顺序写下来,就 会让浏 览器正确的读取到自己看得懂得CSS语法,所以就可以有效区分IE各版本和非IE浏览器(像是Firefox、Opera、Google Chrome、Safari等)。
3.区别IE6、IE7、Firefox (方法 1)
【区别符号】:「*」、「_」
【示例】:
#tip {
background:blue; /*Firefox背景变蓝色*/
*background:black; /*IE7 背景变黑色*/
_background:orange; /*IE6 背景变橘色*/
}
【说明】:IE7和IE6可读「*」(米字号),IE6又可以读「_」(底线),但是IE7却无法读取「_」,至于Firefox(非IE浏览器) 则完全 无法辨识「*」和「_」,因此就可以透过这样的差异性来区分IE6、IE7、Firefox
4.区别IE6、IE7、Firefox (方法 2)
【区别符号】:「*」、「!important」
【示例】:
#tip {
background:blue; /*Firefox 背景变蓝色*/
*background:green !important; /*IE7 背景变绿色*/
*background:orange; /*IE6 背景变橘色*/
}
【说明】:IE7可以辨识「*」和「!important」,但是IE6只可以辨识「*」,却无法辨识「!important」,至于 Firefox可以 读取「!important」但不能辨识「*」因此可以透过这样的差异来有效区隔IE6、IE7、Firefox。
5.区别IE7、Firefox
【区别符号】:「*」、「!important」
【示例】:
#tip {
background:blue; /*Firefox 背景变蓝色*/
*background:green !important; /*IE7 背景变绿色*/
}
【说明】:因为Firefox可以辨识「!important」但却无法辨识「*」,而IE7则可以同时看懂「*」、「!important」,因 此可以 两个辨识符号来区隔IE7和Firefox。
6.区别IE6、IE7 (方法 1)
【区别符号】:「*」、「_」
【示例】:
#tip {
*background:black; /*IE7 背景变黑色*/
_background:orange; /*IE6 背景变橘色*/
}
【说明】:IE7和IE6都可以辨识「*」(米字号),但IE6可以辨识「_」(底线),IE7却无法辨识,透过IE7无法读取「_」的特性就能轻 鬆区隔 IE6和IE7之间的差异。
7.区别IE6、IE7 (方法 2)
【区别符号】:「!important」
【示例】:
#tip {
background:black !important; /*IE7 背景变黑色*/
background:orange; /*IE6 背景变橘色*/
}
【说明】:因为IE7可读取「!important;」但IE6却不行,而CSS的读取步骤是从上到下,因此IE6读取时因无法辨识 「!important」而直接跳到下一行读取CSS,所以背景色会呈现橘色。
8.区别IE6、Firefox
【区别符号】:「_」
【示例】:
#tip {
background:black; /*Firefox 背景变黑色*/
_background:orange; /*IE6 背景变橘色*/
}
【说明】:因为IE6可以辨识「_」(底线),但是Firefox却不行,因此可以透过这样的差异来区隔Firefox和IE6
让DIV兼容的方法:
兼容(ie6、ie7、ff)口决:
有浮必清,方能兼容;
统一默认,尽量为零;
有高则高,无高而高,
规规整整,方能大成!
有浮必清,方能兼容
在使用浮动标签后(float:left),后面div一定要清除浮动(clear:left;)。
这样才能兼容ie6、ie7、ff,否则将出来布局混乱。
示例:
<div style="float:left;width:200px;">1 </div>
<div style="float:right;width:200px;">2 </div>
<div style="clear:left;width:200px;">3 </div>
统一默认,尽量为零
不同的浏览器默认值是不一样的。比如:对于ul li标签的margin属性,各不相同。因此,我们在做网站时,先要定义一些全局的样式表,一来约束整站,二来统计默认值。从而达到兼容之目的,这叫“统一默认”,正是“集中思想,统一战线”。
<style>
ul,li,body{margin:0px;padding:0px;}
div,table{margin:2px;padding:2px;overflow:hidden;}
</style>
尽量为零是指,当我们使用div的时候,尽量明确它们的margin和padding值,不要默认,如果不需要有间距,定义为0。
有高则高,无高而高
这两点最重点,可谓是经验中的经验。所谓有高则高,就是当你定义div的高度(height)的时候,一定要定义行高(line-height)。这个做法,对兼容ie6、ie7特别重要。
比如: <div style="height:2px"> </div> 这个二像索高的div,在ie6和ie7中是有差别的,加上 <div style="height:2px;line-height:2px;"> </div> 或 <div style="height:2px;overflow:hidden;"> </div>之后,就相同了,这只是一例。
所以有高则高就是,定义了高度,就要定义overflow或者line-height,或者二者都定义,则兼容之。
无高而高,如果你想让文字或图片把div撑开,一定不要定义高度;反之,你定义了高度,ie一般可发撑开,但ff是撑不开的。
同时,当你不希望div被掌握开时,你会定义高和宽,此时,你最好再定义一个overflow:hidden; 不加滚动条;overflow:auto;自动。简言之,不对div定义高度,内容可以把div撑开,就是div跟着内容走,故言“无高而高”。