只是想知道为什么以下HTML不起作用。基本上,当我在表行上设置rowspan时,IE似乎忽略了我设置的高度:
<table border="1" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td height="20">A</td>
<td align="center" rowspan="3">
Test
<br />Test
<br />Test
<br />Test
<br />Test
<br />Test
<br />Test
</td>
</tr>
<tr>
<td height="20">B</td>
</tr>
<tr>
<td>C</td>
</tr>
</table>
有谁知道它为什么会这样做?
答案 0 :(得分:2)
我相信这里发生的事情是,IE将扩展剩余可用空间,以便填充跨越所有三行的第一个TR中第二个TD的高度。
考虑这个例子:
<table border="1" cellpadding="0" cellspacing="0" width="100%">
<tr height="30px">
<td>
A
</td>
<td align="center" rowspan="3">
Test
<br />Test
<br />Test
<br />Test
<br />Test
<br />Test
<br />Test
</td>
</tr>
<tr>
<td height="60px">
B
</td>
</tr>
<tr>
<td height="100%">
C
</td>
</tr>
</table>
在这里,我们看到IE渲染正确,因为60px + 30px =&lt;第二列的总高度,所以我们告诉最终的td为100%的高度,以便占用剩余的空间,因此IE不会在行中传播它。
我尝试了几个不同的测试用例,似乎证明了这一点。首先承认我可能是错的。