IE6下的CSS BUG枚举(2)

时间:2010-06-11 10:45:00 

12、清除浮动

如果你想用div(或其他容器)包裹一个浮动的元素,你会发现必须给div(容器)定义明确的height、width、overflow之中一个属性(除了auto值)才能将浮动元素严实地包裹。

#container {border:1px solid #333; overflow:auto; height:100%;}
#floated1 {float:left; height:300px; width:200px; background:#00F;}
#floated2 {float:right; height:400px; width:200px; background:#F0F;}
更多:http://www.twinsenliang.net/skill/20090413.html

13、浮动层错位

当内容超出外包容器定义的宽度时,在IE6中容器会忽视定义的width值,宽度会错误地随内容宽度增长而增长。

浮动层错位问题在IE6下没有真正让人满意的解决方法,虽然可以使用overflow:hidden;或overflow:scroll;来修正, 但hidden容易导致其他一些问题,scroll会破坏设计;JavaScript也没法很好地解决这个问题。所以建议是一定要在布局上避免这个问题发 生,使用一个固定的布局或者控制好内容的宽度(给内层加width)。

14、 * bug

在IE6和IE7下, * bug是一个非常恼人的问题。一个撑破了容器的浮动元素,如果在他之后有不浮动的内容,并且有一些定义了:hover的链接,当鼠标移到那些链接上时,在IE6下就会触发 * 。

解决方法很简单:
1.在(那个未浮动的)内容之后添加一个<span style="clear: both;"> </span>
2.触发包含了这些链接的容器的hasLayout,一个简单的方法就是给其定义height:1%;

15、绝对定位元素的1像素间距bug

IE6下的这个错误是由于进位处理误差造成(IE7已修复),当绝对定位元素的父元素高或宽为奇数时,bottom和right会产生错误。唯一的解决办法就是给父元素定义明确的高宽值,但对于液态布局没有完美的解决方法。

16、3像素间距bug

在IE6中,当文本(或无浮动元素)跟在一个浮动的元素之后,文本和这个浮动元素之间会多出3像素的间隔。
给浮动层添加 display:inline 和 -3px 负值margin
给中间的内容层定义 margin-right 以纠正-3px

17、IE下z-index的bug

在IE浏览器中,定位元素的z-index层级是相对于各自的父级容器,所以会导致z-index出现错误的表现。解决方法是给其父级元素定义z-index,有些情况下还需要定义position:relative。

18、Overflow Bug

在IE6/7中,overflow无法正确的隐藏有相对定位position:relative;的子元素。解决方法就是给外包容器.wrap加上position:relative;。

19、横向列表宽度bug

如果你使用float:left;把<li>横向摆列,并且<li>内包含的<a>(或其他)触发了 hasLayout,在IE6下就会有错误的表现。解决方法很简单,只需要给<a>定义同样的float:left;即可。

20、列表阶梯bug

列表阶梯bug通常会在给<li>的子元素<a>使用float:left;时触发,我们本意是要做一个横向的列表(通常 是导航栏),但IE却可能呈现出垂直的或者阶梯状。解决办法就是给<li>定义float:left;而非子元素<a>,或者 给<li>定义display:inline;也可以解决。

21、垂直列表间隙bug

当我们使用<li> 包含一个块级子元素时,IE6(IE7也有可能)会错误地给每条列表元素(<li>)之间添加空隙。

解决方法:把<a>flaot并且清除float来解决这个问题;另外一个办法就是触发<a>的hasLayout(如定 义高宽、使用zoom:1;);也可以给<li> 定义display:inline;来解决此问题;另外还有一个极有趣的方法,给包含的文本末尾添加一个空格。

22、IE6中的:hover

在IE6中,除了(需要有href属性)才能触发:hover行为,这妨碍了我们实现许多鼠标触碰效果,但还是有一些法子是可以解决它的。最好是不要用:hover来实现重要的功能,仅仅只用它来强化效果。

23、IE6调整窗口大小的 Bug

当把body居中放置,改变IE浏览器大小的时候,任何在body里面的相对定位元素都会固定不动了。解决办法:给body定义position:relative;就行了。

24、文本重复Bug

在IE6中,一些隐藏的元素(如注释、display:none;的元素)被包含在一个浮动元素里,就有可能引发文本重复bug。解决办法:给浮动元素添加display:inline;。

 

标签:IE6,CSS,bug
0
投稿

猜你喜欢

  • python 并发下载器实现方法示例

    2022-03-31 10:46:00
  • Mysql InnoDB引擎中页目录和槽的查找过程

    2024-01-14 09:32:28
  • 详解Python的lambda函数用法

    2023-09-22 11:33:19
  • 解决Python安装时报缺少DLL问题【两种解决方法】

    2023-12-27 01:49:12
  • Python表达式的优先级详解

    2021-09-21 14:24:59
  • Django框架实现分页显示内容的方法详解

    2023-05-31 17:06:38
  • python3.6数独问题的解决

    2022-06-21 20:40:32
  • python调用cmd复制文件代码分享

    2022-12-26 11:18:22
  • sqlserver对字段的添加修改删除、以及字段的说明

    2024-01-25 23:43:41
  • 详解GaussDB for MySQL性能优化

    2024-01-25 15:10:18
  • Python实现二分法查找及优化的示例详解

    2023-10-12 14:20:44
  • pycharm 使用anaconda为默认环境的操作

    2023-10-08 12:37:25
  • 基于Golang实现Redis协议解析器

    2024-04-27 15:37:41
  • TensorFlow变量管理详解

    2023-11-23 07:11:18
  • python3使用QQ邮箱发送邮件

    2023-09-05 05:16:15
  • 基于Python Numpy的数组array和矩阵matrix详解

    2022-04-22 10:52:28
  • 探究数组排序提升Python程序的循环的运行效率的原因

    2021-07-16 21:35:06
  • Js-$.extend扩展方法使方法参数更灵活

    2024-05-02 16:16:21
  • 详解vue页面首次加载缓慢原因及解决方案

    2024-05-25 15:19:45
  • electron-vue利用webpack打包实现多页面的入口文件问题

    2024-05-13 10:39:51
  • asp之家 网络编程 m.aspxhome.com