多出一只猪
今天妞说她做的页面出了点问题,我直觉就感觉跟IE6有关,看到了页面,(由于页面已经上线,不方便贴代码)经验告诉我这就是传说中的多出一个猪bug。
可恶的IE6总是给我们带来许多不必要的烦恼,关于这个bug的激活个人认为有下面几个条件。
1.是注释引起的,删除所有注释即可.
2.display为none的div也有可能引发此bug.
3.个人尚未发现,希望高手给予支持.
解决之路:
我看了一下那个页面代码,发现那个溢出的区域是用js生成的列表条目,于是就猜测是不是这个生成列表字段的js代码里添加了注释呢,让妞去查询之,回答是没有。于是再看代码,发现了
<div style="display:block;" id="div_ltzpInfo">正在加载...</div><div id="div_wtzpInfo" style="display:none;"></div>
这么一段代码,应该是想用户体验提升的读取数据的loading,但是那个display:none是关键,因为极有可能是它触发了这个bug,于是按照常规的解决方法解决,网上流传着这些解决方法:
a. 不放置注释。最简单、最快捷的解决方法(没注释的可以无视)
b. 注释不要放置于 2 个浮动的区块之间
c. 将文字区块包含在新的 <div></div> 之间,如:<div style=”float:right;width:400px”><div> ↓这就是多出来的那只猪 </div> </div>
d. 去除文字区块的固定宽度,与 3 有相似之处
e. 有的人在注释后加一个 <br /> 或者空格,但只是消除现象。
f. 不要给浮动元素设置多宽度,使其不会到达包含元素的底部,或者对最后一个元素设置 margin-right: -3px; 或者更小。
g. 注释可以这样写:<!–[if !IE]>Put your commentary in here…<![endif]–>
最后妞选择了用</br>来解决,个人认为如果对框架要求不是太严格的情况下应该使用c方案,因为虽然这样代码侵入了原框架但是比一个表现型废的空标签
好一些吧。
结论:
问题解决了,总结一下。如果不知道这个多出一个猪的bug任你怎么弄也不会有结果的,所以要多学习,多了解;即使知道了这个bug也能搜到解决的方案但是你如果不知道激活这个bug的条件难免还会犯同样的错误,所以要引以为戒;
/*我的bug是只要你请客,我就一定会去吃*/

好巧,我也写过这个文章
http://ons.me/101.html
我写得比你生动多了,我的示例多么丰富啊! (路过)