Is there a more elegant solution to achieve the same effect?

The code I have is the following:
<!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>
<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>
The only way I can work so far is to attach another table to the first. I don’t really like it, because ideally I only need one table, and there is a lot of extra CSS to fit the borders of the first table without adding to the cell size ( colspan="3"). I want to be able to replace a nested table with a regular one <tr>with three <td>in it.
, , , , position: absolute;, , . .
, , , <div> s .. CSS? <table>, <td> no colspan= s. CSS, . , .