方法一:
跨 浏览器的网页设计一直是让人很头疼的问题,这不只是因为浏览器的版本众多,还有一个重要的原因是相同浏览器的不同时期的 版本也会有差异, 甚至是在不同操作同台上还会有不同。因此使CSS hack技术进行浏览器区分是实现跨浏览器访问一个好方法。CSS Hack技术有很多,具体可以查看:
本文据说的主要是通过“.”,“>”,“*”,“_”来区分。以下是本人对这四种符号的测 试结果:
———————IE6—— IE7——IE8——FF2——FF3— Opera9.5
>property—— Y—— Y—— Y—— N—— N—— N
.property—— Y—— Y—— Y—— N—— N—— N
*property—— Y—— Y—— Y—— N—— N—— N
_property—— Y—— N—— N—— N—— N—— N
我 们可以看到>property、.property、*property在各浏览器中的表现是一致的,只有_property在IE6和IE7、 IE8中有所区别。另外还要注意的,IE6是不支持!important的,而其他几款浏览器都识别。
举例:
要对想同的文字在不 同浏览器中显示不同的颜色可以使用:
本文据说的主要是通过“.”,“>”,“*”,“_”来区分。以下是本人对这四种符号的测 试结果:
———————IE6—— IE7——IE8——FF2——FF3— Opera9.5
>property—— Y—— Y—— Y—— N—— N—— N
.property—— Y—— Y—— Y—— N—— N—— N
*property—— Y—— Y—— Y—— N—— N—— N
_property—— Y—— N—— N—— N—— N—— N
我 们可以看到>property、.property、*property在各浏览器中的表现是一致的,只有_property在IE6和IE7、 IE8中有所区别。另外还要注意的,IE6是不支持!important的,而其他几款浏览器都识别。
举例:
要对想同的文字在不 同浏览器中显示不同的颜色可以使用:
color :brown !important ; /*用于Opera、Firefox2、Firefox3等现代浏览器*/
- > color : green !important ; /*IE7、IE8可以识别该规则,因此它覆盖掉了上一条规则*/
- color : red ; /*所有浏览器都可以识 别,但是以上两条规则有!important,所以这条规则被忽视;只有IE6认识并覆盖掉上两条规则*/
因 此这就实现了跨浏览器的表现问题。_property和*property也是一样的。对于_property来说,只有IE6才能识别,因此可以用于单 独对IE6的设置中。
不过这里要注意书写的顺序:现在浏览器的写法要写在最前面,IE6的写法要写在最后面用于覆盖,其他浏览器写在中 间。
不过这里要注意书写的顺序:现在浏览器的写法要写在最前面,IE6的写法要写在最后面用于覆盖,其他浏览器写在中 间。
方法二:
其 实主要是浏览器:IE6/IE7/firefox下,各个对CSS代码的解释有区别,下边转载一篇HACK的文章,相当实用。
区别IE6 与FF : background:orange ;* background:blue ;
区别IE6 与IE7 : background:green !important ;background:blue ;
区别IE7 与 FF: background:orange ; * background:green ;
区别FF /IE7 /IE6 : background:orange ;* background:green !important ;* background:blue ;
注:IE都能识别* 标准浏览器(如FF)不能识别*
IE6 能识别* ,但不能识别 !important
IE7能识别* ,也能 识别!important
FF不能识别* ,但能 识别!important
另外再补充一个,下划线"_ ",
IE6支持下划线,IE7和firefox均不支持下划 线。(推荐.我这只有这个有效!)
于是大家还可以这样来区分IE6 、IE7 、firefox
: background:orange ;* background:green ;_ background:blue ;
* html p {color:#f00;} 支持 IE6 不支持FF IE7 IE8b
*+html p {color:#f00;} 支持 IE7 IE8b 不支持FF IE6
p {*color:#f00;} 支持 IE7 IE6 不支持FF IE8
注:不管是什么方法,书写的顺序都是firefox的写在前面,IE7的写在中 间,IE6的写在后面。
===========================================================================
2.区别IE6,IE7,IE8,FF
3.区别IE6、IE7、Firefox (方法 1)
4.区别IE6、IE7、Firefox (方法 2)
5.区别IE7、Firefox
6.区别IE6、IE7 (方法 1)
7.区别IE6、IE7 (方法 2)
8.区别IE6、Firefox
区别IE6 与FF : background:orange ;* background:blue ;
区别IE6 与IE7 : background:green !important ;background:blue ;
区别IE7 与 FF: background:orange ; * background:green ;
区别FF /IE7 /IE6 : background:orange ;* background:green !important ;* background:blue ;
注:IE都能识别* 标准浏览器(如FF)不能识别*
IE6 能识别* ,但不能识别 !important
IE7能识别* ,也能 识别!important
FF不能识别* ,但能 识别!important
另外再补充一个,下划线"_ ",
IE6支持下划线,IE7和firefox均不支持下划 线。(推荐.我这只有这个有效!)
于是大家还可以这样来区分IE6 、IE7 、firefox
: background:orange ;* background:green ;_ background:blue ;
* html p {color:#f00;} 支持 IE6 不支持FF IE7 IE8b
*+html p {color:#f00;} 支持 IE7 IE8b 不支持FF IE6
p {*color:#f00;} 支持 IE7 IE6 不支持FF IE8
注:不管是什么方法,书写的顺序都是firefox的写在前面,IE7的写在中 间,IE6的写在后面。
===========================================================================
1.区别IE和非IE浏览器
#tip {
background:blue; /*非IE 背景藍色*/
background:red \9; /*IE6、IE7、IE8背景紅色*/
}
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等)。background:blue; /*Firefox 背景变蓝色*/
background:red \9; /*IE8 背景变红色*/
*background:black; /*IE7 背景变黑色*/
_background:orange; /*IE6 背景变橘色*/
}
3.区别IE6、IE7、Firefox (方法 1)
【区别符号】:「*」、「_」
【示例】:
【示例】:
#tip {
background:blue; /*Firefox背景变蓝色*/
*background:black; /*IE7 背景变黑色*/
_background:orange; /*IE6 背景变橘色*/
}
【说明】:IE7和IE6可读「*」(米字号),IE6又可以读「_」(底线),但是IE7却无法读取「_」,至于Firefox(非IE浏览器)则完全 无法辨识「*」和「_」,因此就可以透过这样的差异性来区分IE6、IE7、Firefoxbackground:blue; /*Firefox背景变蓝色*/
*background:black; /*IE7 背景变黑色*/
_background:orange; /*IE6 背景变橘色*/
}
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。background:blue; /*Firefox 背景变蓝色*/
*background:green !important; /*IE7 背景变绿色*/
*background:orange; /*IE6 背景变橘色*/
}
5.区别IE7、Firefox
【区别符号】:「*」、「!important」
【示例】:
【示例】:
#tip {
background:blue; /*Firefox 背景变蓝色*/
*background:green !important; /*IE7 背景变绿色*/
}
【说明】:因为Firefox可以辨识「!important」但却无法辨识「*」,而IE7则可以同时看懂「*」、「!important」,因此可以 两个辨识符号来区隔IE7和Firefox。background:blue; /*Firefox 背景变蓝色*/
*background:green !important; /*IE7 背景变绿色*/
}
6.区别IE6、IE7 (方法 1)
【区别符号】:「*」、「_」
【示例】:
【示例】:
#tip {
*background:black; /*IE7 背景变黑色*/
_background:orange; /*IE6 背景变橘色*/
}
【说明】:IE7和IE6都可以辨识「*」(米字号),但IE6可以辨识「_」(底线),IE7却无法辨识,透过IE7无法读取「_」的特性就能轻鬆区隔 IE6和IE7之间的差异。*background:black; /*IE7 背景变黑色*/
_background:orange; /*IE6 背景变橘色*/
}
7.区别IE6、IE7 (方法 2)
【区别符号】:「!important」
【示例】:
【示例】:
#tip {
background:black !important; /*IE7 背景变黑色*/
background:orange; /*IE6 背景变橘色*/
}
【说明】:因为IE7可读取「!important;」但IE6却不行,而CSS的读取步骤是从上到下,因此IE6读取时因无法辨识 「!important」而直接跳到下一行读取CSS,所以背景色会呈现橘色。background:black !important; /*IE7 背景变黑色*/
background:orange; /*IE6 背景变橘色*/
}
8.区别IE6、Firefox
【区别符号】:「_」
【示例】:
【示例】:
#tip {
background:black; /*Firefox 背景变黑色*/
_background:orange; /*IE6 背景变橘色*/
}
【说明】:因为IE6可以辨识「_」(底线),但是Firefox却不行,因此可以透过这样的差异来区隔Firefox和IE6,有效达成CSS hack。background:black; /*Firefox 背景变黑色*/
_background:orange; /*IE6 背景变橘色*/
}