Css浏览器兼容的解决方法

一、网页背景半透明
网页背景半透明

代码如下:

opacity:0.8;
filter:"progid:DXImageTransform.Microsoft.Alpha(opacity=80)";IE6中CSS方法解决PNG图片半透明问题:
#DIVname {
      width: 300px;
      height: 99px;
      background: url('images/top.png') no-repeat top;
      *background: none;
      *filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled='true', sizingMethod='corp', src='template/flower/images/top.png');
}
 

二、清除浮动
代码如下:

.clearfix:after{content:"."; display:block; height:0; clear:both; visibility:hidden}
.clearfix{display:inline-block}
.clear{height:0; line-height:0; font-size:0; overflow:hidden; clear:both; display:block;}
*html .clearfix{height:1%;}
.clearfix{display:block;}

三、浮动IE6双边距
1、为浮动元素使用display:inline;
2、IE6下3px间距bug:在IE6中,当文本(或无浮动元素)跟在一个浮动的元素之后,文本和这个浮动元素之间会多出3px的间隔,给浮动层添加display:inline或设计-3px的间距来解决这个bug。
3像素间距bug
div+css中最小高度min-height
方法一:
代码如下:

#DIVname {
      min-height:150px;
      *height:auto!important;
      _height:150px;
       overflow:visible;
}

方法二:
代码如下:

#DIVname {
      min-height:1000px;
      _height:expression((document.documentElement.clientHeight||document.body.clientHeight)>1000?"1000px":"");
}

五、IE下z-index 的 bug
一般来讲,ie对父级的要求比较高,如果父级有position属性,但是没有给z-index属性,那默认都是0,所以不论子集里面有多高的z-index属性,都是没用的。
所以一般情况下,需要给包含z-index属性的父级一个z-index:1的属性,这样可以解决很多莫名其妙的问题。
六、IE6调整窗口大小的bug
当把body居中放置,改变IE浏览器大小的时候,任何在body里面的相对定位元素就会固定不动了,解决方法是给body定义position:relative;就行了。
七、文字大小和行高不兼容
同样大小的相同字体,各浏览器下行高和大小不一样,需要设定line-height。
八、mirror margin bug
在IE6下,当外层元素内有float元素时,外层元素如定义margin-top:5px,将自动 生成margin-bottom:5px,padding也会出现类似问题,解决方案:外层元素设定border或float。
九、img下的留白
在html里面有:
<div>
<img src=”" mce_src=”" />
</div><img …/>时,会发现图片底部不是紧贴着容器底部的,是img后面的空白字符造成,要消除必须这样写:
<div>
<img src=”" mce_src=”" /></div>后面两个标签要紧挨着。IE7下这个bug依然存在,解决方案:display:block。
十、图片和文字同行
大家知道img 的align 有 text-top,middle,absmiddle啊什么的,你可以尝试去调整img 和文字让他们在ie和ff下能一致,你会发现怎么调都不会让你满意。索性让img 和文字都 float起来,用margin 调整。
失去line-height。<div style=”line-height:20px”><img />文字</div>,很遗憾,在ie6下单行文字 line-height 效果消失了。。。,原因是<img />这个inline-block元素和inline元素写在一起了。解决方案:让img 和文字都 float起来。



CSS 兼容要点: 
1、 DOCTYPE 影响CSS 处理 。
2 、FF: div 设置 margin-left, margin-right 为 auto 时已经居中, IE 不行。 
3 、FF: body 设置text-align 时, div 需要设置margin: auto(主要是 margin-left,margin-right) 方可居中。 
4 、FF: 设置padding 后, div 会增加 height 和 width, 但 IE 不会, 故需要用 !important 多设一个 height 和 width。 
5 、FF: 支持 !important, IE 则忽略, 可用 !important 为 FF 特别设置样式。 
6 、div 的垂直居中问题: vertical-align:middle; 将行距增加到和整个DIV一样高 line-height:200px; 然后插入文字,就垂直居中了。缺点是要控制内容不要换行。 
7 、cursor: pointer 可以同时在 IE FF 中显示游标手指状, hand 仅 IE 可以。
8 、FF: 链接加边框和背景色,需设置 display: block, 同时设置 float: left 保证不换行。参照 menubar, 给 a 和 menubar 设置高度是为了避免底边显示错位, 若不设 height, 可以在 menubar 中插入一个空格。

XHTML+CSS兼容性解决方案小集 
       使用XHTML+CSS构架好处不少,但也确实存在一些问题,不论是因为使用不熟练还是思路不清晰,我就先把一些我遇到的问题写在下面,省的大家四处找^^ 

1.在mozilla firefox和IE中的BOX模型解释不一致导致相差2px解决方法:  

代码如下:

div{margin:30px!important;margin:28px;}  

       注意这两个margin的顺序一定不能写反,据阿捷的说法!important这个属性IE不能识别,但别的浏览器可以识别。所以在IE下其实解释成这样: 
代码如下:

div{maring:30px;margin:28px}  

重复定义的话按照最后一个来执行,所以不可以只写margin:XXpx!important; 

2.IE5 和IE6的BOX解释不一致IE5下div{width:300px;margin:0 10px 0 10px;}div的宽度会被解释为300px-10px(右填充)-10px(左填充)最终div的宽度为280px,而在IE6和其他浏览器上宽度则是以300px+10px(右填充)+10px(左填充)=320px来计算的。这时我们可以做如下修改:
div{width:300px!important;width /**/:340px;margin:0 10px 0 10px} 
      关于这个/**/是什么我也不太明白,只知道IE5和firefox都支持但IE6不支持,如果有人理解的话,请告诉我一声,谢了!:) 

3.ul标签在Mozilla中默认是有padding值的,而在IE中只有margin有值所以先定义 :
代码如下:
ul{margin:0;padding:0;}  

就能解决大部分问题。 

4.关于脚本,在xhtml1.1中不支持language属性,只需要把代码改为 
<script type="text/javascript" / > 
就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值