代码之家  ›  专栏  ›  技术社区  ›  gtd

有没有一种0宽的方法来防止浮动的分隔带塌陷?

  •  0
  • gtd  · 技术社区  · 16 年前

    首先,这个问题不是关于块元素在其子元素浮动时崩溃的问题。事实上,这个问题与清算一点关系都没有。

    问题是这个。假设我有一系列浮动的div,比如:

    <div class="column">Column 1</div>
    <div class="column"></div>
    <div class="column">Column 3</div>
    

    CSS:

    div.column { float: left; width: 200px; }
    

    中间一列将在最近版本的火狐和Safari中崩溃,尽管显然不是IE7。 我想要的是IE7的行为。

    我知道我可以添加一个 &nbsp; 它将保持DIV打开,但在这种情况下不适用,因为我也有这样的声明:

    div.column input { width: 100% }
    

    我有一系列列以类似表格的格式显示,在某些条件下,输入字段会消失。问题是,当输入消失时,字段就会折叠。如果我添加 &nbsp; 它使DIV自动换行。只是为了避免最初的问题:

    • 我为什么不换个桌子呢? 因为我正在使用scriptaculous sortable来拖放行,这不适用于表格
    • 为什么不使用较短的像素宽度为 &nbsp; ? 因为 width: 100% 跨浏览器更精确。
    • 我为什么不加一个 &nbsp; 当我隐藏输入时 我最终可能会诉诸于此,但这在JS中有点难看,所以我希望有更好的方法。

    这里有聪明的黑客吗?因为Safari和火狐都是这样的,所以我认为这是官方认可的行为。W3C规范中对此进行了哪些讨论?

    1 回复  |  直到 16 年前
        1
  •  1
  •   meder omuraliev    16 年前

    嗯?你不应该随便给它一个高度吗?你能演示一下吗?

    推荐文章