共计 1348 个字符,预计需要花费 4 分钟才能阅读完成。
浏览器市场的混乱,给设计师造成很大的麻烦,设计的页面兼容完这个浏览器还得兼容那个浏览器,本来 ie6 跟 ff 之间的兼容是很容易解决的。加上个 ie7 会麻烦点,ie8 的出现就更头疼了,原来 hack ie7 的方法又不能用了,怎么办呢?
第一种方法:
还好,微软提供了这样一个代码:
把这段代码放到 里面,在 ie8 里面的页面解析起来就跟 ie7 一模一样的了,所以,基本上可以无视 ie8,剩下的代码只需要这样写就可以了
background:#ffc; /* 对 firefox 有效 */
*background:#ccc; /* 对 ie7 有效 */
_background:#000; /* 只对 ie6 有效 */
解释一下吧:
firefox 能解析第一段,后面的两个因为前面加了特殊符号“*”和“_”,firefox 认不了,所以只认 background:#ffc,看到的是黄色;
ie7 前两短都能认,以最后的为准,所以最后解析是 background:#ccc,看到的是灰色;
ie6 三段都能认,而且“_”这个只有 ie6 能认,所以最后解析是_background:#000,看到的是黑色
阿门!已经是最简单和最好理解的写法了,如果你是 google 进来的,我可以很负责任的告诉你,这种方法是 ok 的,我测试过。
ie8 的那段兼容 7 的代码我也测试过了,在我现在的 windos 7 测试版所带的 ie8 是没问题的,以后 ie8 正式版出来还管不管用就不知道了。
ps:如果你发现按我这样写还是有问题的话,请查看一下你的 html 头,看看 之前的内容是不是这样的标准写法
http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd“>
< html xmlns=”“>
这个是现在比较规范的写法,如果你是用 dreamweaver 做页面的话,默认也是这种规范的,切记,非这种规范写法的,兼容性不能保证
第二种方法:
要求苛刻的朋友是不愿意在页面头部增加 这样一句代码的,因为这样的结果是每个页面都得加。那么要想兼容这几个浏览器还真得想别的办法了。早些天本站发布了一篇《完美兼容 ie6,ie7,ie8 以及 firefox 的 css 透明滤镜》,可能当时测试的疏忽,ie8 的兼容性没有解决好,好多朋友回复说用不了。今天抽出些时间,查阅大量资料,终于解决了这个问题了。
以下是兼容 ie6/ie7/ie8/ff 的写法,注意下面的顺序不可颠倒
margin-bottom:40px; /*ff 的属性 */
margin-bottom:140px9; /* ie6/7/ 8 的属性 */
color:red; /* ie8 支持 */
*margin-bottom:450px; /*ie6/ 7 的属性 */
下面以一个实例的形式表现,大家可以运行代码查看一下效果