叁柒設計 三七设计 Three seven design 我的学习与分享
详细信息
来自:关键字:

IE6存在的CSS Bug(一)

  December 13th,2008 02:02:19   Category : CSS+DIV
 Click (1672)

IE6存在的CSS Bug总结之一  作者:Charles 日期:2008-01-21

IE6双倍浮动BUG及解决办法
制作页面时常会碰到IE6双倍浮动BUG,以前的方法是用Hack,多写一行代码。如果不用Hack的话,就这样写:
 

引用内容 引用内容
加上display:inline


将对象强制作为内联对象呈递,从对象中删除行。下列代码即演示了ie6中双倍边距问题:
 

HTML代码


[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]


浮动后本来外边距10px,但IE解释为20px,解决办法是加上display:inline;

ie6由注释引起的文字重影的bug
 

HTML代码


[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]


运行上述代码看到什么了?会发现折行多了一个“猪”字,造成这个问题的原因就是上面那有一段<!-- -->注释代码,确实是因为注释的原因,但为什么这样,也没什么道理,只能说是IE6的bug了。在ie7,ie5.5和firefox中都是好的,就是ie6如此。
1.去掉那行注释,或者去掉下面的float中的一个就正常了,这说明:注释造成文字溢出与区块的浮动有关
2.或者将注释放到前面那应用float属性的标签前或后面那个应用float属性的标签后。发现显示也正常了。这说明:注释造成文字溢出与其位置有关。
3.去除<div style="float:right;width:400px">中的“width:400px”,多余的“猪”字消失,页面正常显示。这说明:注释造成文字溢出与文字区块的固定宽度有关(无论是绝对值还是相对值)。
bug升级版:
 

HTML代码


[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]


我们会从上面的规律中得到这样一个公式:溢出文字的字数=注释的条数*2-1,这里的字数在中文或英文数字时都成立。当溢出的文字字数大于文本的字数时,文字区块将会消失。最终解决方法如下:
 

引用内容 引用内容
1、不放置注释。最简单、最快捷的解决方法,嘿嘿……。其实为了符合标准,加注释最好采用这种格式如果是这样就没有问题了
<!--Put your commentary in here...-->
2、注释不要放置于2个浮动的区块之间。
3、将文字区块包含在新的<div></div>之间,如:<div style="float:right;width:400px"><div>↓这就是多出来的那只猪</div></div>。
4、去除文字区块的固定宽度,与3有相似之处。



IE6下为什么图片下方有空隙产生
 

HTML代码


[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]


解决这个BUG的方法也有很多,可以是改变html的排版,或者定义img 为display:block
或者定义vertical-align属性值为vertical-align:top | bottom |middle |text-bottom
还可以设置父容器的字体大小为零,font-size:0.

[ 资讯评论 ]
暂时没有任何评论!
[ 提交评论 ]
请选择表情
  • 昵称:
  • *
  • 验证码:
  • *点击更换验证码
  • 尚能输入个字符
申明:本网站部分分享内容来自网络,如有侵权请及时与我联系,谢谢,另网友评论仅代表个人观点,与本站立场无关,如果在评论中发表违反我国任何法律的,请即时与我们联系(QQ:77132915),我们将立即予以删除. [ 注:提交评论后,通过审核后方能在网站上显示!]