找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 3744|回复: 0

Css hack总结及其最佳用法

[复制链接]
发表于 2011-12-22 12:09:50 | 显示全部楼层 |阅读模式

CSS HACK总结


在开发页面的过程中,总会遇到这样那样的不兼容问题,在尽量避免使用一些兼容性很差的元素和样式后,往往还有细节上的不兼容问题,最求完美的前端工程师们就要采用css hack来解决问题了。
网上各种css hack资料很多,但是很多是有错误,或者不形象的,今天我来细致形象的总结一下他们,及最万无一失的用法~

所有效果均经过各个浏览器测试

首先 ,将要提及的css hack 有:_,*,\0,\9,\0\9,!important
各个hack的作用:
_ :用于IE6
代码: 1 background-color:blue;
2 _background-color:red;

效果:

*和+:用于IE6,IE7
代码:1 background-color:blue;
2 *background-color:red; 

1 background-color:blue;
2 +background-color:red;


效果都为:

\0:用于IE8,IE9
代码:1 background-color:blue;
2 background-color:red\0;

效果:

没错,在IE6下 无法识别了~~~
      \9:用于 IE6,IE7,IE8,IE9
        代码:1 background-color:blue;
2 background-color:red\9;

        效果:

\9\0:用于IE9
代码:1 background-color:blue;
2 background-color:red\9\0;

效果: 



没错IE6,又无法识别了~~~~


!important:用于所有浏览器--不能算做是hack了,不推荐使用哦
代码:1 div{
2     background-color:red !important;
3 }
4 #test{
5     background-color:blue;
6 }

效果:

        加上!important 可以完全无视css优先级了~~~

CSS HACK最佳应用方式


         那么该怎么使用css hack ,达到最好的效果----不影响已经符合标准的浏览器样式呢?
        对于IE6:
          代码1 background-color:blue;
2 _background-color:red;

        如果IE7,IE6同时有问题:
          以下2选一:
          代码:1 background-color:blue;
2  *background-color:red;

1 background-color:blue;
2  +background-color:red;

        如果只有IE7呢?
          代码:1 background-color:blue;
2 *background-color:red;
3 _background-color:blue;

        对于IE8:
         代码:1 background-color:blue;
2 background-color:red\9;
3 *background-color:blue;
4 background-color:blue\9\0;

         对于IE9:
         代码:  记得恢复IE6~1 background-color:blue;
2 background-color:red\9\0;
3 _ background-color:blue;

       对于整个IE:1 background-color:blue;
2 background-color:red\9;



本文链接
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-5-18 12:07 , Processed in 0.017036 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表