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. [BZOJ 3145][Feyat cup 1.5]Str 解题报告

    [Feyat cup 1.5]Str DescriptionArcueid,白姬,真祖的公主.在和推倒贵看电影时突然对一个问题产生了兴趣:我们都知道真祖和死徒是有类似的地方.那么从现代科学的角度如何解 ...

  2. Jquery_JQuery之DataTables强大的表格解决方案

    1.DataTables的默认配置 $(document).ready(function() { $(‘#example’).dataTable(); } ); 示例:http://www.guoxk ...

  3. salt执行报错一例

    执行报错: 查看服务端日志: 认证有问题 重新认证吧!!! minion端: [root@super66 ~]# cd /etc/salt/[root@super66 salt]# lsminion ...

  4. 三、saltstack证书管理

    192.168.1.65 super65.cn   master192.168.1.66 super66.cn   minion saltstack使用SSL签证的方式进行安全认证. minion上线 ...

  5. 移动web app开发小贴士 收藏有用

    1 创建主屏幕图标 (Creating a home screen icon ,for ios)   1 2 3 4 5 6 //57*57 <link rel="apple-touc ...

  6. 在myql sqlserver里边怎么快速找到带有关键字的表

    sql server 全部库: ),) set @id=(select count(*) from master..sysdatabases) drop table #t create table # ...

  7. HDU 1698 线段树 区间更新求和

    一开始这条链子全都是1 #include<stdio.h> #include<string.h> #include<algorithm> #include<m ...

  8. JiaThis WordPress分享插件安装全攻略

    WordPress 是一个功能非常强大的博客系统,插件众多,易于扩充功能.安装和使用都非常方便.目前 WordPress 已经成为主流的 Blog 搭建平台.按照下面的方法,只需简单几步,就可轻松地将 ...

  9. JLINK SWD下载模式引脚

    SWD接4个脚就可以  RESET可以不用接

  10. 时间函数 date strtotime

    date_default_timezone_set('Asia/Shanghai');echo strtotime('Today');echo strtotime(date('Y-m-d')); 获取 ...