有没有更优雅的解决方案来实现与这个相同的效果?
我已经编写了以下代码:
到目前为止,我能够让它工作的唯一方法是在第一个表格内嵌套另一个表格。虽然这不是很理想,因为我只想要一个表格,而且还需要大量额外的CSS来匹配第一个表格的边框,而不增加单元格(
我发现的唯一另一种改变一个单元格的宽度而不影响列中其他单元格的方法是使用
那么,有没有办法只使用一个表格,没有额外的
我已经编写了以下代码:
<!DOCTYPE html>
<html>
<head>
<title>Table Test</title>
<style type="text/css">
table { border-collapse: collapse; }
td { border: solid 1px; }
td.nest { padding: 0px; }
td.nest table td { border-width: 0px 1px; }
td.nest table td:first-child { border-left: none; }
td.nest table td:last-child { border-right: none; }
</style>
</head>
<body>
<table>
<colgroup>
<col style="width: 3em;"/>
<col style="width: 6em;"/>
<col style="width: 9em;"/>
</colgroup>
<tr><td>1</td><td>2</td><td>3</td></tr>
<tr><!-- Somehow get rid of the nested table and keep just the tds -->
<td class="nest" colspan="3">
<table>
<tr>
<td style="width: 4em;">1</td>
<td style="width: 6em;">2</td>
<td style="width: 8em;">3</td>
</tr>
</table>
</td>
</tr>
<tr><td>1</td><td>2</td><td>3</td></tr>
</table>
</body>
</html>
到目前为止,我能够让它工作的唯一方法是在第一个表格内嵌套另一个表格。虽然这不是很理想,因为我只想要一个表格,而且还需要大量额外的CSS来匹配第一个表格的边框,而不增加单元格(
colspan="3"
)的大小。我想用一个普通的<tr>
替换嵌套的表格,里面有三个<td>
。我发现的唯一另一种改变一个单元格的宽度而不影响列中其他单元格的方法是使用
position: absolute;
,但是这样会使行中的下一个单元格向左移动调整后的单元格的宽度,所以这并不完全可行。而且很难把宽度调整得恰到好处。那么,有没有办法只使用一个表格,没有额外的
<div>
等,只用简单的CSS就能达到相同的效果呢?这个例子应该只有一个<table>
,九个<td>
,没有colspan=
。如果有纯CSS解决方案,它应该能够处理任意宽度,只要它们加起来等于原始宽度。
colspan
,因为表格可能非常大;我需要很多列和计算才能使其正确显示。想象一下在一个10列100行的表格上这样做。我事先不知道每个单元格的宽度,只知道可以覆盖默认宽度。另一个优点是我可以一次性写出整个表格,而不是获取每一行,计算我需要的列数并对所有单元格进行colspan
操作。我甚至可以使用table-layout: fixed;
。 - CJ Dennis