2012-01-19 109 views
1

的高度我有一个表,其中所述细胞具有固定的高度。在该表中我有有一个固定的高度,以及一个div,如果该高度超过小区的高度,我想它溢出细胞,而细胞高度上延伸(不是一个布局,我通常会想建立,但这是此刻的一个起点)。固定高度的div而不延伸细胞

例如:

<table> 
    <tr> 
     <td> 
      <div> 
       12345 
      </div> 
     </td> 
     <td></td> 
    </tr> 
</table> 

table 
{ 
    width: 90%; 
    margin: 10px; 
} 

td 
{ 
    width: 50%; 
    border: 1px solid blue; 
    padding: 5px; 
    height: 100px; 
    vertical-align: top; 
} 

div 
{ 
    height: 250px; 
    width: 75%; 
    border: 1px solid red; 
} 

这导致表单元格的高度根据在div高度延伸。

我尝试添加position: absolute到div,并position: absolute到TD,并没有在Chrome和IE中招(见本jsFiddle example):

然而,在Firefox中position: absolute引起的div宽度为涉及窗口宽度的代替单元宽度:

这怎么解决?我在寻找比position: absolute其他任何一种解决方案,或一种方式来获得的股利宽度就在FF。

+0

请问你为什么使用表格布局?我得到一个头痛刚从看着你的问题':P' –

+0

我正在现有页面上。我不会在新的版面中使用这样的版面,但现在改变它需要很长的时间(这是非常复杂和难看的)。 – Amit

回答

1

你可以实现你需要使用什么表格单元格内的额外的div:

CSS:

table 
{ 
    width: 90%; 
    margin: 10px; 
} 

tr 
{ 
    height: 100px; 
} 
td 
{ 
    width: 50%; 
    border: 1px solid blue; 
    padding: 5px; 
    height: 100px; 
    vertical-align: top; 
    position: relative; 
} 

div.outer { 
    height:100px; 
    max-height: 100px; 
    overflow: visible; 
    width: 100%; 
} 

div.inner 
{ 
    height: 250px; 
    width: 75%; 
    border: 1px solid red; 
} 

HTML:

<table> 
    <tr> 
     <td> 
      <div class="outer"> 
       <div class="inner"> 
        12345 
       </div> 
      </div> 
     </td> 
     <td></td> 
    </tr> 
</table> 

我叉你的jsfiddle证明:http://jsfiddle.net/dyes5/1/