Bootstrap 3 well和list-item-group overflow-y滚动,拉伸到剩余高度

时间:2014-10-05 19:34:52

标签: twitter-bootstrap twitter-bootstrap-3

我有以下基于Bootstrap 3的HTML:

<div class="row">
    <div class="col-md-3">
        <div class="well" id="well1">
            Some content
        </div>

        <div class="well" id="well2">
            <div class="list-group">
                <a href="#" class="list-group-item">
                    <h4 class="list-group-item-heading">Heading 1</h4>

                    <p class="list-group-item-text">Some text...</p>
                </a>

                <a href="#" class="list-group-item">
                    <h4 class="list-group-item-heading">Heading 2</h4>

                    <p class="list-group-item-text">Some text...</p>
                </a>

                <a href="#" class="list-group-item">
                    <h4 class="list-group-item-heading">Heading 3</h4>

                    <p class="list-group-item-text">Some text...</p>
                </a>

                <a href="#" class="list-group-item">
                    <h4 class="list-group-item-heading">Heading 4</h4>

                    <p class="list-group-item-text">Some text...</p>
                </a>
            </div>
        </div>
    </div>
</div>

list-group-item个实例的数量可能会有所不同。

我想要实现的目标如下:

我希望将well2拉伸到最大剩余高度,并在well2内显示一个垂直滚动条(如果有更多list-group-item - 个实例,而不是滚动到浏览器窗口完整的浏览器窗口。

1 个答案:

答案 0 :(得分:2)

要使两个元素构成浏览器的整个高度,您需要让所有的祖先元素都设置一些高度。将html和body设置为100%height,然后创建一个类以添加到其他祖先元素。我称这个班级为全高。

现在所有的祖先都有一个高度,你可以简单地设置两个井的高度。因为Twitter Bootstrap中的井具有20px的边距,所以可以使用第一个井上的calc()表达式从百分比中减去边距。所有现代浏览器都支持calc()。作为IE8和旧版Android浏览器的备份,您可以首先使用高度为百分比值的高度作为后备。

对于第二口井,将其高度设置为100%的剩余百分比,并将其上的溢出属性设置为自动。我还从第二个井的底部移除了边距,使其紧密贴合视口的底部,但当然您也可以在这里使用calc。

<强> HTML:

<div class="container full-height">
    <div class="row full-height">
        <div class="col-md-3 full-height">  
            <div class="well" id="well1">Some content</div>          
            <div class="well" id="well2">
                <div class="list-group"> 
                    <a href="#" class="list-group-item">
                        <h4 class="list-group-item-heading">Heading 1</h4>
                        <p class="list-group-item-text">Some text...</p>
                    </a>
                    <a href="#" class="list-group-item">
                        <h4 class="list-group-item-heading">Heading 2</h4>
                        <p class="list-group-item-text">Some text...</p>
                    </a>
                    <a href="#" class="list-group-item">
                        <h4 class="list-group-item-heading">Heading 3</h4>
                        <p class="list-group-item-text">Some text...</p>
                    </a>
                    <a href="#" class="list-group-item">
                        <h4 class="list-group-item-heading">Heading 4</h4>
                        <p class="list-group-item-text">Some text...</p>
                    </a>
                    <a href="#" class="list-group-item">
                        <h4 class="list-group-item-heading">Heading 5</h4>
                        <p class="list-group-item-text">Some text...</p>
                    </a>
                    <a href="#" class="list-group-item">
                        <h4 class="list-group-item-heading">Heading 6</h4>
                        <p class="list-group-item-text">Some text...</p>
                    </a>
                    <a href="#" class="list-group-item">
                        <h4 class="list-group-item-heading">Heading 7</h4>
                        <p class="list-group-item-text">Some text...</p>
                    </a>
                    <a href="#" class="list-group-item">
                        <h4 class="list-group-item-heading">Heading 8</h4>
                        <p class="list-group-item-text">Some text...</p>
                    </a>
                    <a href="#" class="list-group-item">
                        <h4 class="list-group-item-heading">Heading 9</h4>
                        <p class="list-group-item-text">Some text...</p>
                    </a>
                    <a href="#" class="list-group-item">
                        <h4 class="list-group-item-heading">Heading 10</h4>
                        <p class="list-group-item-text">Some text...</p>
                    </a>
                    <a href="#" class="list-group-item">
                        <h4 class="list-group-item-heading">Heading 11</h4>
                        <p class="list-group-item-text">Some text...</p>
                    </a>
                    <a href="#" class="list-group-item">
                        <h4 class="list-group-item-heading">Heading 12</h4>
                        <p class="list-group-item-text">Some text...</p>
                    </a>
                    <a href="#" class="list-group-item">
                        <h4 class="list-group-item-heading">Heading 13</h4>
                        <p class="list-group-item-text">Some text...</p>
                    </a>
                </div>
            </div>
        </div>
    </div>
</div>

<强> CSS:

html, body, .full-height {
    height: 100%;
}
#well1 {
    height: 15%; /*fall back for IE8, Safari 5.1, Opera Mini and pre-4.4 Android browsers*/
    height: calc(15% - 20px);
    overflow: hidden; /*better to decide how you want to handle this than to let the browser decide*/
}
#well2 {
    height: 85%;
    margin-bottom: 0;
    overflow: auto;
}