不同浏览器对css的解析是不同是,因此需要css hack来解决浏览器局部的兼容性问题。针对不同浏览器写不同的CSS代码的过程叫CSS  Hack。

常见的hack有三种形式,分别是CSS属性hack,CSS选择符hack,IE条件注释hack,hack主要针对IE浏览器。

CSS属性hack:如IE6能识别"_"和"*",IE7能识别"*",不能识别"_",firefox两个都不能识别。

color:red;//所有浏览器识别

_color:red;//IE6识别

*color:red;//IE6、IE7识别

+color:red;//IE6、IE7识别

*+color:red;//IE6、IE7识别

[color:red;//IE6、IE7识别

color:red\9;//IE6、IE7、IE8、IE9识别

color:red\0;//IE8、IE9识别

color:red\9\0;//IE9识别

color:red \0;//IE9识别

color:red!important;IE6不识别!important

CSS选择符hack:IE6能识别*html.class{},IE7能识别*+html.class{}或者*:first-child+html.class{}。

*html #demo{color:red;} //IE6识别

*+html #demo{color:red;} //IE7识别

body:nth-of-type(1) #demo{color:red}  //IE9、FF3.5+、Chrome、Safari、Opera识别

head:first-child+body #demo{color:red}  //IE7+、FF、Chrome、Sarari、Opera识别

:root #demo{color:red\9} //仅IE9识别

IE条件注释hack:IE条件注释从IE5开始提供的一种非标准逻辑语句只在IE有有效,其他浏览器被当做注释。

<!--[if IE]>IE可见<![endif]-->

<!--[if IE 6]>IE6可见<![endif]-->

<!--[if IE 7]>IE7可见<![endif]-->

<!--[if !IE 7]>IE不可见<![endif]-->

<!--[if gt IE 6]>IE6以上版本可见<![endif]-->

<!--[if gte IE 6]>IE6和IE6以上版本可见<![endif]-->

<!--[if lt IE 7]>IE7以下版本可见<![endif]-->

<!--[if lte IE 7]>IE7和IE7以下版本可见<![endif]-->

<!--[if !IE]>IE不可见<![endif]-->

由于IE6不支持!improtant,ff支持!important,所以用来区分浏览器。

<style type="text/css">

.demo{

color:red !important;

color:green;

}

</style>

<div class="demo">abc</div>

在ie6中字体为绿色,在FF中字体为红色。

注意:在一个选择器里面,!important改变优先级,IE6下是无效的,后面的样式覆盖前面的样式。在有多个选择器的时候,!important有效的。

<style type="texe/css">

.demo{

color:red !important;

}

.demo{

color:green;

}

</style>

<div class="demo">abc</div>

在多选择符的时候也要注意IE6的显示情况:

#name.a1.a2 {color:red};

.a1.a2 {color:red};

在IE7+和FF/OPERA/SAFARI都支持,在IE6上则被理解为:

#name.a2 {color:red};

.a2 {color:red};

前面的类名会被后面的类名覆盖掉。可考虑不用类组合的形式。

本学习内容来源于  前端客 的分享:http://www.qdker.com/archives/138.html

hack是什么的更多相关文章

  1. css常用hack

    原文地址:css常用hack 突然想起今天早上在CNZZ看到的统计数据,使用IE6.7的用户比例还真多,看到之后我的心都碎了.微软都放弃了为毛还有这么多人不死心? 所以说,IE下的兼容还是得做的. – ...

  2. CSS3_01之选择器、Hack

    1.兄弟选择器:①相邻兄弟选择器:元素的后一个兄弟元素,选择器1+选择器2:②通用兄弟选择器:元素后的所有兄弟元素,选择器1~选择器2: 2.属性选择器:attr表示属性名称,elem表示元素名:①[ ...

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

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

  4. Medial Queries的另一用法——实现IE hack

    众所周知,有些时候为了实现IE下的某些效果与现代浏览器一致,我们不得不使用一些hack手段来实现目的.比如说使用"\0","\"和"\9"来 ...

  5. CSS Hack

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

  6. hack

    1.Firefox @-moz-document url-prefix() { .selector { property: value; } }上面是仅仅被Firefox浏览器识别的写法,具体如: @ ...

  7. 浅谈CSS hack(浏览器兼容)

    今天简单写一点关于浏览器兼容的处理方法,虽然百度上已经有很多,但是我还是要写! 先看一个图 这个图描述了2016年1月至8月网民们所使用的浏览器市场份额(来源:http://tongji.baidu. ...

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

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

  9. dedecms功能性函数封装(XSS过滤、编码、浏览器XSS hack、字符操作函数)

    dedecms虽然有诸多漏洞,但不可否认确实是一个很不错的内容管理系统(cms),其他也不乏很多功能实用性的函数,以下就部分列举,持续更新,不作过多说明.使用时需部分修改,你懂的 1.XSS过滤. f ...

  10. CSS hack技巧大全

    ——作者:吴雷君 兼容范围: IE:6.0+,FireFox:2.0+,Opera 10.0+,Sarari 3.0+,Chrome 参考资料: 各游览器常用兼容标记一览表: 标记 IE6 IE7 I ...

随机推荐

  1. iOS的三种多线程技术NSThread/NSOperation/GCD

    1.iOS的三种多线程技术 1.NSThread 每个NSThread对象对应一个线程,量级较轻(真正的多线程) 2.以下两点是苹果专门开发的"并发"技术,使得程序员可以不再去关心 ...

  2. 说说 PWA 和微信小程序--Progressive Web App

    作者:云图图链接:https://zhuanlan.zhihu.com/p/22578965来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 利益相关:微信小用户,谷歌小 ...

  3. openssl HeartBlood

    受影响[编辑] OpenSSL 1.0.2-beta OpenSSL 1.0.1 - OpenSSL 1.0.1f 除非针对CVE-2014-0160的操作系统补丁已经安装,而没有更改库版本,如Deb ...

  4. zend optimizer在wamp的基础上安装

    在用wampserver集成开发环境下,有时会碰到一些开源程序需要zend optimizer的支持,下面我用的wamp的版本是2.0,optimizer的版本是ZendOptimizer-3.3.3 ...

  5. PostgreSQL Errors and Messages

    使用RAISE语句来报告消息并抛出错误 RAISE [ level ] ’format’ [, expression [, ... ]] [ USING option = expression [, ...

  6. Maven教程(转载)

    转载自:http://www.yiibai.com/maven/ Apache Maven是一个软件项目管理和综合工具.基于项目对象模型(POM)的概念,Maven可以从一个中心资料片管理项目构建,报 ...

  7. mysql 导入大数据的秘籍

    在使用这种方法前,你必须先建立一个数据库,这个数据库是你希望将sql文件导入的数据库.假如你创建的数据库为demo_data,数据库文件为demo.sql 并且该数据库文件位于你的D盘下,即该文件在 ...

  8. asp上传图片提示 ADODB.Stream 错误 '800a0bbc'的解决方法

    asp上传图片提示 ADODB.Stream 错误 '800a0bbc' 有这个提示有很多问题导致.权限是常见一种.这个不多说,还有一个有点怪的就是 windows2008显示系统时间的格式竟然是:2 ...

  9. paper 80 :目标检测的图像特征提取之(一)HOG特征

    1.HOG特征: 方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子.它通过计算和统计图像局部区域的 ...

  10. paper 4:支持向量机系列一: Maximum Margin Classifier —— 支持向量机简介。

    支持向量机即 Support Vector Machine,简称 SVM .我最开始听说这头机器的名号的时候,一种神秘感就油然而生,似乎把 Support 这么一个具体的动作和 Vector 这么一个 ...