一、CSS HACK
以下两种方法几乎能解决现今所有HACK.
1, !important
随着IE7对!important的支持, !important 方法现在只针对IE6的HACK.(注意写法.记得该声明位置需要提前.)
2, IE6/IE77对FireFox
*+html 与 *html 是IE特有的标签, firefox 暂不支持.而*+html 又为 IE7特有标签.
]CSS hack:区分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 FF
* √ √ ×
!important × √ √
于是大家还可以这样来区分IE6,IE7,firefox
: background:orange;*background:green;_background:blue;
注:不管是什么方法,书写的顺序都是firefox的写在前面,IE7的写在中间,IE6的写在最后面。
--------------------------------------------------------------------------------
相关:
在windows XP下面同时安装IE6,IE7和firefox
(firefox的不同版本间可以共存,但是IE的不同版本之间不能共存,本文主要是解决将IE6和IE7安装到同一个XP系统里面去的问题)
CSS的各种浏览器兼容一栏表
很早就在这里看到过解决方案,与嗷嗷讨论后发现这个方案还是很可靠的。当然,唯一的缺点就是每一个属性都要去Hack,但我在很多实践中,只用‘修正’1-2个属性就可以了。
具体写法很容易:
#someNode{ position: fixed; #position: fixed; _position: fixed;}
第一排给Firefox以及其他浏览器看
第二排给IE7(可能以后的IE8、IE9也是如此,谁知道呢)看
第三排给IE6以及更老的版本看
最好的应用就是可以让IE6也“支持”position:fixed,而且,配合这个原理,可以做到不引入JavaScript代码(仅用IE6的expression),我这里有一个现成的页面,CSS如下写:
#ff-r{
position: fixed;
_position: absolute;
right: 15px;
top: 15px;
_top: expression(eval(document.compatMode &&
document.compatMode==''CSS1Compat'') ?
documentElement.scrollTop+15 :
document.body.scrollTop +
(document.body.clientHeight-this.clientHeight));}