兼容IE6/IE7/IE8/FireFox的CSS hack收藏
测试方块 zss
IE6 最终为绿色 IE7 最终为蓝色 IE8 最终为红色 FireFox/Chrome或其它
今天看到hiccblogs里面一个关于IE8的兼容，一句话很简单，可惜只是针对IE兼容的，而且是建立在IE7的核心之上，局限性很大。自认为css兼容做的相对比较熟练，既然出了IE8，那就把IE8的兼容也研究一下。
CSS兼容性一直是大家头疼的问题，IE6、IE7和FF已经让大家够呛，在以前的文章中，很多这方面的知识介绍。IE8正式版发布以来,就想在找一种区别IE8正式版的方法.在百度搜索有很多个结果,google搜索的结果更多。IE8正式版和测试版在hack上是有很大区别的.而且网络上的方法几乎都是相互转载,出现频率最高的要数那张linxz.cn的hack图片了，可惜这张图里的方法对IE8正式版无效。 经过分析和总结,有了下面的行之有效的解决方案,或许以后还会有更好更简单的hack，但就目前来说这个方法可以解决燃眉之急.
另：使用<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /> 强制用IE7兼容模式浏览。

- Simple Example:
- "\9"　例:"margin:0px auto\9;".
- 这里的"\9"可以区别所有IE和FireFox.
- "*"　IE6、IE7可以识别.IE8、FireFox不能.
- "_"　IE6可以识别"_",IE7、IE8、FireFox不能

表格测试 |

    如果要在js中向head添加style节点，可以用以下方法：

    function mountStyle( css, destinDoc )
    {
        destinDoc = destinDoc || document;
        var head = destinDoc.getElementsByTagName('head')[0];
        var cssLink = destinDoc.createElement("style");
        if (head)
            head.appendChild(cssLink);
     cssLink.setAttribute( "type", "text/css" );
     // For IE
     if( cssLink.styleSheet )
     {
      cssLink.styleSheet.cssText = css;
     }
     // For Firefox
     else
     {
      var cssText = destinDoc.createTextNode( css );
      cssLink.appendChild(cssText );
     }
    };

本文来自CSDN博客，转载请标明出处：http://blog.csdn.net/ydshang/archive/2009/05/07/4158098.aspx