cssHack

不同的浏览器,比如Internet Explorer 6,Internet Explorer 7,Mozilla Firefox等,对CSS的解析认识不一样,因此会导致生成的页面效果不一样,

得不到我们所需要的页面效果。这个时候我们就需要针对不同的浏览器去写不同的CSS,让它能够同时兼容不同的浏览器,能在不同的浏览器中也能得到我们想要的页面效果。

这个针对不同的浏览器写不同的CSS code的过程,就叫CSS hack,也叫写CSS hack。

如:

CSS hack用来解决有些css属性在不同浏览器中显示的效果不一样的问题,如margin属性在ie6中显示的距离会比其他浏览器中显示的距离宽2倍

也就是说margin-left:20px;在ie6中距左侧对象的实际显示距离是40px,而在非ie6中显示的距左侧对象的距离是设置的值20px;

所以要想设置一个对象距离左侧对象的距离在所有浏览器中都显示是20px的宽度的样式应为:

.className{margin-left:20px;_margin-left:20px;}

1.\9:所有IE浏览器都支持;

2._和-:仅ie6支持;

3.*:IE6 IE7 支持;

4.\0: IE8 IE9 ,Opera部分支持;

5.\9\0: IE8部分支持,IE9支持;

6.\0\9: IE8,IE9支持;

实例一:区分IE和非IE浏览器

  #tip{
width:100px;
height:100px;
background:blue;/*非ie浏览器显示为蓝色*/
background:red\9;/*IE6 7 8 9 中显示为红色*/
}

实例二:区分IE6,IE7,IE8,FF

  #tip1{
background:blue;/*firefox背景为蓝色,所有浏览器都支持*/
background:red\9;/*IE[6,9]可以覆盖上面的样式*/
*background:black;/*IE[6,7]可以覆盖上面的样式*/
_background:orange;/*仅仅IE6可以覆盖上面的样式*/
/*
总结:
IE 系列的浏览器都可读取 \9
IE6 IE7中可读取*
IE6 中仅仅可以识别 _(-)
*/
}

实例三:区分IE6 IE7 firefox(方法一)

  #tip2{
background:blue;/*firefox 背景为蓝色*/
*background:black;/*仅仅ie7中*/
background:orange;/*仅仅ie6*/
}

实例四:区分IE6 IE7 firefox(方法二)

  #tip3{
background:blue;
*background:green!important; /*ie7中的颜色*/
*background:orange;/*仅仅ie6*/
}

 实例五:区别IE6和firefox

  #tip4{
background:black;/*火狐*/
_background:red;/*ie6*/
}

IE浏览器下的hack总结:

  #tip5{
background:blue\9;/*ie8 9*/
*background:blue;/*ie7*/
_background:blue;/*ie6*/
}

从上面看出无法区分ie 8 和 9;不过解决方法是有的;

:root div{
/*:root这个伪类,只有ie9能够支持,
但是部分其他浏览器可以使用
所以不建议使用
*/
background:pink;
}

其他浏览器的hack

@-moz-document url-prefix(){.element{color:red}};(firefox)

webkit和opera

  /*当媒体查询时*/
@media all and (min-width:960px){
.ele{}
}
/*webkit中的写法
-webkit-min-device-pixel
指的是:设备像素密度测试
*/
@media screen and (-webkit-min-device-pixel-raio:2/3 ){
.ele{}
}
/*opera中的写法*/
@media all and (-webkit-min-device-pixel-ratio:2/3),not all and (-webkit-device-pixel-ratio:2/3)
{
.ele{}
}

接着大总结

.element{
color:#000; /*w3c标准*/
[;color:#f00;]; /*Webkit(chrome和safari)*/
color:#666\9; /*IE8*/
*color:#999; /*IE7*/
_color:#333; /*IE6*/
}
:root .element{color:#0f0\9;} /*IE9*/
@media all and (-webkit-min-device-pixel-ratio:10000), not all and (
-webkit-min-device-pixel-ratio:0) { .element{color:#336699;}} /*opera*/
@-moz-document url-prefix(){ .element{color:#f1f1f1;}} /*Firefox*/

这里顺便在提一下其他的hack技巧;

cssHack的更多相关文章

  1. csshack技术

    我最近想好好整理下csshack技术,但是结果很沮丧,下面我将我最初写的笔记和大家分享下. 我在单位整理的研究笔记: 不同的浏览器对某些CSS代码解析会存在一定的差异,因此就会导致不同浏览器下给用户展 ...

  2. 浏览器兼容之条件注释,cssHack

    对于形形色色的浏览器,随之而来的就是一些兼容问题,大多应该都是IE下的兼容问题,因为任何浏览器下出现渲染不一致都极有可能是我们自己的结构或样式不符合W3C的某些要求,或者说违背了浏览器的某些规则而先造 ...

  3. 浏览器兼容处理(HTML条件注释、CSSHack和JS识别)

    前面的话 本文中所有IEx+代表包含x及x以上:IEx-代表包含x及x以下,仅个人习惯.例:IE7+代表IE7.IE8…… 本文中所有例子全部经过测试,欢迎交流. HTML识别 条件注释法(IE10+ ...

  4. 针对主流浏览器的CSS-HACK写法及IE常用条件注释

    一.通用区分方式: IE6.IE7能识别*,标准浏览器(如FF)不能识别*:IE6能识别*,但不能识别 !important:IE7能识别*,也能识别 !important:IE8能识别\0,不能识别 ...

  5. CSSHack 兼容性

    史上最全的CSS hack方式一览    CSS hack技巧大全    Can i use CSS hack CSS hack 由于不同厂商的流览器或某浏览器的不同版本(如IE6-IE11,Fire ...

  6. IE11兼容性问题修改

    最近测试给了我一大堆BUG,一瞅发现全是IE11的.吐槽一下这个浏览器真的比较特立独行.很多默认的样式跟别的浏览器不同,而且最明显的一点应该是padding左右内边距往往比别的浏览器大了一倍.但是当需 ...

  7. 遭遇input与button按钮背景图失效不显示的解决办法

    笔者从事网页前端代码页面工程师已有多年,作为一个网页重构人员常常会遇到一些莫名其妙的DIV+CSS(正确的说法是XHTML+CSS)在 IE.FireFox火狐. 谷歌浏览器CHROME.苹果浏览器S ...

  8. IE9下css hack写法

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

  9. HTML兼容问题——HACK技术

    有话先说:本文的目的主要是向大家描述一下我们在遇见IE8版本一下以及Firefox兼容的问题. 针对不同的浏览器写不同的CSS的过程,这就叫CSS hack,也叫写CSS hack,相信您会对一些比较 ...

随机推荐

  1. 【wikioi】1285 宠物收养所

    题目链接:http://www.wikioi.com/problem/1285/ 算法:Splay 刚开始看到这题,就注意到特征abs了,并且数据n<=80000显然不能暴力,只能用nlgn的做 ...

  2. RN组件之ViewPagerAndroid

    一.ViewPagerAndroid 1.一个允许在子视图之间左右翻页的容器.每一个ViewPagerAndroid的子容器会被视作一个单独的页,并且会被拉伸填满 ViewPagerAndroid.注 ...

  3. Qt5.4 VS2010 Additional Dependancies

    Go to Linker -> General -> Additional LIbrary Directories: qtmaind.libQt5Cored.libQt5Guid.libQ ...

  4. 平易近人、兼容并蓄——Spark SQL 1.3.0概览

    自2013年3月面世以来,Spark SQL已经成为除Spark Core以外最大的Spark组件.除了接过Shark的接力棒,继续为Spark用户提供高性能的SQL on Hadoop解决方案之外, ...

  5. LINQ Count/Sum/Min/Max/Avg

    参考:http://www.cnblogs.com/peida/archive/2008/08/11/1263384.html Count/Sum/Min/Max/Avg用于统计数据,比如统计一些数据 ...

  6. GC、LOH和Performance相关

    Performance Now that we have a basic model for how things are working, let's consider some things th ...

  7. Disaster recovery best practices for Symantec Endpoint Protection 12.1

    https://support.symantec.com/en_US/article.TECH160736.html

  8. git统计报告

    2016年10月30日--2016年11月9日

  9. c3p0配置 initialPoolSize 和minPoolSize 可以设为0吗?设0有坏处吗?

    c3p0配置 initialPoolSize 和minPoolSize 可以设为0吗?设0有坏处吗? c3p0配置 initialPoolSize 和minPoolSize 可以设为0吗?设0有坏处吗 ...

  10. 深入说明HDR

    http://wenku.baidu.com/link?url=xBdq0VRVi2t0x9uis3XfU_0mKf2eK0e6y_1hiSo7IWSWyUE8yAwaTJ60ZlxTzQf91VPf ...