2012-06-11 89 views
6

我想我试图做的这个模式将比问题本身更具描述性。是否可以交替使用rowspans?

+------------------------+-----------------------+ 
|      |      | 
+      +-----------------------+ 
|      |      | 
+------------------------+      + 
|      |      | 
+      +-----------------------+ 
|      |      | 
+------------------------+-----------------------+ 
|      |      | 
+------------------------+-----------------------+ 

正如你所看到的,我想创建一个2列的表,其中在某些时候它应该能够行跨度的一列,并在接下来的2行,最终对方。

我错过了一些明显的做法,或者一些高级的表格标签/属性?或者没有办法做到这一点使用表?

我知道有可能使用其他方式来实现,但表格是我感兴趣的,以及有什么问题。

参考: 有一些事情我已经尝试过,并没有成功 http://jsfiddle.net/dbtYk/

+0

呵呵,有趣的问题,在12年的HTML中从未想过这件事!我*认为*这是不可能的,但让我尝试一下...无论哪种方式,这可能更容易处理正常的块级元素。 –

+0

12年的HTML? o_O你需要刷新你的知识。使用属性'rowspan'和'colspan'你可以创建任何类型的表,甚至是一些非常有创意的表。 – micnic

回答

6

除非我已经错过了一些东西,here is an example根据您的jsfiddle

<table> 
    <tr style="height:20px;"> 
     <td rowspan="2">left</td> 
     <td>right</td> 
    </tr> 
    <tr style="height:20px;"> 
     <td rowspan="2">right</td> 
    </tr> 
    <tr style="height:20px;"> 
     <td rowspan="2">left</td> 
    </tr> 
    <tr style="height:20px;"> 
     <td>right</td> 
    </tr> 
    <tr> 
     <td>left</td> 
     <td>right</td> 
    </tr> 
</table> 

UPDATE

正如Cicada所指出的,上述遗憾在Chrome中不起作用。

UPDATE 2

正如所指出的Alohci,增加的高度使得它在铬工作。以上内容已经过修改,以反映这一情况,并附有new jsfiddle

+1

除非我错过了一些东西,否则您的解决方案无法正常工作(Chrome 19)。 –

+1

@Cicada - 我开始讨厌Chrome,就像我讨厌IE一样......为什么这些浏览器中的任何一个都不能以同样的方式工作!感谢您指出问题 – freefaller

+2

一旦您将表格行设置为高度,它就可以工作。 – Alohci

0

当然这是可能的:-)

<table border="yes"> 
    <tr> 
     <td rowspan="2">1</td> 
     <td>2</td> 
    </tr> 
    <tr> 
     <td rowspan="2">3</td> 
    </tr> 
    <tr> 
     <td rowspan="2">4</td> 
    </tr> 
    <tr> 
     <td>5</td> 
    </tr> 
    <tr> 
     <td>6</td> 
     <td>7</td> 
    </tr> 
</table> 

只跳过那些已经从前一行覆盖跨区细胞的细胞。

+1

呃... -2为什么? –