:Div+CSS规则整理之七-浏览器的兼容性问题

来源:百度文库 编辑:九乡新闻网 时间:2024/04/30 13:47:34

二十三、    使用float属性的元素要注意的问题


1.      利用border属性确定出错元素的布局特性
  使用float属性布局一不小心就会出错。这时为元素添加border属性确定元素边界,错误原因即水落石出。

2.      float元素的父元素不能指定clear属性
  MacIE下如果对float的元素的父元素使用clear属性,周围的float元素布局就会混乱。这是MacIE的著名的bug,倘若不知道就会走弯路。

3.      float元素务必指定width属性
  很多浏览器在显示未指定width的float元素时会有bug。所以不管float元素的内容如何,一定要为其指定width属性。
  另外指定元素时尽量使用em而不是px做单位。

4.      float元素不能指定margin和padding等属性
  IE在显示指定了margin和padding的float元素时有bug。因此不要对float元素指定margin和padding属性(可以在float元素内部嵌套一个div来设置margin和padding)。也可以使用hack方法为IE指定特别的值。

5.      float元素的宽度之和要小于100%
如果float元素的宽度之和正好是100%,某些古老的浏览器将不能正常显示。因此请保证宽度之和小于99%。

二十四、   浏览器的兼容性问题(针对FF/IE6/IE7)

 

1.CSS hack:区分IE6,IE7,firefox

 

 区别FF,IE7,IE6:
background:green !important;  background:orange;  *background:blue;

IE6能识别*,但不能识别 !important,


IE7能识别*,也能识别!important;

FF不能识别*,但能识别!important;

另外再补充一个,下划线”_“,IE6支持下划线,IE7和firefox均不支持下划线。

于是大家还可以这样来区分firefox,IE7,IE6
background:green!important; *background:orange;  _background:blue;


注:不管是什么方法,书写的顺序都是firefox的写在前面,IE7的写在中间,IE6的写在最后面。

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

Html代码
  1. div{ margin:30px!important; margin:28px; }   

 

 

注意这两个margin的顺序一定不能写反,!important这个属性IE不能识别,但别的浏览器可以识别。所以在IE下其实解释成这样:div{maring:30px;margin:28px}重复定义的话按照最后一个来执行,所以不可以只写margin:XXpx!important;

3.条件性注释来选择不同的浏览器(比CSS hack简洁)

 

 

Html代码
  1. >  
  2.  rel=”stylesheet” type=”text/css” href=”ie6.css” mce_href=”ie6.css”>    
  3. >   

 
4.区分IE8

 

Html代码
  1. .color{ background-color: #CC00FF; /*所有浏览器都会显示为紫色*/    
  2.   
  3. background-color: #FF0000\9; /*IE6、IE7、IE8会显示红色*/   
  4.   
  5.  *background-color: #0066FF; /*IE6、IE7会变为蓝色*/   
  6.   
  7.  _background-color: #009933; /*IE6会变为绿色*/