1

我正在尝试编写一个聊天页面,但我遇到了 div 大小的问题:/ 我有这样的结构:

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

并且页面类是(假设屏幕的宽度和高度,所以它是

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

我希望聊天持有者的宽度为 740 像素,高度应该是任意高度,但不超过浏览器高度和背景白色,聊天区域周围有 20 像素的填充(到目前为止,我试过这个):

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

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

.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/

4

2 回答 2

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/

于 2012-11-02T15:59:31.423 回答
0

添加

  overflow: auto;

里面.chat-holder

并放置一个使用 CSS Calc() 计算的高度:

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

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

于 2012-11-02T15:58:33.343 回答