初涉CSS Hack
之前调整浏览器兼容基本上没用到CSS Hack技术,所以调整起来相当麻烦,很多时候要一个个像素来调。今天研究了下CSS Hack,感觉受益良多。
先看下我们可以设定属性的不同符号来调整:
———————IE6—— IE7——IE8——IE9---FF—— Opera9.5
>property—— Y—— Y—— N—— N ----N—— N
.property—— Y—— Y—— N—— N --- N—— N
*property—— Y—— Y—— N——N ---N—— N
_property—— Y—— N—— N—— N ---N—— N
由此看见都是IE在作怪,那么IE中最令人头疼的要数IE6吧,首先IE6不支持!important,_property也只有IE6支持。
1、先看个简单的执行顺序:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>css test</title>
<style type="text/css">
.test{
color:green;
color:red;
}
</style>
</head>
<body>
<p id="a" class="test">color test</p>
</body>
</html>
我在各个浏览器测试下都支持顺序覆盖原则。
2、来看下,设置!important,就能看出IE6与其他浏览器的其别了。
<style type="text/css">
.test{
color:green !important;
color:red;
}
</style>
上面说过了,IE6不支持优先级,所以red会覆盖green。所以只有在IE6文字的颜色是红的,其他都是绿色的。
3、然后呢,我有做了简单的修改:
<style type="text/css">
.test{
color:red !important;
.color:blue !important;
}
</style>
根据顺序规则和最前面的支持情况,在IE6、IE7文字的显示颜色应该是蓝色的,其他浏览器显示红色。
不是的。我也做了这样的测试:
<style type="text/css">
.test{
color:red !important;
color:blue !important;
}
</style>
结果是都显示蓝色(当然排除IE6)
4、做个跟3有点一样的测试
<style type="text/css">
.test{
color:red ;
.color:blue ;
}
</style>
理论上(我是根据最上面的原则),IE6、IE7显示blue、其他显示red,符合测试。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南