46

我在 twitter-bootstrap 中有一个 div 元素,它的内容会垂直溢出到屏幕之外。

我希望 div 采用浏览器窗口大小的高度,并让其余内容在窗口内垂直滚动。

我有一个不工作的样本@jsFiddle

#content {
    border: 1px solid #000;
    overflow-y:auto;
    height:100%;
}

<div class="container-fluid">
    <div class="row-fluid">
        <div class="span3">Side Bar</div>

        <div class="span9" id="content">
            Content Bar Example Content
        </div>
    </div>
</div>

我在阅读了类似SO Questions这样的问题后发布了这个问题

编辑 -

对不起,伙计们,我想我的问题错了。

我想要的是我的 div 必须填充屏幕中其余的垂直空间。

如果有人可以提出响应式解决方案,那就太好了

4

5 回答 5

89

使用 CSS{height: 100%;}匹配父级的高度。这可以是任何东西,意味着比屏幕更小或更大。使用{height: 100vh;}匹配视口的高度。

.container {
    height: 100vh;
    overflow: auto;
}

根据Mozilla的官方文档,1vh是:

等于视口初始包含块高度的 1%。

于 2017-01-08T20:56:27.877 回答
31

您也需要height为父元素付出!看看这个小提琴

CSS:

html, body {height: 100%;}

#content, .container-fluid, .span9
{
    border: 1px solid #000;
    overflow-y:auto;
    height:100%;
}​

JavaScript(使用jQuery)方式:

$(document).ready(function(){
    $(window).resize(function(){
        $(".fullheight").height($(document).height());
    });
});
于 2012-08-29T06:46:30.373 回答
14

尝试这个

$(document).ready(function(){
    $('#content').height($(window).height());
});
于 2012-08-29T06:48:58.063 回答
1

利用

$(文档).height()
属性并从脚本设置为 div 并设置

  溢出=自动

用于滚动

于 2012-08-29T06:44:39.457 回答
0

这对我有用 JsFiddle

html

..bootstrap
<div class="row">
  <div class="col-4 window-full" style="background-color:green">
    First Col
  </div>
  <div class="col-8">
    Column-8
  </div>
</div>

css

.row {
   background: #f8f9fa;
   margin-top: 20px;
}

 .col {
   border: solid 1px #6c757d;
   padding: 10px;
}

JavaScript

var elements = document.getElementsByClassName('window-full');
var windowheight = window.innerHeight + "px";

fullheight(elements);
function fullheight(elements) {
    for(let el in elements){
        if(elements.hasOwnProperty(el)){
            elements[el].style.height = windowheight;
        }
    }
}

window.onresize = function(event){
     fullheight(elements);
}

结帐 JsFiddle 链接 JsFiddle

于 2019-01-06T18:58:04.963 回答