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

内联元素的匹配高度

  •  0
  • Dorjan  · 技术社区  · 15 年前

    我有一个问题(实际上是我第三次碰到这个问题),我有一个容器,里面有一个左右分区。

    如果它们的长度不同(右边的长度比左边的长,或者另一边的长度不同),那么我如何在不使用javascript的情况下让另一个拉伸(在高度上)。

    我不想得到表,我认为inherit可以做到(但它只继承auto)。似乎没有一个简单的答案。或者我应该只用桌子!有什么问题吗?

    这个问题让我为它应该是多么愚蠢的简单而激动。

    事先谢谢!

    编辑:我举个例子:

    <body style="background: #000000 url(????.com);">
        <div id="container" style="margin:0 auto; width:996px; height: auto; background: transparent; overflow:hidden;">
            <div id="left" style="float:left; width:690px">
                 <div style="background-color:#FFFFFF;">Content</div>
                 <div style="background-color:#FFFFFF;">content</div>
            </div>
            <div id="right" style="float:left; width:306px">
                 <div style="background: transparent;">Content<br />Content<br />content<br/>Last line</div>
                 <div style="background-color:#FFFFFF;">Content</div>
            </div>
        </div>
    </body>
    

    如你所知,左边比右边小得多。身高:100%似乎什么都没做。

    结果:没有JS支持是不可能的。干杯。

    3 回复  |  直到 15 年前
        1
  •  2
  •   jeroen    15 年前

    如果您需要对IE6和IE7的支持,恐怕您不能在没有表或JavaScript的CSS中这样做。

    对于其他浏览器,可以转到显示:表格单元格和显示:表格行方式。

    当然,如果你不需要这些列的高度相等,但看起来像这样,那么使用背景图像来伪装是可行的。

        2
  •  1
  •   Community Mr_and_Mrs_D    7 年前

    http://www.alistapart.com/articles/fauxcolumns/

    对于任何相对简单的人造列都可以做到这一点,您只需垂直重复一个图像,模仿列的简单纯色背景。如果有更复杂的事情,您需要结合使用这类方法。

    有关更多技术,请参阅我的回复: 2 column CSS div with stretchable height

        3
  •  0
  •   Eric    15 年前

    如果你只是想让列看起来是相同的长度,你可以使用这个丑陋的黑客:

    .rightDiv, .leftDiv
    {
        margin-bottom: -1000px;
        padding-bottom: 1000px; /*1000 + real padding*/
    }
    .wrapper
    {
        overflow: hidden;
    }
    

    基本上,它会使两列扩展到比它们应该扩展的1000px,同时隐藏不需要的位。但不适用于底部边框。

    显然,这并不能使它们的长度相同。