IE6/IE7/FF的CSS hack 浏览器兼容总结
IE6/IE7/FF的CSS hack 浏览器兼容总结
2010-01-23 15:25
由于不同的浏览器对CSS的支持及解析结果不一样,处理的优先级不一样。针对不同的浏览器来写不同的CSS达到在不同浏览器下显示想要的效果就是css hack。先贴两个直观的对比图:
再贴一段代码:
#bgcolor {
background:red !important; /* Firefox 等其他浏览器 */
background:blue; /* IE6 */
}
*+html #bgcolor {
background:green !important; /* IE7 */
}
IE6 不认 !important, 也不认 *+html. 所以 IE6 只能是 blue.
IE7 认 !important, 也认 *+html, 优先度: (*+html + !important) > !important > +html. IE7 可以是 red, blue 和 green, 但 green 的优先度最高.
Firefox 和其他浏览器都认 !important. !important 优先, Firefox 可以是 red 和 blue, 但 red 优先度高。
下面以一个实际需求进行不同写法的实现:
针对下面的html代码:
<body>
<div><span>Text</span></div>
</body>
写CSS代码,分别在IE6、IE7、FF下显示不同的效果:
简单说明一下:IE6的划线是在下边、IE7是中间、FF是上边。因为IE6兼容性最差(同时下划线_只有ie6支持),IE7标准居中,FF标准最高。
第一种方法:
div{
text-decoration:overline;
*text-decoration:line-through;
_text-decoration:underline;
}
原理是:
简单地说,就是利用下面几点:
1.各个浏览器解析CSS的语法不尽相同
2.CSS语法规则:后面的属性覆盖前面的属性
而这里仅仅是利用了_(IE6的专属)和*(用于IE6和IE7),接下来利用一下!important语法。
第二种方法:
!important语法针对的是“后面的属性覆盖前面的属性”这一语法,也就是说标识了!important的属性,是不被后面的相同属性所覆盖的,而IE6不认识这个,导致其他浏览器很容易根据这点“欺负”IE6:
div{
text-decoration:overline;
*text-decoration:line-through!important;
*text-decoration:underline;
}
原理:
1.FF不认识*,但IE6/IE7认识
2.IE6不认识!imprtant,但IE7认识
注意,顺序不能换,如果改为下面这样:
text-decoration:overline;
*text-decoration:underline;
*text-decoration:line-through !important;
相关文档:
CSS filter:RevealTrans 用法:
Filter:revealtrans(duration=转换的秒数,transition=转换的类型)
CSS的RevealTrans动态滤镜是一个神奇的滤镜,它能产生23种动态效果,更为奇妙的是它还能在23种动态效果中随机抽用其中的一种。
两个参数Transition和Duration,分别是变换效果和持续时间,其中Duration是浮点数。
......
在说到这个问题的时候,也许有人会问CSS中不是有vertical-align属性来设置垂直居中的吗?即使是某些浏览器不支持我只需做少许的CSS Hack技术就可以啊!所以在这里我还要啰嗦两句,CSS中的确是有vertical-align属性,但是它只对(X)HTML元素中拥有valign特性的元素才生效,例如表格元素中的<td>、<th>、<caption> ......
强烈推荐一款CSS导航菜单,用到政府学校类网站上超级不错。
有点类似站长网菜单的味道,只不过颜色不一样而已,这种菜单还不是真正意义上的“下拉”菜单,应该叫滑出菜单<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transition ......
Zen Coding: 一种快速编写HTML/CSS代码的方法
来源:http://www.javaeye.com/news/13149
译自:Smashing Magazine
中文:Zen Coding: 一种快速编写HTML/CSS代码的方法
在本文中我们将展示一种新的使用仿CSS选择器的语法来快速开发HTML和CSS的方法。它由Sergey Chikuyonok开发。
你在写HTML代码(包括所有标签、属性、 ......
图片自动适应大小的问题在平时制作的时候是比较常见的问题,下面提供一个比较简单的解决方法:
div img {
max-width:600px;
//IE7、FF等其他非IE浏览器下最大宽度为600px;
width:600px;
//所有浏览器中图片的大小为600px;
width:expression(document.body.clientWidth>600?"600px":"auto");
//当图片大小大于6 ......