我试图在ASP.NET中呈现一个树视图,如下所示(JSFiddle
here
)
<table>
<colgroup>
<col width="20" span="2" />
<col width="*" /> // removing this width doesn't change anything
<col width="20" />
</colgroup>
<tr>
<td colspan="3">Top-level element</td>
<td>(checkbox)</td>
</tr>
<tr>
<td>(spacer)</td>
<td colspan="2">Mid-level element</td>
<td>(checkbox)</td>
</tr>
<tr>
<td>(spacer)</td>
<td>(spacer)</td>
<td colspan="1">Bottom</td>
<td>(checkbox)</td>
</tr>
</table>
哪里
(spacer)
是一个20像素宽的单元格,其中有树线,并且
(checkbox)
是一个复选框,我希望所有复选框都在右侧列中对齐。
在IE8中,正如我所期望的那样
*
-宽度
col
,用间隔单元格跨越,扩展到足以容纳跨越单元格中最长的项目。
| Top-level element | [] |
| . | Mid-level element | [] |
| . | . |Bottom | [] |
在IE7中,它无法正确渲染。*-宽度
科尔
只扩展到足以容纳倒数第二列中的细胞,而不是那些横跨其中的细胞,其他细胞分裂成多行。
| Top-level | [] |
| element | |
| . | Mid-level | [] |
| | element | |
| . | . | Bottom | [] |
有没有一种方法可以让IE7正确地布置这个表,同时保持表的宽度动态?(即,不给倒数第二列或表格本身一个固定的宽度。)
或者,有没有一种方法可以使用div而不是表来获得这种动态大小?
其他几点:
-
设置单独的单元格宽度不起作用——IE7似乎忽略了它们,这导致树行都不一致。
-
背景
table-layout: fixed
修正了对齐,但在IE7中(同样,不是在IE8中),它使表的宽度达到100%。