2013-03-16 51 views
1

我想用跨两行的单元格制作表格。第二行的高度必须尽可能小。例如:如果存在rowspan,Chrome将不尊重行高

HTML:

<table> 
    <tr id="row-1"> 
     <td> 
      1st row 
     </td> 
     <td rowspan="2"> 
      a <br /> 
      a <br /> 
      a <br /> 
      a <br /> 
      a <br /> 
      a <br /> 
      a <br /> 
      a <br /> 
     </td> 
    </tr> 
    <tr id="row-2"> 
     <td> 
      2nd row 
     </td> 
    </tr> 
</table> 

CSS:

td 
{ 
    border: 1px solid black; 
} 
#row-2 
{ 
    height: 1px; 
} 

http://jsfiddle.net/xp7vz/

它适用于火狐(19.0.2)。在铬(25.0.1364.160)上,最低高度的行是第一个!

编辑:http://code.google.com/p/chromium/issues/detail?id=78724

如何我CSS本事:问题是由这个错误引起的?目前我正在使用JS,将第一行的高度设置为等于行距单元的高度减去第二行的高度。

+0

我很好奇。你在用什么桌子? – Adam11 2013-03-17 02:22:08

+0

这只是一张描述一个小游戏项目的表格,例如:http://grinns-tale.wikia.com/wiki/Leprechaun_Hat。由于表格可以被其他的ajax加载页面,我希望它尽可能小 – 2013-03-17 10:04:18

+0

我喜欢你的js解决方案,但我假设你想确保它能正确显示那些没有启用它的人,对吗?你可以尝试把最后一个列在它自己的表中,并使其直接显示在f下方首先,但这仍然不是很恰当地使用表格。 – Adam11 2013-03-17 18:12:55

回答

3

发现:诀窍是将另一个表放入非跨行内容的表格的单元格中,从其他行中删除rowspan r单元格,并将外部和内部表格高度设置为100%。可怕但有效。

HTML:

<table id="outer"><tbody><tr> 
    <td> 
     <table id="inner"><tbody> 
      <tr id="row-1"> 
       <td>1st row</td> 
      </tr> 
      <tr id="row-2"> 
       <td>2nd row</td> 
      </tr> 
     </tbody></table> 
    </td> 
    <td> 
     a<br /> 
     a<br /> 
     a<br /> 
     a<br /> 
     a<br /> 
     a<br /> 
     a<br /> 
     a<br /> 
     a<br /> 
    </td> 
</tr></tbody></table> 

CSS:卢卡斯Malor

#row-2 
{ 
    height: 1px; 
} 
#outer, #inner 
{ 
    height:100%; 
} 

http://jsfiddle.net/xp7vz/3/

0

尝试position:fixed

它那种工作。 http://jsfiddle.net/43CEX/

我想一般要使用div的这种工作的,因为表本身通过自己的

更新成长

http://jsfiddle.net/h4Ycj/

或本http://jsfiddle.net/m7eqm/

+0

嗯......没有:-P是的,第二行高度适合其内容,但第一行高度不会填充剩余的桌面高度。我正在使用表格,因为我必须填写表格数据(除了具有rowspan的单元格外) – 2013-03-16 14:19:20

+0

因此您需要与原始表格相反。 – btevfik 2013-03-16 14:32:28

+0

确切地说,Firefox正确地呈现它(正确)。 – 2013-03-16 14:57:59

1

答案几乎工作。

它发生IE不尊重工作台高度= 100%:( 对我来说,解决办法很简单,我只设置以像素为单位的高度,因为我知道第一列的高度。