1、条件hack

2、属性hack

3、选择器hack

CSS Hack一般都是利用各浏览器的支持CSS的能力和BUG来进行的

本文只列举了一些常用的CSS Hack,且不考虑IE6以下的版本

尽可能减少对CSS Hack的使用,使用CSS Hack会带来维护成本的提高以及浏览器版本变化类似Hack失效等问题

1、条件hack

用于选择IE及IE不同版本,IE10及以上版本已将条件注释特性移除

<!--[if IE 8]> <![endif]--> <!-- IE8 -->
<!--[if gt IE 8]> <![endif]--> <!-- IE9+ -->
<!--[if gte IE 8]> <![endif]--> <!-- IE8+ -->
<!--[if lt IE 8]> <![endif]--> <!-- IE7- -->
<!--[if lte IE 8]> <![endif]--> <!-- IE8- -->
<!--[if ! IE 8]> <![endif]--> <!-- !IE8 -->

条件hack是HTML级别的(不仅是CSS的hack,还可以选择HTML代码块)

<!--[if IE]>
<link rel="stylesheet" href="css/global.css">
<style>
p{ color:#f00; }
</style> <p>你在非IE中将看不到我的身影</p>
<![endif]-->

2、属性hack

属性hack需运行在标准模式下,若在怪异模式下运行,将会被不同版本的IE相互识别,导致失效

由于浏览器存在交叉认识,所以需要通过层层覆盖的方式来实现

element {
color: #fff;
color: #fff\0; /* IE8+ */
color: #fff\9; /* IE10- */
color: #fff\9\0; /* IE9、IE10 */
color: #fff\0/; /* IE8 */
*color: #fff; /* IE7- */
_color: #fff; /* IE6- */
}

3、选择器hack

选择器hack与属性hack一样,需运行在标准模式下,通过层层覆盖的方式来实现

*html element{} /* IE6- */
*+html element{} /* IE7 */
@media screen\9{} /* IE7- */
@media \0screen{} /* IE8 */
@media \0screen\,screen\9{} /* IE8- */
@media screen\0{} /* IE8+ */
@media screen and (min-width:0\0){} /* IE9+ */
@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){} /* IE10+ */

IE CSS Hack【记录】的更多相关文章

  1. CSS Hack技术介绍及常用的Hack技巧集锦

    一.什么是CSS Hack? 不同的浏览器对CSS的解析结果是不同的,因此会导致相同的CSS输出的页面效果不同,这就需要CSS Hack来解决浏览器局部的兼容性问题.而这个针对不同的浏览器写不同的CS ...

  2. CSS Hack

    CSS HACK,网上有很多,主要是IE版本不同造成的,尽量不要用CSS HACK,实在调不过去可以用一用,相信以后随着IE低版本的淘汰,CSS HACK也将不在使用. 类内部HACK IE6识别 - ...

  3. css3复杂选择器+内容生成+Css Hack

    1.复杂选择器2.内容生成3.多列4.CSS Hack(浏览器兼容性)=======================================1.复杂选择器 1.兄弟选择器 1.特点: 1.通过 ...

  4. CSS Hack解决浏览器IE部分属性兼容性问题

    1.Css Hack 不同厂商的流览器或某浏览器的不同版本(如IE6-IE11,Firefox/Safari/Opera/Chrome等),对CSS的支持.解析不一样,导致在不同浏览器的环境中呈现出不 ...

  5. IE9下css hack写法

    ie9一出css hack也该更新,以前一直没关注,今天在内部参考群mxclion分享了IE9的css hack,拿出来也分享一下: select { background-color:red\0; ...

  6. 【荐】说说CSS Hack 和向后兼容

    人一旦习惯了某些东西就很难去改,以及各种各样的原因,新的浏览器越来越多,而老的总淘汰不了.增长总是快于消亡导致了浏览器兼容是成了谈不完的话题.说 到浏览器兼容,CSS HACK自然而然地被我们想起.今 ...

  7. IE 6 ~ 9 CSS Hack 写法总结

    IE 6 ~ 9 CSS Hack 写法总结 24th 四, 14 lip2up [code lang="css"]_color: red;    /* ie6 */*color: ...

  8. [转]CSS hack大全&详解

    转自:CSS hack大全&详解 1.什么是CSS hack? CSS hack是通过在CSS样式中加入一些特殊的符号,让不同的浏览器识别不同的符号(什么样的浏览器识别什么样的符号是有标准的, ...

  9. 聊聊css hack

    什么是CSS hack CSS hack由于不同厂商的浏览器,比如Internet Explorer,Safari,Mozilla Firefox,Chrome等,或者是同一厂商的浏览器的不同版本,如 ...

随机推荐

  1. 10分钟看懂Docker和K8S

    本文来源:鲜枣课堂 2010年,几个搞IT的年轻人,在美国旧金山成立了一家名叫"dotCloud"的公司. 这家公司主要提供基于PaaS的云计算技术服务.具体来说,是和LXC有关的 ...

  2. Redis 搭建文档,备份及认证

    wget http://download.redis.io/releases/redis-3.0.6.tar.gz为了方便管理,将Redis文件中的conf配置文件和常用命令移动到统一文件中[root ...

  3. java:当字符串为We Are Happy.经过替换之后的字符串为We%20Are%20Happy

    方法一: public class Solution { public String replaceSpace(StringBuffer str) { String a=str.toString(); ...

  4. Api 文档管理系统 RAP2 环境搭建

    Api 文档管理系统 RAP2 环境搭建  发表于 2018-03-27 |  分类于 Api |  评论数: 4|  阅读次数: 4704  本文字数: 4.8k |  阅读时长 ≍ 9 分钟 RA ...

  5. mysql 开发基础系列22 SQL Model

    一.概述 与其它数据库不同,mysql 可以运行不同的sql model 下, sql model 定义了mysql应用支持的sql语法,数据校验等,这样更容易在不同的环境中使用mysql. sql ...

  6. ZOJ Problem Set - 2397 Tian Ji -- The Horse Racing

    #include<iostream> #include<cmath> #include<algorithm> #define REP(i,n) for(int i= ...

  7. ES6躬行记(11)——对象

    在第5篇中,讲解了多个对象字面量的改进,本节将重点介绍两个新增的静态方法,以及对象属性的重复处理和枚举顺序. 一.Object.is() 此方法用于判断两个值是否相同,内部实现了SameValue算法 ...

  8. MySQL数据库——表操作

    I.表操作 一.创建表 基本语法如下: create table 表名( 列名 类型 是否可以为空, 列名 类型 是否可以为空 )ENGINE=InnoDB DEFAULT CHARSET=utf8: ...

  9. Java——类和对象

    前言   Java语言是一种面向对象的语言.面向对象的思想是在七十年代的时候由IBM的SmallTalk语言最先推广.那什么是面向对象呢?面向对象指的是一种开发模式.早期的计算机编程使用的是面向过程的 ...

  10. #19 re&jieba模块

    前言 在Python中,需要对字符串进行大量的操作,有时需要从一个字符串中提取到特定的信息,用切片肯定是不行的,所有这一节记录两个强大的文本处理模块,一个是正则表达式re模块,另一个是中文处理模块ji ...