CSS hack是通过在CSS样式中加入一些特殊的符号,让不同的浏览器识别不同的符号(什么样的浏览器识别什么样的符号是有标准的,CSS hack就是让你记住这个标准),以达到应用不同的CSS样式的目的,比如.kwstu{width:300px;_width:200px;},一般浏 览器会先给元素使用width:300px;的样式,紧接着后面还有个_width:200px;由于下划线_width只有IE6可以识别,所以此样式 在IE6中实际设置对象的宽度为200px,后面的把前面的给覆盖了,而其他浏览器不识别_width不会执行_width:200px;这句样式,所以 在其他浏览器中设置对象的宽度就是300px;
以下是引自百度文库的定义
注意:我们通常主要考虑的浏览器有IE6、IE7、IE8、谷歌浏览器(chrome)、火狐(Mozilla Firefox)即可,至于我们常用的傲游、QQ的TT浏览器是用你计算机中装的系统自带浏览器的内核,所以只需要兼容以上浏览器即可兼容TT\傲游浏览器。
CSS hack用来解决有些css属性在不同浏览器中显示的效果不一样的问题,如margin属性在ie6中显示的距离会比其他浏览器中显示的距离宽2倍,也就 是说margin-left:20px;在ie6中距左侧对象的实际显示距离是40px,而在非ie6中显示的距左侧对象的距离是设置的值20px;所以 要想设置一个对象距离左侧对象的距离在所有浏览器中都显示是20px的宽度的样式应为:.kwstu{margin- left:20px;_margin-left:20px;}。
从上图可以分析出以下几种情况:
2.\9 :所有IE浏览器都支持
3._和- :仅IE6支持
4.* :IE6、E7支持
5.\0 :IE8、IE9支持,opera部分支持
6.\9\0 :IE8部分支持、IE9支持
7.\0\9 :IE8、IE9支持
background:blue;/*非IE背景蓝色 因为所有浏览器都能解释*/
background:red\9;/*IE6、IE7、IE8、IE9背景紅色 因为\9在IE6.7.8.9中可以识别,覆盖上面样式 IE10跟11应该不识别,IE11测试确定*/
}
【区别符号】:“\9”、“*”、“_”
background:blue;/*Firefox背景变蓝色 所有浏览器都支持*/
background:red\9;/*IE8背景变红色 IE6、7、8、9支持覆盖上面样式*/
*background:black;/*IE7背景变黑色 IE6、7支持又一次覆盖上面样式*/
_background:orange;/*IE6背景变橘色 紧IE6支持又一次覆盖上面样式*/
}
【区别符号】:“*”、“_”
background:blue;/*Firefox背景变蓝色*/
*background:black;/*IE7背景变黑色*/
_background:orange;/*IE6背景变橘色*/
}
【区别符号】:“*”、“!important”
background:blue;/*Firefox背景变蓝色*/
*background:green!important;/*IE7背景变绿色*/
*background:orange;/*IE6背景变橘色*/
}
【区别符号】:“*”、“!important”
background:blue;/*Firefox背景变蓝色*/
*background:green!important;/*IE7背景变绿色*/
}
【区别符号】:“*”、“_”
*background:black;/*IE7背景变黑色*/
_background:orange;/*IE6背景变橘色*/
}
【区别符号】:“!important”
background:black!important;/*IE7背景变黑色*/
background:orange;/*IE6背景变橘色*/
}
【区别符号】:“_”
background:black;/*Firefox背景变黑色*/
_background:orange;/*IE6背景变橘色*/
}
color:#666\9; //IE8 IE9
* color:#999; //IE7
_color:#EBEBEB; //IE6
}
可以看出,利用字符识别无法区分IE8和IE9,我们可以从伪类的识别来区分
color:#666\9; //IE8
* color:#999; //IE7
_color:#EBEBEB; //IE6
}
:root element{color:#666\9;}//IE9
@-moz-document url-prefix(){ .element{color:#f1f1f1;}} //Firefox
//Webkit
@media screen and (-webkit-min-device-pixel-ratio:0)
{
.element{color:#444;}
}
//Opera
@media all and (-webkit-min-device-pixel-ratio:10000), not all and (-webkit-min-device-pixel-ratio:0) {
.element{color:#336699;}
}
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*/
相关推荐
### CSS Hack 技术详解及应用 #### 一、引言 随着互联网技术的发展,Web前端开发变得越来越重要。然而,在实际开发过程中,一个不容忽视的问题便是**跨浏览器兼容性**。由于不同浏览器(包括同一浏览器的不同版本...
### CSS Hack详解 #### 一、CSS Hack的概念与原理 **CSS Hack**是一种技术手段,用于解决不同浏览器间兼容性问题。由于各种浏览器对CSS的支持程度不同,导致相同的CSS代码在不同浏览器上呈现的效果可能存在差异。...
### 区别不同浏览器CSS Hack知识点详解 #### CSS Hack简介 在Web开发过程中,由于不同浏览器对CSS的支持程度不一,导致同一段CSS代码在不同的浏览器中可能呈现出不同的效果。为了确保网页能在各种浏览器中正常显示...
CSS Hack是一种技术手段,用于解决由于不同浏览器对CSS解析不一致导致的页面渲染问题。由于各个浏览器厂商对CSS规范的实现可能存在差异,特别是在早期版本的Internet Explorer与其他浏览器之间,这种差异尤为明显。...
### 各主流浏览器CSS HACK列表详解 #### 一、引言 随着Web技术的发展与进步,浏览器兼容性问题一直是前端开发者关注的重点之一。由于不同浏览器对CSS的支持程度有所差异,为了确保网页能够在各种浏览器中正常显示,...
### CSS Hack针对WebKit核心浏览器(如Chrome与Safari)的应用详解 #### 一、引言 随着前端技术的发展,浏览器兼容性一直是开发者面临的重要问题之一。由于不同浏览器内核对CSS的支持程度存在差异,为了确保网页在...
#### 三、通用CSS Hack详解 通用CSS Hack是指那些不依赖于特定条件的Hack方式,它们通常基于浏览器解析CSS规则时的行为差异来进行区分。以下是一些常见的通用CSS Hack示例: ##### 1. **IE条件Hack** IE...
### CSS样式Hack详解:兼容多种浏览器的技术解析 #### 一、CSS Hack简介 CSS Hack是一种技术手段,旨在解决不同浏览器间CSS渲染差异的问题。由于各浏览器(如IE6、IE7、Firefox等)对CSS标准的支持程度不同,...
"CSS Hack 详解" CSS(Cascading Style Sheets)是 web 开发中不可或缺的一部分,而 CSS Hack 则是指在不同浏览器中使用特殊的 CSS 语句来解决浏览器之间的兼容性问题。 在上面的代码中,我们可以看到三个 CSS ...
### CSS常用英语词汇详解 #### 一、Introduction (简介) CSS(Cascading Style Sheets)是一种用来描述HTML或XML文档外观的语言。为了更好地理解和运用CSS,掌握相关的专业词汇至关重要。以下将详细介绍近100个在...
### CSS兼容性详解 #### 一、CSS Hack技术 **CSS Hack**是一种针对不同浏览器或浏览器版本编写特定样式的技巧,以确保网页在各种浏览器下的表现一致。随着浏览器技术的发展,许多Hack方法已经逐渐不再适用。 ####...
#### IE6/7/8中的CSS Hack技术详解 1. **FF属性**: - `border:2px solid #00f;`(FF的属性) - 这条样式规则会被Firefox以及其他现代浏览器正确解析并应用,但不会被IE6/7/8所识别。 2. **IE6/7/8通用属性**: ...
此外,还有基于CSS注释的hack,例如,将CSS属性写在注释中,某些浏览器会忽略注释内的样式,但某些不会: ```css /*\*/ property: value; /* 这个规则可能对某些浏览器生效 */ /*/*/ ``` 在阅读Jason Green的博客...
### CSS Hack 技术详解:针对Firefox (FF) 和 Internet Explorer 6/7 (IE6/IE7) 的专用Hack #### 引言 随着Web技术的发展与浏览器更新换代的速度加快,不同的浏览器对CSS的支持程度各不相同,特别是在早期阶段,...