zoukankan      html  css  js  c++  java
  • CSS hack整理

    浏览器的兼容性一直是个头疼的问题,使用“欺骗”技术可使各个浏览器效果一致,花了些时间整理了各个浏览器的HACK,主要包括IE系列和最新版本的Chrome、Safari、Firefox、 Opera,比较全面的记录下Hack,内容包括3部分:媒体查询 hack、属性Hack、选择器Hack,这些Hack已经测试并得到有效运用,有需要的同学可以放心使用,笔者会在以后不断的更新,如果有需要补充或者修改的,欢迎大家指教!

    以下代码之间的空格是必要的,缺少空格导致失效

    /*---------------------------------媒体查询hack [[---------------------------------*/

    /* 只支持IE6、7 */

    @media screen9 {...}

    /* 只支持IE8 */

    @media screen {...}

    /* 只支持IE6、7、8 */

    @media screen\,screen9 {...}

    /* 只支持IE8、9、10 */

    @media screen {...} 

    /* 只支持IE9、10 */

    @media screen and (min-0) {...} 

    /* 只支持IE10 */

    @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {...} 

    /* 支持IE9、Chrome、Safari、Firefox、 Opera */

    @media all and (min-0){...} 

    /* 只支持wekit内核浏览器Chrome、Safari */

    @media screen and (-webkit-min-device-pixel-ratio: 0) {...}

    /* 只支持Opera */

    @media all and (-webkit-min-device-pixel-ratio: 10000), not all and (-webkit-min-device-pixel-ratio: 0) {...} 

     /* 只支持Firefox */

    @-moz-document url-prefix() {...}

     如:

    <p class="class">@hack@hack@hack@hack@hack@hack</p>
    
    <style type="text/css">
    
    @media all and (min-0){ /* 在IE9文本颜色为红色*/
    
     .class{color:#F00;}
    
    } 
    
    @media screen and (-webkit-min-device-pixel-ratio: 0) { /* 在Chrome、Safari中文本颜色为绿色 */
    
     .class{color:#0F0;}
    
    }
    
    @media all and (-webkit-min-device-pixel-ratio: 10000), not all and (-webkit-min-device-pixel-ratio: 0) { /* 在Opera中文本颜色为蓝色 */
    
     .class{color:#00F;}
    
    }
    
    @-moz-document url-prefix() { /* 在Firefox中文本颜色为品红色 */
    
     .class{color:#F0F;}
    
    } 
    
    </style>

    /*---------------------------------媒体查询hack ]]---------------------------------*/

    /*---------------------------------选择器hack [[---------------------------------*/

    /* 只支持IE7 */

    html* 选择器{} 

    /* 仅支持IE7  使用该选择器需要HTML顶部有声明:<!DOCTYPE HTML ......>*/

    *+html  选择器{}

    /* 只支持IE6 */

    *html  选择器{}

    如:

    <p class="class">选择器hack选择器hack选择器hack选择器hack选择器hack选择器hack</p>
    
    html* .class{color:#F00;} /* 在IE7中文本颜色为红色 */
    
    *+html .class{color:#0F0;} /* 在IE7中文本颜色为绿色 */
    
    *html .class{color:#00F;} /* 在IE6中文本颜色为蓝色 */

    /*---------------------------------选择器 hack ]]---------------------------------*/

    /*---------------------------------属性hack [[---------------------------------*/

    /* 只支持IE6、7、8、9、10 */

    选择器{属性:属性值9;}

    /* 支持IE8、9、10 */

    选择器{属性:属性值;}

    /* 支持IE8的部分属性值、完全支持IE9、10 */

    选择器{属性:属性值9;}

    /* 仅支持IE7和IE6 */

    选择器{*属性:属性值;}

    /* 只支持IE6 */

    选择器{_属性:属性值;}

    /* 只不支持IE6 */

    选择器{属性:属性值!important;}

    /* 仅支持Safari和Chrome ,且只能放在选择器的最后一个属性,因为当浏览器解析[;;]后,不会再读取后面属性 */

    选择器{[;属性:属性值;]}

    如:

    <p class="class">属性hack属性hack属性hack属性hack属性hack属性hack</p>
    
    <style type="text/css">
    
    .class{
    
    color:#F00;/* 在IE8和IE9中文本颜色为红色 */
    
    *color:#0F0; /* 在IE7中文本颜色为绿色 */
    
    _color:#00F; /* IE6中颜色为蓝色 */
    
    [;color:#F0F;]/* 在Safari和Chrome中颜色为品红色 */
    
    }
    
    </style>

    /*---------------------------------属性hack ]]---------------------------------*/ 

     建议是:尽量写出无hack的结构和样式,做到可以向后兼容,减少多余代码,更加可以体现自己专业化的态度。

     本文来源于https://www.cnblogs.com/PeunZhang/p/4089894.html#rgba_bug

  • 相关阅读:
    vue 当前页跳转并强制刷新
    (转)vue项目刷新当前页面
    查询sqlserver中表信息
    (转) 自旋锁和互斥锁
    Web API 自定义文件内容的定制类
    (转)缓存
    (转) redis的事务和watch
    ASP.NET MVC , ASP.NET Web API 的路由系统与 ASP.NET 的路由系统是怎么衔接的?
    (转) 分布式系统关注点——99%的人都能看懂的「熔断」以及最佳实践
    php项目权限系统设计
  • 原文地址:https://www.cnblogs.com/li-sir/p/10248784.html
Copyright © 2011-2022 走看看