如何动态设置div高度值?

时间:2013-10-21 11:59:05

标签: html asp.net css

我有一个HTML页面并包含3个这样的div: Link

<div style="min-height:100%;">
        <div id="TopContent" style="display: inline-block; height: 100px; width: 100%; background-color: #CCDEBB;">
        </div>

        <div id="LeftContent" style="display: inline-block; width: 25%; border: 3px solid #DFE8F6;">

                </div>             

        <div id="RightContent" style="border: 3px solid #b8cfee; display: inline-block; float: right; width: 72%;">


        </div>

            </div>

我想根据页面高度值设置LeftContent和RightContent的高度值。我的意思是LeftContent和RightContent高度扩展到页面的末尾。

7 个答案:

答案 0 :(得分:1)

使用calc();

#LeftContent{
float:left;
margin-right:3px;
height:calc(100% - 100px); //-100px because height of top bar is 100px

}

对于正确的内容

答案 1 :(得分:1)

您无法使用此HTML控制高度,但您可以使用以下内容来模拟此效果:在/之后:元素:

#LeftContent:after,
#RightContent:after{
    content:'';
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:9999px;
    z-index:-1;
    background:#DFE8F6;
}
#RightContent:after{background:#b8cfee;}

http://jsfiddle.net/EhnhZ/

答案 2 :(得分:1)

我建议你使用类而不是id。

HTML

<div class="content top"></div>
<div class="content left"></div>
<div class="content right"></div>

CSS

*{
  height:100%;
  width:100%;
  margin:0;
} /* instead of HTML and BODY attributes */

.content{
  display:inline-block;
  margin-right:-4px; /*to margin left div with the right one!*/
  margin-top:-4px; /*to margin left and right divs with the top one!*/
}

.left{
  height:calc(100% - 200px); /*use calc(100% - "top div height" */
  width:50%; /*choose your own width*/
  background-color:red;
}

.right {
  height: calc(100% - 200px); /*use calc(100% - "top div height" */
  width:50%; /*choose your own width*/
  background-color:green;
}

.top{
  width:100%;
  height:200px;
  background-color:blue;
}

希望这可以帮到你! (详见http://codepen.io/utopy/pen/zcyti

答案 3 :(得分:0)

喜欢这个demo

只需将float: left;添加到LeftContent

即可

答案 4 :(得分:0)

我使用this question

的答案构建了我的答案
<style>
    html, body {
    margin: 0;
    padding: 0;
    height: 100%;
}
</style>

<div style="min-height:100%;height:100%;">
    <div id="TopContent" style="height: 100px; width: 100%; background-color: #CCDEBB;">
    </div>

    <div id="LeftContent" style="min-height:100%;width: 25%; border: 3px solid #DFE8F6;float:left">    
    </div>             

    <div id="RightContent" style="min-height:100%;border: 3px solid #b8cfee; width:72%;float:right">
    </div>
</div>

答案 5 :(得分:0)

目前,您的解决方案无效,这是因为网页documents呈现的方式。

目前,从您的HTML中,当前文档的高度如下:

100px (from TopContent)

+ 3px (from LeftContent)

+ 3px (from RightContent)

由于document不需要大于106px(基于内容),因此document元素不会呈现为更多。

您可以通过将body / html CSS属性设置为100%的高度来解决此问题。

使用以下CSS执行此操作:

body,html {
    height:100%;
}

此外,您还需要将容器div的高度设置为

<div style="height:100%;">

以下是您问题的示例JSFiddle

答案 6 :(得分:-2)

你应该使用jquery,在这个事件中设置div的高度

$(window).resize(function () {
 $('#LeftContent').css('height',$(window).height());
 $('#RightContent').css('height',$(window).height());
        });