前言
最近在MOOC上学习Busy老师的电商网页项目,巩固了很多关于HTML+div+CSS知识,也踩了很多很多坑。。。有时候一卡几个小时都解决不了。。其中IE6的兼容问题,以及IE8的兼容很是恼人。这里把这几天遇到的兼容问题以及解决方法总结一下。
兼容问题
双边距
根据我的调查。双边距是最基本的一个兼容性问题了。在IE6下,如果DIV设置了浮动,再为它添加边距的话,那么边距会变成原来的2倍。
解决办法非常的简单,我们只需要在DIV的CSS样式中加上display:inline就能够将边距矫正过来。
背景图片不显示
在给DIV添加background的时候,图片看不到了。这个问题很简单,但是也特别容易忽视。我们在添加url()后制定图片位置式,url()与后面的内容之间也必须加一个空格!!!
内嵌元素中的图片不显示
这个问题。。我们在添加小的图表的时候会给DIV的后面添加一个i标签或span标签,之后在标签里放上所需要的图片。但是图片在IE6会发生无法居中,错位的问题。
目前我找到的解决方法是,给父级添加相对定位position:relative,给子标签添加绝对定位position:absolute。然后通过设置left,top,bottom,right来对图片进行定位。(设定高度为100%,后即可垂直居中!)这样,在IE6中就能够居中显示了~1
input框无法垂直居中
在IE8和IE6中,Input中的文字无法居显示。
这个问题的解决方法,只需要设置input的CSS属性的line-height即可,高度当然是DIV高度啦!!但是!!需要这样,line-height: 30px\9,利用HACK来设置这个高度!!
当然也有另外一种解决方法,直接加上padding-top即可!~
DIV错位问题
在IE6中我们若设置一排要换行的DIV时,第二排有时候会不从排头开始排列,第一排的前面的DIV的高度会莫名其妙高了1PX。导致换行错位!
解决方法是,给这些DIV设置统一的高度!!不要自适应!
DIV掉落问题
父级设置了宽度后,子集的DIV宽度过大后,会被挤错到下一行!IE6的宽度需要比实际的设置的小一些,比如一行有四个相同宽度的DIV,我们在IE6下应该设置 *width=24.9%这样DIV就不会因为宽度原因而换行了!
min-height!
我们都知道IE6里面是没有min-height属性的!但是IE6的DIV的高度是有弹性的自适应的,所以我们只需要在设置min-height时,加一个HACK,heigth:300px指定仅IE6即可!
(PS:(HACK!!)
:ie6,ie7
+:ie7
:ie6
\0:ie8
\9:ie6以上
结语
兼容问题实际上有非常多,在这里仅仅列举的几个~之后会将所有的兼容问题总结在这里~!