最大高度内的css max-height

时间:2012-11-02 15:25:22

标签: html css

我正在尝试编写聊天页面但是我对div的大小调整有问题:/ 我有这样的结构:

<div class="page">
  <div class="chat-holder">
    <div class="chat-text">
    </div>
  </div>
</div>

和页面类是(比如屏幕的宽度和高度,所以它是

.page {
  width: 100%;
  height: 100%;
}

聊天持有人我希望宽度为740px,高度应该是任何高度但不超过浏览器高度和背景白色以及聊天区域周围20px填充(到目前为止我试过这个): / p>

.chat-holder {
  background: #fff;
  width: 740px;
  max-height: 100%;
  padding: 20px;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
}

现在我的聊天区域我希望在这个聊天室中有一个1px的黑色边框,如果聊天不大于浏览器减去40px填充,我希望它具有其中的文本大小。如果它更大,我希望它在里面滚动(到目前为止我试过这个)

.chat-text {
  width: 100%;
  max-height: 100%;
  border: 1px solid #000;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  overflow: auto;
}

但这不起作用,聊天文本div从聊天持有者中消失,因为我认为这是因为最大高度在最大高度内不起作用。我希望有一个关于这个问题的解决办法,因为我真的不想使用jQuery或其他东西来修复它。

提前谢谢

编辑:jsFiddle http://jsfiddle.net/KjX7s/2/

2 个答案:

答案 0 :(得分:3)

您必须设置高度以及最大高度:

.page {
  width: 100%;
  height: 100%;
}
.chat-holder {
  background: #fff;
  width: 740px;
  min-height: 20px;
  max-height: 100%;
  padding: 20px;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
}
.chat-text {
  width: 100%;
  min-height: 20px;
  max-height: 100%;
  border: 1px solid #000;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  overflow: auto;
}

请参阅小提琴:http://jsfiddle.net/KjX7s/14/

答案 1 :(得分:0)

添加

  overflow: auto;

.chat-holder内。

并使用CSS Calc()计算高度:

max-height: calc(100% - 41px);

http://jsfiddle.net/KjX7s/5/