首页 >web前端 >html教程 >DIV+CSS浏览器兼容研究2_html/css_WEB-ITnose

DIV+CSS浏览器兼容研究2_html/css_WEB-ITnose

WBOY
WBOY原创
2016-06-24 12:31:121071浏览

[转载,存档,备查]

由于浏览器之间存在兼容性问题,在制作网 页的时候,为了使页面能在不同浏览器中显示相对一致;所以总结了几个浏览器之间的Hack和在浏览器兼容问题上的一些相关注意事项。现在浏览器基本需要兼容IE6;IE7;IE8;FF。

第一节 CSS HACK  汇总速查一览

浏览器

Hack(不支持的为红色)

IE6

“*”    “_”    “\9”    “!important”

IE7

“*“    “_”    “\9”    “!important”

IE8

“*“    “_”    “\9”    “!important” 

FF

“*”    “_”    “\9”    “!important”

 

比如:

.main{

         background-color: #CC00FF;                /*所有浏览器都会显示为紫色*/---------ALL

         background-color: #FF0000\9;            /*IE6、IE7、IE8会显示红色*/------------IE8

         *background-color: #0066FF;              /*IE6、IE7会变为蓝色*/-------------------IE7

         _background-color: #009933;             /*IE6会变为绿色*/--------------------------IE6

         background-color: #000000!important;}/*FF会变为黑色*/---------------------------FF

 

第二节 常 见兼容问题整理 2.1 DOCTYPE 影响 CSS 处理

Transitional类型:是指一种过渡 类型,使用这种类型浏览器对XHTML的解析比较宽松,允许使用HTML4.01中的标签,但必须符合XHTML的语法。这种是现在通用的方法,用Dreamweaver创建网页时默认就是这种类型。

Strict类型:严格类型,使用时浏览器将相对严格,不 允许使用任何表现形式的标识和属性,如在元素中直接使用bgcolor背景色属性等。

Frameset类型:框架页类型,如果网页使用了框架结构, 就有必要使用这样的文档声明。

2.2 编码差异导致 IE6 不能正常解析 CSS 文件

网页采用了 UTF-8 编码格式,这本来没有问题,问题是外部 CSS 文件默认是 ANSI 编码,并没有保存为 UTF-8 格式。可能你会发现在一般情况下这样也是没有问题的,然而当 CSS 文件中包含有中文注释时就可能不尽如人意了!估计是 IE6 版本以下的浏览器在解析这个 CSS 文件时因为编码问题而无法正确解析,所以才会发生 CSS 在 IE6 下不起作用的情况。IE6 的人还是不少。因此这个问题需要解决:

方法一:把 CSS、JS 和网页文件都统一保存为 UTF-8 格式。

方法二:去掉 CSS、JS 中的中文注释,或者改为英文。

上文为IE6因为编码问题无法正确解析CSS文件

2.3 FORM 标签在 IE 自动增加 MARGIN 边距

这个标签在IE中,将会自动margin一些边距,而在FF中margin则是0,因此,如果想显示一致,所以最好在CSS中指定margin和 padding,针对上面两个问题,CSS中一般首先都使用这样的样式form{margin:0;padding:0;}

2.4 UL 标签

UL标签在Mozilla中默认是有padding值的,而在IE中只有margin有值;

所以先定义 ul{margin:0;padding:0;}

2.4 MARGIN 加倍的问题

置为float的div在IE下设置的margin会加倍。这是一个ie6都存在的bug。解决方案是在这个div里面加上display:inline;例如:

相应的CSS为

#imfloat{

float:left;

margin:5px;     /*IE下理解为10px*/

display : inline ;    /*IE 下再理解为 5px*/ }
声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn