HTML/CSS IE6、7兼容性问题、bug总汇

IE6,7下li、img的间隙———————————————————

在IE6,7下li本身没浮动,但是li内容有浮动的时候,li下边就会产生几px的间隙

解决办法: 
    1.给li加浮动,给其父级清浮动
    2.给li加vertical-align:top;
当IE6下最小高度问题,和 li的间隙问题共存的时候 给li加浮动

img元素在本身没有浮动也没有宽高的时候,会距离父级底部有几px间隙

解决办法: 
    1.给img加浮动,给其父级清浮动
    2.给img加vertical-align:top;

IE6 7最小高度问题————————————————————–

IE6 7 下,元素最小高度为19px;
解决办法:设置 overflow:hidden

IE6下input输入框背景移动问题—————————————————

给输入框设置背景,在标准下背景不会随着输入内容改变
IE6下,当输入内容长度超过输入框,输入内容自动左移时,
输入框的背景会随着输入内容左移。

解决办法:
给input加个父级,把本该给input设置的背景设置给父级

IE6下1px dotted不识别问题——————————————————

解决办法:切背景平铺

在IE6下的文字溢出BUG———————————————————–

子元素的宽度和父级的宽度相差小于3px的时候,两个浮动元素中间有注释或者内嵌元素,子元素中的文本文字会溢出

解决办法:用div把注释或者内嵌元素用div包起来   

IE6 下奇数宽高问题————————————————————

在 IE6 下定位元素的父级宽高都为奇数,
那么在 IE6 下定位元素的 right 和 bottom 都有1像素的偏差。

解决办法: 尽量用偶数做宽高

IE6,7下表单控件问题————————————————————

在IE6,7下输入类型的表单控件上下各有1px的间隙

解决办法:给input加浮动

在IE6,7下输入类型的表单控件加border:none;不起效果

解决办法: 重置input的背景

在IE6,7下输入类型的表单控件输入文字的时候,背景图片会跟着一块移动

解决办法: 把背景加给父级

IE6 PNG问题——————————————————————–

IE6下PNG背景不能透明。

解决办法,用JS组件处理,组件需要自行下载
下载地址http://www.jb51.net/jiaoben/33338.html
    <!--[if IE 6]>
    <script src="DD_belatedPNG_0.0.8a.js"></script>
    <script>
    DD_belatedPNG.fix('.box');
    /*方法里面填写要起作用的元素*/
    </script>
    <![endif]-->

IE6下important问题————————————————————

在IE6下 在important 后再在加一条同样的样式,会破坏掉important的作用,
会按照默认的优先级顺序来走

IE CSSHACK————————————————————————

css hack:
\9 IE10之前的IE浏览器解析
+,* IE7包括IE7之前的IE浏览器解析
_IE6包括IE6之前的IE浏览器   

【外边距篇】
上下外边距叠压问题—————————————————-

   例如一上一下两个div,上div设置margin-bottom:10px,
   下div设置margin-top:10px,结果只会让两个margin叠压在一起,
   而不会相加为20px

   解决办法:把其中一个margin换成padding

margin传递问题———————————————————-

    IE6,7下父子级包含的时候子级的margin-top会传递给父级;
    子级的margin-top会消失

   在IE6下父级有边框的时候,子元素的margin值消失

   解决办法:触发父级的haslayout (zoom:1)

IE6下最后一个子元素margin消失问题—————————————–

当一行子元素占有的宽度之和和父级的宽度相差超过3px,
或者有不满行状态的时候,最后一个子元素的下margin在IE6下就会失效

IE6下的双边距BUG—————————————————————

在IE6下,块元素有浮动和横向margin的时候,横向的margin值会被放大成两倍
解决办法: display:inline;

【浮动与定位篇】

IE6下内容撑开设置宽高———————————————————-

在IE6下,内容会撑开设置好的宽高   
例如,给固定宽度的wrap_div下放left_div、right_div两个div并浮动,
wrap_div的宽度正好放下两个内部div(两个内部div也设置了宽度)。

在IE6下,如果left_div或right_div内部内容宽度大于div本身宽度,
内容就会撑开宽度让wrap_div容不下,就会发生折行。

解决办法: 给内容计算好宽高,不要溢出

IE6下子元素浮动问题———————————————————

在IE6下,父级下的两个子元素(块元素、未设置宽高)都浮动,
如果两个子元素内部有块元素时,两个子元素不会内容撑开宽高,而会
占满整行。

解决办法:在IE6下父级下子元素浮动,如果子元素宽度需要内容撑开,
就给子元素里面的块元素都加浮动

IE6,7下3像素BUG—————————————————————

父级下两个div,左div设置左浮动width:100px,右div设置margin-left:100px
标准浏览器下左div和右div会相连。IE6,7下两者之间会有3px的间距。

解决办法:在IE6,7下元素要通过浮动并在同一行,就给这行元素都加浮动

IE6下绝对定位元素消失———————————————————

当浮动元素和绝对定位元素是并列关系的时候,在IE6下绝对定位元素会消失

解决办法:
给定位元素外面包个div

在IE6,7下父级的overflow包不住相对定位子元素———————————-

在IE6,7下,子元素有相对定位的话,父级的overflow包不住子元素

解决办法: 给父级也加相对定位

IE6,7 下不支持fixed————————————————————

position:fixed在IE6下失效

解决办法:
1.  
_position:absolute;
        _top:expression(eval(document.documentElement.scrollTop+100));
2.用JS代替这个效果
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
1 不同浏览器对浮动float和相邻不浮动对象的解析不同 IE会让相邻的也浮动起来,Chrome 和FF不会,他们的float对象不再占据空间,所以显示效果也不同。 Chrome 下 IE <style> body{ padding:0; margin:0;} #yi{ background:#0033FF; height:298px; width:298px; padding:1px; } #er{ background:#FF0000; width:30px; height:30px; float:left; } #er2{ background:#00FF00; width:30px; height:30px; float:left; } #san{ background:#00FFFF; width:230px; height:90px; border:1px #00FFFF solid;} </style> </head> <body> <div id="yi"> <div id="er"></div> <div id="er2"></div> <div id="san"></div> </div> </body> </html> --------------------------------------------------------------------------------------------- 1.关于background的背景图片 的 fixed固定定位 Firefox是支持background:fixed;定位的,IE6只能说是半支持,好吧,这么说吧,可能不太严谨,就是背景图片固定的效果似乎只在根结点起作用。举个很简单的例子: 先看这段css代码: body{background:url(../image/404.png) no-repeat fixed center center;} div{height:2000px;} HTML部分为: <body><div></div></body> 其结果是无论IE6还是火狐浏览器下,背景图片都是固定的死死的,不错。但是,一旦html标签带着background属性参合进来,事情就要发生转变了。问题代码: html{background:white;} body{background:url(../image/404.png) no-repeat fixed center center;} div{height:2000px;} 结果IE6下,背景不固定了,只看到背景图片随着滚动条上下移动而移动。演示页面 要解决这个问题呢,也是有办法的,就是将fixed属性转移到html标签上就可以了。即: html{background:white url(../image/404.png) no-repeat fixed center center;} div{height:2000px;} 就可以了。 2.关于height:100%; 要想高度百分比起作用,一般来说,要满足两个条件:其一,父标签有高度可寻,就是向上遍历父标签要找到一个定值高度(body,html另外讨论),如果中途有个height为auto或是没有设置height属性,则高度百分比不起作用;其二,标签本身的属性,如果inline属性的标签

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值