html - 显示表没有按预期工作 - 左,右列

标签 html css

我希望左右栏的高度相同,最小高度为整个浏览器高度。

html:

<div id="outfit-wrapper" class="clearfix">

    <div id="header"></div> 

    <div id="outfit-body">  
        <div class="table-row">            

            <div id="outfit-area" class="table-cell">      
                whatever content
                <div class="footer">
                 content within #outfit-area (bottom of #outfit-area)
                    <div class="clearfix"></div>
                </div>                     
            </div>

            <!-- I WANT the green left column to be the same height as
            right blue column - how do I achieve this? -->

             <div id="products-area" class="table-cell">
                 here are some products. here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.here are some products.
                 <div class="clearfix"></div>
             </div>        

        </div> <!--end table row -->
    </div> <!-- end outfit-body-->

</div> <!--end outfit-wrapper-->

CSS:

/* clearfix */
.clearfix:after {visibility: hidden;display: block;font-size: 0;content: " ";clear: both;height: 0;}
.clearfix { display: inline-block; }
.clearfix { display: block; }

/* 100% height layout - header is 10% of this height, #outfit-area and #products-area 90% */
html,body {margin: 0;padding: 0;height:100%;}
body {background: #ffffff;font-family: 'Noto Sans', sans-serif; font-size:13px;}

#header {
    position:relative;
    margin:0;
    padding:0;
    height:10%;
    width:100%;
    min-height:45px; /* Min-height is used because loogotype must be visible to user */
    background:yellow;
}


#outfit-body {
    display:table;   
}

.table-row {
    display:table-row;
}

.table-cell {
    display:table-cell;
    vertical-align:top;
}

#outfit-wrapper {
    position:absolute;
    width:98%;
    margin-left:1%;
    margin-right:1%; 
    min-height: 100%;
    height: 100%;    
    padding:0;
}

/* left column */
#outfit-area {
    position:absolute; /* I must have this here so 100% height can be achieved (because I have percentage height in parent div #outfit-wrapper */
    min-height:90%; /* header is 10% of the total height */
    width:60%;
    overflow: hidden;
    border-top:1px solid #acacac;
    border-left:1px solid #dfdfdf;
    border-right:1px solid #dfdfdf;
    background:green;
}

#products-area {
    width:40%;
    height:90%; /* header is 10% of the total height */
    border-right:1px solid #dfdfdf;
    border-top:1px solid #acacac;
    background-color:blue;
}

#outfit-area .footer {
    display:table-cell;
    position:absolute;
    bottom:0;
    left:0;
    width:100%;
    height:40px;
    line-height:40px;
    border-top:1px solid #dfdfdf;
}

看看 jsfiddle: http://jsfiddle.net/TgM7t/24/

我希望左(绿色)列与蓝色高度相同(即使右列变高,绿色也应该相同高度)我尝试使用 display:table、table-cell、table-row 东西想法应该可行,但这显然是我所缺少的东西。

我知道有很多关于这个主题的问题和答案,但我真的找不到我要找的东西......

我的问题:我错过了什么?

最佳答案

强行调整其中一个表格单元格的高度将导致行高不相应调整。在您的情况下,#outfit-area 的 css 中的 position: absolute;min-height:90%; 行导致单元格扩展到行之外。

为了实现您正在寻找的设计(即 1​​0% 标题,90% 正文),我会将正文容器的高度设置为 90%。表格布局将保证子表格行和表格单元格“div”自然扩展并占据所有空间。

这是一个demo .

css中对应的修改是:

#outfit-body {
    display:table;   
    height: 90%;
}

这已经解决了这个问题,但我也会去掉 child 身上不必要的高度线(在下面用“删除”提及的方式注释掉):

#products-area {
    width:40%;
    /*height:90%;*/ /* header is 10% of the total height */ /*removed*/
    border-right:1px solid #dfdfdf;
    border-top:1px solid #acacac;
    background-color:blue;
}

#outfit-area {
    /*position:absolute;*/ /*removed*/ /* I must have this here so 100% height can be achieved (because I have percentage height in parent div #outfit-wrapper */
    position: relative; /*added because outfit area contains children div*/
    /*min-height:90%;*/ /*removed*/ /* header is 10% of the total height */
    ......

关于html - 显示表没有按预期工作 - 左,右列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18416911/

相关文章:

html - 网站的视觉方面

html - 在 <img> 标签中以与背景图像相同的方式偏移可 View 像

html - IE 7 和 8 CSS 3 使用 HTC 问题,只出现 1 个阴影,我需要粘性页脚

javascript - 在 CSS 中显示来自数据集的数据?

html - 使用框架时不使用响应式 css

javascript - jQuery 使用 height() 来改变 div 的高度

css - CSS 中的顶部与底部的过渡效果不起作用

javascript - 隐藏与 css vs JS 创建元素 vs ajax

html - Meteor – 如何在 <head> 元素中使用模板助手?

css - 如何将一些文本居中并在同一行上右对齐更多文本?