【问题标题】:Make div fill parent height (jsfiddle)使 div 填充父高度(jsfiddle)
【发布时间】:2012-12-02 06:34:27
【问题描述】:

具体用例:

http://jsfiddle.net/MgcDU/271/

这是一个 twitter 引导选项卡,选项卡的内容包含:菜单层(固定但未知高度),以及我要填充选项卡窗格其余空间的第二部分。

所以,我需要黄色窗格来填充其余的浅灰色空间(除了 10 像素的填充),红色内容填充黄色空间(当然除了填充)。

最好的方法是什么,没有标签窗格的绝对定位是否可能?

代码(最好看fiddle):

HTML:

<div class="container">
    <div class="tabs-above">
            <ul class="nav nav-tabs">
                <li class="active"><a href="#" data-toggle="tab">Tab1</a></li>
                <li><a href="#" data-toggle="tab">Tab2</a></li>
                <li><a href="#" data-toggle="tab">Tab3</a></li>
            </ul>
            <div class="tab-content">
                <div class="tab-pane active">
                    <div class="menu">
                        <div class="input-prepend btn-group">
                            <button class="btn btn-inverse dropdown-toggle">Select</button>
                            <select class="span1" ></select>
                        </div>
                    </div>
                    <div class="content">
                        Scrollable content<br>
                        Scrollable content<br>
                        Scrollable content<br>
                        Scrollable content<br>
                        Scrollable content<br>
                        Scrollable content<br>
                        Scrollable content<br>
                        Scrollable content<br>
                        Scrollable content<br>
                        Scrollable content<br>
                        Scrollable content<br>
                        Scrollable content<br>
                        Scrollable content<br>
                    </div>
                </div>
            </div>
        </div>
</diV>​

CSS:

@import url('http://twitter.github.com/bootstrap/assets/css/bootstrap.css');

.container {
    position: absolute;
    top: 0; left 0;
    width: 200px;
    height: 300px;          
    background: lightgray;        
    padding: 10px;
}

.tab-pane {
    background: yellow;            
    padding: 10px;
}

.content {
    background: red;
    height: 100px;
    width: 100%;
    overflow: auto;
}
​

【问题讨论】:

    标签: html css


    【解决方案1】:

    This SO question 有一个适合你的建议。

    更新您的 tab-panecontent 类:

    .tab-pane {
        background: yellow;            
        padding: 10px;
        top: 55px;
        bottom: 10px;
        right: 10px;
        left: 10px;
        position:absolute;
    }
    
    .content {
        background: red;
        overflow: auto;
        position: absolute;
        left:10px; right: 10px;
        bottom: 10px;
        top: 50px;   
    }
    

    this jsFiddle

    【讨论】:

    • 好的,谢谢。但实际上我了解如何使用绝对定位来做到这一点。你使用 top:55px;如果我不知道导航标签的高度怎么办?是否可以保持正常流量(不使用绝对流量)?这就是问题所在。
    • 好的,原始问题文本问:“没有绝对布局是否可能”。您可以将特定像素值替换为相对于可用空间进行缩放的百分比。不知道这是否总是对你有用。
    • 所以你确定,没有位置没有办法做到这一点:绝对?像 display: table 等。
    • 不确定。您可以使用实际表格进行布局:)
    • 不,桌子不适合我。 -) 我试图实施该答案中给出的解决方案:stackoverflow.com/questions/11212155/… 但我做不到。实际上绝对定位对我来说并没有那么糟糕,但不知道是否有可能没有使用标准页面流的黑客攻击。 (再次感谢您的回答,我会尽快将其标记为正确,我不会得到任何其他合适的)
    猜你喜欢
    • 2019-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-15
    • 1970-01-01
    • 2011-07-31
    • 1970-01-01
    相关资源
    最近更新 更多