在用户回帖的地方用table布局,效果是:
----------------------------------------------------------------------------------
|    D区 |这里显示的是标题等信息(高度固定,因为高度都是一样的)A区               |
|        |————————————————————————————————————
|  这里  |                         B区                                            |
|  显示  |这里显示回复的信息(不能固定高度,因为内容是可变的,而且变化可能很大)  |
|  用户  |                                                                        |
|  信息  |________________________________________________________________________|
|        |用户个人签名(固定高度)               C区                              |
|----------------------------------------------------------------------------------这里我的A、C区的高度是定好的比如25px,B区没定设置高度为100%,但现在有一个问题,如果用户发表的留意内容比较少,这时会因为D区显示的信息比较多,所以整个表格的高度就是D的高度,问题来了,原来对AC设定的高度都不管用了,都变高了,而B并没有占满剩下的空间。如何布局才能使B的高度可以变化,而AC的高度固定不变呢?哪怕用户就输入了一个字符,也要保证AC的高度不变而只是调整B的高度?搞了好长时间就是搞不定,还望各位帮忙。谢谢了

解决方案 »

  1.   

    是不是D区也是一个 <td></td> 能不能不给它设置高 而是在它里面加一个table  设置table的高(按一般正常需要的高度) 然后设置A C的高  B的就不用设置了
      

  2.   

    b区的高度不要定,d区内容水平、垂直居中就没事了,a、c都设置25px。
      

  3.   

    AC写固定高度,B不写高度就行了,它就会自动伸展
      

  4.   

    实际上
    "b区的高度不要定,d区内容水平、垂直居中就没事了,a、c都设置25px。 "
    这种处理方式是错误的.
    由于表格的高度并没有设定,因此,b区即使高度没有设定,但它实际上是有一个默认值的,如果没有内容则高度为0,有内容时大概在18左右.而当D区由于输入内容太多导致撑高了高度时,这是表格的被动行为,但不代表高度撑高之后表格的高度也跟着高了,表格被默认的高度仍然没有变化.但实际上,由于D区确实被撑高了,此时为了维持整个表格的完整,右侧的各行将被迫根据自身之间的比例分配意外的高度,因此,虽然我们设定了A/C区的高度,但仍然不起作用.所以,这种情况最理想的处理办法是:仔细计算D区出现用户信息之后的高度(最大),扣除A/C区的高度之后,将B区显式的设定高度.如此,由于D区的内容不可能再高,也就不再会出现撑高的行为;而B区由于设置了显式的高度,所以可以维护A/C区的默认高度.而当B区的内容增加时,将只会撑大B区的高度,迫使D区的高度随之增高(但D区增高不影响其他),A/C区高度不会产生变化.
      

  5.   

    厉害啊 谢谢你
    我刚才搞了搞csdn的,它里面也是用table布局,也是设定了AC的高度,中间的B没有设置,在火狐中运行是显示的效果很好,到ie中就和原来一样了,但csdn的网站在ie里显示也是正常的,这我就纳闷了………………!