0

CSS Hack 汇总快查

各个浏览器兼容写法:

1
2
3
4
5
6
7
8
9
10
select {
    color:blue; /* 所有浏览器*/
    color:orange\9; /* 所有IE */
    color:#fff\0; /* IE8 */
   *color:yellow; /* IE7及以下版本 */
   #color:red; /* IE7 */
   *+color:red; /* IE7--必须保证HTML顶部有!DOCTYPE 声明*/
   _color:green; /* IE6 */
}
@media all and (min-width: 0px){select {color:#000;}} /* Opera */。

万能float闭合:

1
2
3
select:after {
    content:"."; display:block; height:0; clear:both; visibility:hidden;
}

在Firefox中,当子级都为浮动时,那么父级的高度就无法完全的包住整个子级,那么这时用这个清除浮动的HACK来对父级做一次定义,那么就可以解决这个问题。

截字省略号:

1
2
3
4
5
6
select {
    overflow:hidden;
    text-overflow:ellipsis; /* IE */
    -o-text-overflow: ellipsis; /* Opera */
    white-space:nowrap; /* 设定內容強制显示一行,直到內容结束或遇到<br>标签 */
}

这个是在溢出长度后会自行的截掉多出部分的文字,并以省略号结尾,只是目前Firefox并不支持。

其他兼容技巧:

1, FF下给 div 设置 padding 后会导致 width 和 height 增加, 但IE不会.(可用!important解决)
2, 居中问题.
1).垂直居中.将 line-height 设置为 当前 div 相同的高度, 再通过 vertical-align: middle.( 注意内容不要换行.)
2).水平居中. margin: 0 auto;(当然不是万能)
3, 若需给 a 标签内内容加上 样式, 需要设置 display: block;(常见于导航标签)
4, FF 和 IE 对 BOX 理解的差异导致相差 2px 的还有设为 float的div在ie下 margin加倍等问题.
5, ul 标签在 FF 下面默认有 list-style 和 padding . 最好事先声明, 以避免不必要的麻烦. (常见于导航标签和内容列表)
6, 作为外部 wrapper 的 div 不要定死高度, 最好还加上 overflow: hidden.以达到高度自适应.
7, 关于手形光标. cursor: pointer. 而hand 只适用于 IE.

IE的if条件Hack:

1
2
3
4
5
6
7
8
9
10
11
12
<!--[if !IE]><!--> 除IE外都可识别 <!--<![endif]-->
<!--[if IE]> 所有的IE可识别 <![endif]-->
<!--[if IE 5.0]> 只有IE5.0可以识别 <![endif]-->
<!--[if IE 5]> 仅IE5.0与IE5.5可以识别 <![endif]-->
<!--[if gt IE 5.0]> IE5.0以及IE5.0以上版本都可以识别 <![endif]-->
<!--[if IE 6]> 仅IE6可识别 <![endif]-->
<!--[if lt IE 6]> IE6以下版本可识别 <![endif]-->
<!--[if gte IE 6]> IE6以及IE6以上版本可识别 <![endif]-->
<!--[if IE 7]> 仅IE7可识别 <![endif]-->
<!--[if lt IE 7]> IE7以下版本可识别 <![endif]-->
<!--[if lte IE 7]> IE7以及IE7以下版本可识别 <![endif]-->
<!--[if gte IE 7]> IE7以及IE7以上版本可识别 <![endif]-->

以上内容可能并不全面,欢迎大家能和我一起把这些技巧都汇总起来,为以后工作的查询提供一个方便,同时在这里感谢那些研究出这些HACK的作者们。

已有 0 用户参与0
0 : 0
+1已打分
分享到:
已有 0 条评论