Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何根据视口大小调整Div高度?_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 如何根据视口大小调整Div高度?

Javascript 如何根据视口大小调整Div高度?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我希望#maincontentdiv能够滚动,其余div保持静止 当我尝试下面的代码时,我得到了想要的效果,但是#maincontentdiv比实际视口延伸得更远,我无法读取剩余的文本。我希望根据视口调整#maincontent的高度,但不需要调整其他内容 CSS #framecontentTop{ position: inherit; top: 5px; left: 0px; /*Set left value to WidthOfLeftFrameDiv 220px*/

我希望
#maincontent
div能够滚动,其余div保持静止

当我尝试下面的代码时,我得到了想要的效果,但是
#maincontent
div比实际视口延伸得更远,我无法读取剩余的文本。我希望根据视口调整
#maincontent
的高度,但不需要调整其他内容

CSS

#framecontentTop{
    position: inherit;
    top: 5px;
    left: 0px; /*Set left value to WidthOfLeftFrameDiv 220px*/
    right: 200px; /*Set right value to WidthOfRightFrameDiv*/
    width: 100%;
    height: 175px;
    overflow: hidden; /*Disable scrollbars. Set to "scroll" to enable*/
    background-color: #8b45130;
}

#maincontent{
    padding: 10px;
    position: absolute; 
    top: 175px; /*Set top value to HeightOfTopFrameDiv*/
    height: 100%;
    left: 220px; /*Set left value to WidthOfLeftFrameDiv*/
    right: 205px; /*Set right value to WidthOfRightFrameDiv*/
    width: 500px;
    bottom: 0px;
    overflow: auto; 
    background: #fff;
}
JavaScript

$(function(){
    var parent= $('#maincontent');
    var parentOffset = parent.offset();
    var bottom = 0; 
    parent.find('*').each(function() {
        var elem = $(this);
        var elemOffset = elem.offset();
        var elemBottom = elemOffset.top + elem.outerHeight(true) - parentOffset.top;
        if (elemBottom > bottom) {
            bottom = elemBottom;
        }
    });
    parent.css('min-height', bottom);
});

如果您能提供任何帮助,我将不胜感激。我对这段代码感到失望已有一段时间了。

您可以根据自己的身高使用vh设备。例如:

#maincontent{
    padding: 10px;
    position: absolute; 
    top: 175px; /*Set top value to HeightOfTopFrameDiv*/
    height: 100vh; // USE VH HERE
    left: 220px; /*Set left value to WidthOfLeftFrameDiv*/
    right: 205px; /*Set right value to WidthOfRightFrameDiv*/
    width: 500px;
    bottom: 0px;
    overflow: auto; 
    background: #fff;
}
这表示主内容元素将是当前视点高度的100%

虽然有一个支持问题,但是如果您需要它在IE9下工作,那么您必须尝试不同的方法


使用绝对定位,由于已设置顶部和底部,因此无需设置高度。假设#maincontent最近的相对或绝对位置的父项是页面主体,将bottom设置为0应该对您有用,而不必使用javascript

#maincontent{
  padding: 10px;
  position: absolute; 
  top: 175px; /*Set top value to HeightOfTopFrameDiv*/
  /*height: 100%;*/
  left: 220px; /*Set left value to WidthOfLeftFrameDiv*/
  right: 205px; /*Set right value to WidthOfRightFrameDiv*/
  width: 500px;
  bottom: 0;
  overflow: auto; 
  background: #fff;
}
小提琴:


另一种选择可能是将页面内容相对定位,然后对其他元素进行固定定位(使其位置相对于视口,而不是其他元素)

您可以使用

box-sizing: border-box
例如:-

* {
  padding: 0;
  margin: 0;
}
html {
  box-sizing: border-box;
}
*, *:before, *:after {
  box-sizing: inherit;
}

html,body {
  height:100%;
}

#framecontentTop{
    top: 5px;
    left: 0px; /*Set left value to WidthOfLeftFrameDiv 220px*/
    right: 200px; /*Set right value to WidthOfRightFrameDiv*/
    width: 100%;
    height: 175px;
    overflow: hidden; /*Disable scrollbars. Set to "scroll" to enable*/
    background-color: #8b45130;
    position:relative;
    z-index:1;
}

#maincontent{
    padding: 10px;
    position: relative; 
    top: -180px; /*Negative Set top value to HeightOfTopFrameDiv + position*/
    padding-top: 180px /*Set padding-top value to HeightOfTopFrameDiv + position*/
    height: 100%;
    left: 220px; /*Set left value to WidthOfLeftFrameDiv*/
    right: 205px; /*Set right value to WidthOfRightFrameDiv*/
    width: 500px;
    overflow: auto; 
    background: #fff;
}
重要的部分是将
top
设置为
#framecontentTop
的负值,并应用
padding top
#maincontent
的内容移动到正确的位置

由于元素重叠,因此需要通过对
#framecontentTop


这是一个供参考的示例:-

如果不给它一个
高度或
宽度,但给它一个
顶部
右侧
底部
左侧
位置,则元素的大小自动为其边界的100%

html,正文{高度:100%;最小高度:100%;背景色:灰色;填充:0;边距:0;}
#主要内容{
填充:10px;
位置:绝对位置;
顶部:175px;/*将顶部值设置为TopFrameDiv的高度*/
left:220px;/*将left值设置为leftframediv的宽度*/
右:205px;/*将右值设置为RightFrameDiv的宽度*/
底部:0px;
溢出:自动;
背景:白色;
}

这是一个很好的例子。莫利斯夫妇,最不常见的luctus夫妇,最不常见的ligula夫妇,最不常见的是lacinia-odio-sem-nec-elit夫妇。我不知道是谁干的,我不知道是谁干的。圣母玛利亚圣母玛利亚圣母玛利亚圣母玛利亚圣母玛利亚圣母玛利亚圣母玛利亚圣母玛利亚圣母玛利亚圣母玛利亚圣母玛利亚圣母玛利亚圣母玛利亚圣母玛利亚圣母玛利亚圣母玛利亚圣母玛利亚圣母玛利亚圣母玛利亚圣母玛利亚圣母玛利亚圣母玛利亚圣母玛利亚圣母玛利亚圣母玛利亚圣母玛利亚圣母玛利亚圣母玛利亚圣母玛利亚圣母玛利亚圣母玛利亚。在发酵罐中发酵。莫利斯夫妇,最不常见的luctus夫妇,最不常见的ligula夫妇,最不常见的是lacinia-odio-sem-nec-elit夫妇。两人一组,一组是普通人,一组是利古拉人,另一组是老年人。

两人一组。在自然社会中,因怀孕而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯。我是奥迪奥先生,我是艾格斯塔·艾格特·奎姆先生。猫门前庭舌骨。在自然社会中,怀孕和分娩的孩子们,被嘲笑的孩子们。

。Donec ullamcorper nulla non metus拍卖商fringilla。整数是一个完整的数字。Donec在eget metus为非mi porta孕妇确定了最佳身份。猫门前庭舌骨


高度100%+顶部175px?当然,您的div位于视口下方。只需删除高度,因为您已设置底部:0请提供HTML标记。谢谢!这获得了#maincontent Div所需的长度,但是现在我通过页面的标题获得了滚动条。有没有办法让滚动条只显示在内容部分?@gwisher使
#maincontent
过卷:隐藏
,并在
#maincontent
中添加一个div,使该div可滚动,高度设置为100%。