zoukankan      html  css  js  c++  java
  • 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中重复的字幕不会出现了.

  • 相关阅读:
    react脚手架
    快速创建一个node后台管理系统
    vue脚手架结构及vue-router路由配置
    Spring 事务管理-只记录xml部分
    Spring-aspectJ
    Maven 自定义Maven插件
    JVM
    JVM
    Spring
    Digester
  • 原文地址:https://www.cnblogs.com/Denny_Yang/p/2496511.html
Copyright © 2011-2022 走看看