[技巧] IE6中常见的CSS bug集合以及解决方案

IE6双倍边距bug当页面内有多个连续浮动时,如本页的图标列表是采用左浮动,此时设置li的左侧margin值时,在最左侧呈现双倍状况。如外边距设置为10px, 而左侧则呈现出20px,解决它的方法是在浮动元素上加上display:inline;的样式,这样就可避免双倍边距bug。3像素问题及解决办法当使用float浮动容器后,在IE6下会产生3px的空隙,有意思的是右侧容器没设置高度时3px在右侧容器内部,当设定高度后又跑到容器的左侧了,因此对布局精度要求高的话,请参考例2九、31的解决方法。当子元素浮动且未知高度时,怎么使父容器适应子元素的高度?这种状况可在父窗口加上 overflow:auto;zoom:1;这两个样式属性,overflow:auto;是让父容器来自适应内部容器的高度,zoom:1;是为了兼容 IE6而使用的CSS HACK。zoom:1;通不过W3C的验证,这也是遗憾的一点,幸亏IE支持<!--[if IE]>这种写法,能够专门针对IE来写单独的样式,因此能够把这个属性写在页面内的<!--[if IE]>中,这样应该能够经过验证了。超连接访问事后hover样式就不出现的问题被点击访问过的超连接样式不在具备hover和active了,不少人应该都遇到过这个问题,解决方法是改变CSS属性的排列顺序: L-V-H-Aa:link {color: #1f3a87; text-decoration:none;}a:visited {color: #83006f;text-decoration:none;}a:hover {color: #bc2931; text-decoration:underline;}a:active {color: #bc2931;}IE6下这两个层中间怎么有间隙这个IE的3PX BUG也是常常出现的,解决的办法是给.right也一样浮动 float:left 或者相对IE6定义.left margin-right:-3px;IE6文字溢出BUG说明:注释形成文字溢出是IE的BUG。一个空格引起CSS失效这段代码对<p>的首字符样式定义在IE6上看是没有效果的(IE7没测试),而在p:first-letter和{font- size:300%}加上空格,也就是p:first-letter {font-size:300%}后,显示就正常了。可是一样的代码,在FireFox下看是正常的。按道理说,p:first- letter{font-size:300%}的写法是没错的。那么问题出在哪里呢?答案是伪类中的连字符"-"。IE有个BUG,在处理伪类时,若是伪 类的名称中带有连字符"-",伪类名称后面就得跟一个空格,否则样式的定义就无效。而在FF中,加不加空格均可以正常处理。IE6中奇数宽高的BUGIE6还有奇数宽高的bug,解决方案就是将外部相对定位的div宽度改为偶数。IE6下为何图片下方有空隙产生解决这个BUG的方法也有不少,能够是改变html的排版,或者定义img 为display:block或者定义vertical-align属性值为vertical-align:top | bottom |middle |text-bottom还能够设置父容器的字体大小为零,font-size:0ie6下空标签高度问题一个空div若是高度设置为0到19px,IE6下高度默认始终19PX。例如:.c{background-color:#f00;height:0px;/*给定任何小于20px的高度 */}<div class="c"></div>若是不让它默认为19PX。而是0PX的话解决方法有3种:1.css里面加上overflow:hidden;2.div里面加上注释, <div class="c"><!– –></div>3.css里面加上line-height:0;而后div里面加上#nbsp;,<div class="c">&nbsp;</div>(#换成&)修正重复文字bug复杂的布局能够触发在浮动元素的最后一些字符可能出如今出如今清除元素下面的bug。这里有几个解决方法,有些是完美的,可是作一些反复试验也是必须的:确保全部的元素使用”display:inline;”在最后一个元素上使用一个”margin-right:-3px;”# 为浮动元素的最后一个条目使用一个条件注释,好比:<!–[if !IE]>Put your commentary in here…<![endif]–>在容器的最后元素使用一个空的div(它也有必要设置宽度为90%或相似宽度。)
相关文章
相关标签/搜索