【问题标题】:Using CSS to create two equal height layout columns, and inserting three equal height stacked columns inside the right column使用 CSS 创建两个等高布局列,并在右列内插入三个等高堆叠列
【发布时间】:2016-07-15 21:54:37
【问题描述】:

我不能使用表格标签和弹性框。我们的大多数访问者是使用 IE8 的老年人。

我正在尝试创建左右浮动的两个等高布局列。

左列包含两个不等高的堆叠 div。但这些 div 应该扩展以填充 col1 的总高度。

右列包含三个应具有相同高度的堆叠列。这些 div 也应该填写 col2 的总高度。

总的来说,col1 和 col2 应该始终具有相同的高度。

我无法为每列设置固定的 px 大小,因为里面的内容每天都可能不同。我希望 col1 和 col2 的内容都扩展以适应总高度,因此底部没有剩余空间。

我的选择是使用 display: table;但如果你有一些好的建议,请告诉我。

(仅供参考,图中显示的所有div都有边框。)

<div class="container">

 <div class="left">
  <div class="col-1-1"></div>
  <div class="col-1-2"></div>
 </div>

 <div class="right">
  <div class="col-2-1"></div>
  <div class="col-2-2"></div>
  <div class="col-2-3"></div>
</div>

任何帮助将不胜感激。

【问题讨论】:

    标签: html css layout height equals


    【解决方案1】:

    Richard Sussans 的答案是正确的,但您需要浮动列(均为左侧)以使它们彼此相邻。您还需要为列(以及它们的父元素,假设高度以 % 设置)指定高度,以便它们的子元素垂直扩展。使用您的标记,以下 css 应该可以解决问题:

    html, body, .container {
        height: 100%;
    }
    .left {
        float: left;
        height: 100%;
        width: 35%;
    }
    
    .right {
        float: left;
        height: 100%;
        width: 65%;
    }
    
    .col-1-1 {
        height: 25%;
    }
    
    .col-1-2 {
        height: 75%;
    }
    
    .col-2-1 {
        height: 33%;
    }
    
    .col-2-2 {
        height: 33%;
    }
    
    .col-2-3 {
        height: 34%;
    }
    

    【讨论】:

    • ... 你只需要指定列的宽度,而不是每个元素。 .col* 元素将占据其父级宽度的 100%。编辑了我的答案。
    【解决方案2】:

    您可以在 css 中使用所有这些百分比来表示高度和宽度,它会根据用户的屏幕尺寸进行调整!

    这些可能无法完全完美地工作,您可以随时调整数字或尝试其他方式。 希望这会有所帮助

    .left {
        height: 100%
        width: 35%
    }
    
    .right {
        height: 100%
        width: 65%
    }
    
    .col-1-1 {
    {
        height: 25%
        width: 35%
    }
    
    .col-1-2 {
    {
        height: 75%
        width: 35%
    }
    
    .col-2-1 {
    {
        height: 33%
        width: 65%
    }
    
    .col-2-2 {
    {
        height: 33%
        width: 65%
    }
    
    .col-2-3 {
    {
        height: 34%
        width: 65%
    }
    

    【讨论】:

    • 是否需要将显示模式设置为“table”并为div类左右分配“table-row”,并将显示分配给“table-cell”到所有col-x-x列?或者我可以在 div display set 上使用它来阻止?
    • 不需要表格,我认为表格可能会使它比您需要的更复杂。只需使用您在问题中所写的 div
    • 感谢您的回答。我将 .left 浮动到 float:left,并将 .right 浮动到 float:right。尝试了css,并且任何内部div(.col-x-x)都不会扩展到指定的高度。你可以在这里看到图片:s32.postimg.org/44bf2qi4l/pro2.gif我想知道我做错了什么:/
    猜你喜欢
    • 1970-01-01
    • 2013-06-07
    • 1970-01-01
    • 2013-10-12
    • 1970-01-01
    • 1970-01-01
    • 2011-01-08
    • 2012-12-22
    • 1970-01-01
    相关资源
    最近更新 更多