易截截图软件、单文件、免安装、纯绿色、仅160KB

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 用法

CSS filter:RevealTrans 用法:
Filter:revealtrans(duration=转换的秒数,transition=转换的类型)
CSS的RevealTrans动态滤镜是一个神奇的滤镜,它能产生23种动态效果,更为奇妙的是它还能在23种动态效果中随机抽用其中的一种。
  两个参数Transition和Duration,分别是变换效果和持续时间,其中Duration是浮点数。
......

CSS解决DIV垂直居中的问题

在说到这个问题的时候,也许有人会问CSS中不是有vertical-align属性来设置垂直居中的吗?即使是某些浏览器不支持我只需做少许的CSS Hack技术就可以啊!所以在这里我还要啰嗦两句,CSS中的确是有vertical-align属性,但是它只对(X)HTML元素中拥有valign特性的元素才生效,例如表格元素中的<td>、<th>、<caption> ......

css导航菜单(包含横向子菜单)

强烈推荐一款CSS导航菜单,用到政府学校类网站上超级不错。
有点类似站长网菜单的味道,只不过颜色不一样而已,这种菜单还不是真正意义上的“下拉”菜单,应该叫滑出菜单<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transition ......

Zen Coding: 一种快速编写HTML/CSS代码的方法


Zen Coding: 一种快速编写HTML/CSS代码的方法
来源:http://www.javaeye.com/news/13149
译自:Smashing Magazine
中文:Zen Coding: 一种快速编写HTML/CSS代码的方法
在本文中我们将展示一种新的使用仿CSS选择器的语法来快速开发HTML和CSS的方法。它由Sergey Chikuyonok开发。
你在写HTML代码(包括所有标签、属性、 ......

用css让图片自动适应大小

图片自动适应大小的问题在平时制作的时候是比较常见的问题,下面提供一个比较简单的解决方法:
div img {
max-width:600px;
//IE7、FF等其他非IE浏览器下最大宽度为600px;
width:600px;
//所有浏览器中图片的大小为600px;
width:expression(document.body.clientWidth>600?"600px":"auto");
//当图片大小大于6 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号