请解释奇怪的HTML表行跨行为

Tom*_*Tom 4 html html-table

请考虑以下HTML表定义.

<table>
 <tbody>
  <tr>
   <td rowspan='2'>A</td>
   <td>2</td>
   <td rowspan='2'>B</td>
  </tr>
  <tr>
   <td rowspan='2'>C</td>
  </tr>
  <tr>
   <td>1</td>
   <td>3</td>
  </tr>
 </tbody>
</table>
Run Code Online (Sandbox Code Playgroud)

我希望桌子看起来像:

+---+---+---+
| A | 2 | B |
|   +---+   |
|   | C |   |
+---+   +---+
| 1 |   | 3 |
+---+---+---+
Run Code Online (Sandbox Code Playgroud)

但在Firefox,IE8和Chrome中,表格呈现如下:

+---+---+---+
| A | 2 | B |
+---+---+---+
| 1 | C | 3 |
+---+---+---+
Run Code Online (Sandbox Code Playgroud)

如果我向表中添加另一列,如下所示:

<table>
 <tbody>
  <tr>
   <td>a</td>
   <td rowspan='2'>A</td>
   <td>2</td>
   <td rowspan='2'>B</td>
  </tr>
  <tr>
   <td>b</td>
   <td rowspan='2'>C</td>
  </tr>
  <tr>
   <td>c</td>
   <td>1</td>
   <td>3</td>
  </tr>
 </tbody>
</table>
Run Code Online (Sandbox Code Playgroud)

...我得到以下内容,这更像是我想要的.

+---+---+---+---+
| a | A | 2 | B |
+---+   +---+   |
| b |   | C |   |
+---+---+   +---+
| c | 1 |   | 3 |
+---+---+---+---+
Run Code Online (Sandbox Code Playgroud)

问题:

  1. 浏览器是否正常运行?如果是这样,为什么在上面给出的第一个HTML片段的情况下,表格会非直观地崩溃?

  2. 是否有任何有效的HTML/css会强制表格按照我的意图显示?

Has*_*kus 5

我认为这实际上有效......你的细胞高度不固定,所以好像它不起作用.但如果你这样尝试:

<table border="1">
<tr>
    <td height="50px" rowspan="2">A</td>
    <td>2</td>
    <td rowspan="2">B</td>
</tr>
<tr>
    <td rowspan="2">C</td>
</tr>
<tr>
    <td>1</td>>
    <td>3</td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)

你会看到表的行为符合你的要求:

带有边框的表格结果http://img8.myimg.de/Bildschirmfoto148e98_thumb.jpg

因此,如果您希望您的表格看起来像您所解释的那样,我认为您需要做的就是在css中定义单元格高度,或者像上面描述的那样.