• IE6/IE7之浮动元素最后一个字母重复Bug


    影响版本

    这个bug影响: IE7, IE6

    症状

    浮动元素最后一个字母重复

    描述

    IE6和IE7中浮动元素的最后一个字符重复,让我们看一下例子:

    例子

    可用的例子在 separate page

    HTMLCode:
    <div> <p> <span>A</span> <span>B</span> <span>C</span> </p> </div> 
    CSSCode:
    div { width: 100px; } p { margin-right: 1px; } span { float: left; width: 120px; }

    造成bug的原因是: 我们有一个确定宽度的div元素. 在这个div中有一个属性margin-right属性设置为任何非0数值的 <p> 元素(margin is not required in IE6). 在这个P元素中有三个float属性设置为left,并且宽的设置为大于父容器div宽度的宽度值的span元素.浏览器中发生了什么,最后一个字母C在下一行重复我强调过要有三个float元素, 如果没有三个;bug就不会出现,如果多于三个,bug就会出现 "Float Squeeze Weird Gap Bug" .

    解决

    修正版本

    所有版本

    描述

    注意: 这个bug也通过 CS solution to "Float Squeeze Weird Gap Bug"修正

    我们将要用IEbug修正瑞士军刀来修正这个bug,不,我不是在说layout属性,即时给我们的胖元素设置了layout,那么也只能修正IE7中的bug,而不能修正IE6,让我们看一下例子:

    修正的例子在 separate page

    HTMLCode:
    <div> <p> <span>A</span> <span>B</span> <span>C</span> </p> </div> 
    CSSCode:
    div { width: 100px; } 
     p { margin-right: 1px; }  
    span { float: left; width: 120px; position: relative; }

    唯一改变了的是我们添加 position property 并设置属性 relative 在我们的浮动元素span上.  在 IE7 还是 IE6中重复的字幕不会出现了.

  • 相关阅读:
    关于jQuery的选择器
    解读position定位
    html5新增的功能。
    关于ajax的同步异步
    响应式布局由来和剖析
    jQuery的效果函数及如何运用
    jQuery的选择器
    position定位的解析与理解
    HTML5与CSS3中新增的属性详解
    对Ajax的解析
  • 原文地址:https://www.cnblogs.com/Denny_Yang/p/2496511.html
Copyright © 2020-2023  润新知