• IE6文字溢出BUG


    先看HTML代码:

    <pre><div style="350px;">
       <div style="float:left;"></div>
       <!--–- 我是华丽的注释 -–-->
       <div style=" 350px; float: right;">偶就是那只多出来的猪</div>
    </div>

    逐个分析:

    test-1:
    去掉<div style=”float:left;”></div> 中的“float:left”,就会发现多出来的“猪”字不见了,页面正常显示;
    同样去除 <div style=”350px;float:right;”>中的“float:right”,多余的“猪”字也同样消失,页面正常显示。
    分析:文字溢出与区块的浮动有关。

    test-2:
    把注释放到<div style=”float:left”></div>前面,多余的“猪”字消失,页面正常显示
    把注释放到<div style=”350px;float:right;”>偶就是那只多出来的猪</div>后面,多余的“猪”字也同样消失,页面正常显示。
    分析:文字溢出与注释位置有关。

    test-3:
    去掉<div style=”350px;float:right;”>中的“350px”,多余的“猪”字消失,页面正常显示。
    分析:文字溢出与文字区块的固定宽度有关(设置了width)。

    test-4:
    增加注释的条数:当1条注释时,则多出来1个字;2条注释时,则多出来3个字;3条注释时,则多出来5个字……
    从上面的规律中我们会得到这样一个公式:溢出文字的字数=注释的条数×2-1 (这里的字数在中文或英文数字时都成立)
    当溢出的文字字数大于文本的字数时,文字区块将会消失。
    分析:溢出的字数与注释的条数有关。

    综合总结解决方案:

    1、去掉注释。(当然,有些时候注释是非常必要的,所以不是非常推荐)
    2、注释不要放置于两个浮动的区块之间。
    3、给文字区块再外嵌套一个div,如:<div style=”350px;float:right;”><div>偶就是那只多出来的猪</div></div>。
    4、去除文字区块的固宽width。
    5、给文字区块设置position:relative;。

    PS:
    ●type=”hidden”的input也有可能引起该BUG,解决:将该input放在form下或参照方案3。
    ●display为none的div也有可能引发此bug,解决参照方案3。

  • 相关阅读:
    [bzoj1500][luogu2042][cogs339][codevs1758]维修数列(维护数列)
    无旋treap的简单思想以及模板
    [hdu2036]改革春风吹满地
    (treap)[bzoj3224][洛谷3369][cogs1829]Tyvj 1728 普通平衡树
    [bzoj3875][Ahoi2014]骑士游戏
    [bzoj1433][ZJOI2009]假期的宿舍
    <struct、union、enum>差异
    LeetCode(50) Pow(x,n)
    LeetCode(49)Group Anagrams
    LeetCode(48)Rotate Image
  • 原文地址:https://www.cnblogs.com/yaser/p/4417640.html
Copyright © 2020-2023  润新知