登录站点

用户名

密码

IE6, IE7, Firefox, Opera 及 Safari CSS Hacks

已有 228 次阅读  2008-11-05 23:50   标签CSS  hack  HTML  IE6  IE7  Firefox  Opera 
不同的浏览器,甚至不同版本的同一个浏览器对同样的CSS的解析都有所不同,这样就造成了网页设计中的许多不变。不过,我们还是可以依靠一些小小的Hacks来弥补这些不便。

下面介绍的一些CSS hacks主要涉及到 IE5, IE6, IE7, Firefox, Opera 及 Safari:

IE系列:

    div { +property:value; } 在属性名前加上加号"+",这个Hack只有IE系列可以识别.
    div { *property:value; } 在属性名前加上星号"*",这个Hack只有IE系列可以识别.
    div { _property:value; } 在属性名前加上下划线"_",这个Hack只有IE系列 (除IE7外) 识别.
    * html div { property:value; } 在选择器上运用继承法 * html div, 这个Hack只有IE系列 (除IE7外) 可以识别.
    html >body div { property:value; } 在选择器上运用继承法 html >body div ,这个Hack只有IE系列 (除IE7外) 可以识别.
    div { property:value; } 在属性名和冒号":"之间加入注释,屏蔽IE6用.
    div { property:value; } 在选择器和花括号"{"之间以及在属性名和冒号":"之间加入注释,屏蔽IE5和IE6用 (不屏蔽IE5.5) .
    select { property:value; } 在选择器和花括号"{"之间加入注释,屏蔽IE5用.
    * + html div { property:value !important; } 在选择器上运用继承法 *+html div 再加上 !important, 这个Hack只有IE7可以识别.


    
IE5.x的过滤器,只有IE5.x可见
    @media tty {
    i{content:"\";}} @import 'ie5win.css';
IE5/MAC的过滤器,一般用不着
IE的if条件Hack
    <!--[if IE]>Only IE <![endif]--> 所有的IE可识别
    <!--[if IE 5.0]> Only IE 5.0 <![endif]--> 只有IE5.0可以识别
    <!--[if gt IE 5.0]> Only IE 5.0+ <![endif]--> IE5.0包换IE5.5都可以识别
    <!--[if lt IE 6]> Only IE 6- <![endif]--> 仅IE6可识别
    <!--[if gte IE 6]> Only IE 6/+ <![endif]--> IE6以及IE6以下的IE5.x都可识别
    <!--[if lte IE 7]> Only IE 7/- <![endif]--> 仅IE7可识别



Firefox:

    *:lang(lang) div { property:value !important; } 用伪类lang(语言)再加上!important进行定义的话,目前只有Firefox可以识别.
    div, x:-moz-any-link { property:value; } 目前只有Firefox可以识别.

Safari:
    div:empty { property:value !important; } 用伪类empty再加上!important进行定义的话,目前只有Safari可以识别.

Opera:
    @media all and (min-width: 0px){ div { property:value; } } 利用特殊继承法进行定义的话,目前只有Opera可以识别.

以上都是写CSS中的一些HACK,这些都是用来解决局部的兼容性问题,如果希望把兼容性的内容也分离出来,不妨试一下下面的几种过滤器。这些过滤器有的是写在CSS中通过过滤器导入特别的样式,也有的是写在HTML中的通过条件来链接或是导入需要的补丁样式。
分享 举报