我有以下基于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
- 个实例,而不是滚动到浏览器窗口完整的浏览器窗口。
答案 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;
}