【问题标题】:Float left in a div does not work in IE7 but does in Firefox and IE8Float left in a div 在 IE7 中不起作用,但在 Firefox 和 IE8 中起作用
【发布时间】:2011-03-24 08:35:33
【问题描述】:

当我有三个 div 都剩下浮动时,我希望这些部分根据其中数据的长度来扩展或收缩。

例如,如果第一个地址很长,我希望第一个框展开并将第二个推过去。在 Firefox 中它正在这样做,但在 Internet Explorer 中它需要一个宽度才能看起来正确。在 IE7 中,它根本无法正确显示 - 每个 div 都有一个包含两列的表格,在 IE7 中,尽管在 align=left 上设置了 align=left,但它显示第二列到页面的远端,而不是紧贴第一列第 2 列并在第 1 列设置小宽度。我在母版页中指定了文档类型,我尝试添加 clear:both 没有运气。

为什么宽度会完全改变浮动部分在 IE 中的显示方式,我该如何解决这个问题?该页面在 IE7 中必须看起来不错。

.FloatingSection
{
    float:left;
    padding-bottom:10px;
    padding-right:10px;
}

<div id="FirstPerson" class="FloatingSection">
</div>
<div id="SecondPerson" class="FloatingSection">
</div>
<div id="ThirdPerson" class="FloatingSection">
</div>   

我注意到在 IE8 中这看起来还不错。

【问题讨论】:

    标签: css internet-explorer firefox cross-browser css-float


    【解决方案1】:

    刚刚发现如果你有一个浮动和一个明确的应用到一个DIV IE7 扼流圈。

    相反,在 DIV 的 CSS 中指定浮点数,但删除 clear 并在相关 DIV 之后放置一个空 div,如下所示:

    之前:

    <div style="float:left; clear:right;">Content goes here</div>
    

    之后

    <div style="float:left;">Content goes here</div>
    <div style="clear:right;"></div>
    

    【讨论】:

    • IE 毫无疑问是我用过的最糟糕的浏览器。
    【解决方案2】:

    您是否考虑过display:inline-block 而不是浮动?如果不使用一些 JS 显式定义每个浮动元素的宽度,我认为您无法使用浮动和支持 IE 来做您想做的事情。

    另外注意,您必须为 IE 中的块级元素声明第二条单独的规则:

    HTML:

    <div class="foo">test</div><div class="foo">bar</div>
    

    CSS:

    .foo { display:inline-block; }
    .foo { display:inline; } /* Feed this to IE below 9 only with a CC. Don't feed it to modern browsers */
    

    【讨论】:

      【解决方案3】:

      当你是浮动元素时,你应该几乎总是包含一个明确的宽度。

      如果您不这样做,浏览器必须猜测您的意思。在这种情况下,Firefox 的猜测比 IE 好,但您不应该让他们猜测。尽可能明确。

      编辑:如果您希望所有三个框都随内容扩展,我建议设置基于百分比的宽度。一般来说,你会想要查找fluid column layouts 的技术。

      【讨论】:

      • 一个明确的宽度会打败我想要做的事情。我希望宽度根据内容动态变化,而不是固定的。
      • 在看了这个之后,我决定我可以设置浏览器黑客以对 IE 7 与 IE 8 和 Firefox 采取不同的行为,或者只是处理它在 IE 中看起来永远不会正确的事实7、去固定宽度。我决定选择后者。
      • 忽略旧版本的 IE 是我永远支持的决定 =)
      猜你喜欢
      • 1970-01-01
      • 2010-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多