css hack总结

1.IE条件注释法
<!-- [if IE]>
<link type="text/css" href="test.css" rel="stylesheet"/>
<![endid]-->
注意if和endif中横线位置不同
版本选择:gt/lt/gte/lte/!,如 <!--[if IE gt 6]>
 
2.选择符前缀法
*html-IE 6
*+html-IE 7
 
3.样式属性前缀
_height-IE 6
*height-IE 6 & IE 7
注意和上面第2区别
 
4.css 伪类的顺序
link/visited/hover/active
”love hate原则“
 
5.hasLayout
IE浏览器的一个专有属性,用于css的解释引擎,在IE下的一些css bug都可以通过手动设置hasLayout来解决,通常用zoom:1;来触发hasLayout。
zoom的真正用法: 
zoom : normal | number 
normal :  默认值。使用对象的实际尺寸 
number :  百分数 | 无符号浮点实数。浮点实数值为1.0或百分数为100%时相当于此属性的 normal 值用白话讲解就是zoom:后面的数字即放大的倍数,可以是数值,也可以是百分比。如:zoom:1
 
6.块级元素和行内元素
行内元素的水平方向margin和padding有效,竖直方向的margin和padding无效
IE6和IE7下的inline-block效果要靠触发hasLayout来实现
 
7.relative、absolute和float
  • relative、absolute都可以激活top、bottom、left、right、z-index属性(z-index大于0)
  • 默认元素都在z-index:0;的层上(在DOM中)
  • float设置之后元素还是在z-index:0层上,浮动指的是向左浮和向右浮,不是向上浮
  • relative还会在z-index:0层上保留一个占位,absolute不会
  • absolute和float都会隐式地改变元素的display属性,不论之前是什么类型,只要不是display:none,都会变成inline-block
  • IE6下float双边距通过设置display:inline来解决
8.居中
水平居中通过text-align:center和margin-left:auto、maring-right:auto;来实现
竖直居中通过设置父元素的上下padding
竖直单行文本居中设置line-height和父级元素的高度相同
竖直多行文本可以加个table,利用td中的vertical-align属性居中
 
9.z-index属性
负边距不会改变z-index
z-index会影响点击事件
flash放到页面上总是会浮在其他元素上面(wmode=window),解决方法是设置wmode=apaque或者wmode=transparent
select 元素在IE6中也是window模式显示的,解决方法是使用一个同样大小的iframe放在要显示的div下面
 
10.png图片
IE6对png图片的支持不好,需要用到css滤镜
progid:DXImageTransform.Microsoft.AlphaImageLoader(src='png图片路径',sizingMethod='crop')    //尼玛真不是一般的长= =
 
 
 
posted @ 2013-04-29 16:39  mrlaker  阅读(209)  评论(0编辑  收藏  举报