关于CSS对各个浏览器兼容已经是老生常谈的问题了, 网络上的教程遍地都是.以下内容没有太多新颖, 纯属个人总结, 希望能对初学者有一定的帮助.一、CSS HACK以下两种方法几乎能解决现今所有HACK.1, !important随着IE7对!important的支持, !important 方法现在只针对IE6的HACK.(注意写法.记得该声明位置需要提前.)2, IE6/IE77对FireFox*+html 与 *html 是IE特有的标签, firefox 暂不支持.而*+html 又为 IE7特有标签.注意:*+html 对IE7的HACK 必须保证HTML顶部有如下声明:http://www.w3.org/TR/html4/loose.dtd"></A>二、万能 float 闭合(非常重要!)关于 clear float 的原理可参见 [How To Clear Floats Without Structural Markup]将以下代码加入Global CSS 中,给需要闭合的div加上 class="clearfix" 即可,屡试不爽.三、其他兼容技巧(再次啰嗦)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专用的条件注释<!--其他浏览器 --<link rel=stylesheet type=text/css href=css.css /<!--[if IE 7]<!-- 适合于IE7 --<link rel=stylesheet type=text/css href=ie7.css /<![endif]--<!--[if lte IE 6]<!-- 适合于IE6及一下 --只能遇到兼容问题具体解决,有经验积累和学习,然后知道那些css会出现兼容问题,尽量避免,然后就是使用CSS hack,每个浏览器都有自己的专有hack,比如说ie6的hack,意思就是这段css写法,只有在ie6会执行,其他浏览不会执行,这样就能针对不同浏览器写不同的css,达到兼容。
你可以百度下CSS hack,介绍的内容非常多。
一些hack:
#test{
color:red/* 所有浏览器都支持 */
color:red !important/* Firefox、IE7支持 */
_color:red/* IE6支持 */
*color:red/* IE6、IE7支持 */
*+color:red/* IE7支持 */
color:red\9/* IE6、IE7、IE8支持 */
color:red\0/* IE8支持 */
}
body:nth-of-type(1) p{color:red} /* Chrome、Safari支持 */
*+html .list1 li{line-height:18px} //IE7hack
/* Firefox 1 - 2 */
body:empty #firefox12
{display: block}
/* Firefox */
@-moz-document url-prefix()
{#firefox { display: block}}
/* Webkit-Safari-Chrome */
@media screen and (-webkit-min-device-pixel-ratio:0){
color:red
}
/* Opera */
@media all and (-webkit-min-device-pixel-ratio:10000), not all and (-webkit-min-device-pixel-ratio:0)
{head~body #opera { display: block}}
不过,具体的还需要你自己尝试然后收获。