It appears that the solution provided by Sheepy may seem a bit confusing at first. However, if you are determined to have the TD adjust with the inner DIV, JavaScript will be necessary...
For instance, let's consider this table cell:
<td rowspan="4" id="tdwrap"> <div id="divwrap">...</div></td>
You can utilize the following JavaScript functions:
// Set the cell width to match its inner div width (in pixels)
$('#tdwrap').width($('#divwrap').width());
// Set the inner div width to its parent cell width (in pixels)
$('#divwrap').width($('#tdwrap').width());
Then, adjust the width of the div like so:
#divwrap {
width: 30%;
}
This approach allows the cell width to adapt to the inner div's width, which is relative to its parent cell's width! :p
See an example here: http://jsfiddle.net/william/S8Bne/89/
Note that jQuery has been used in the code snippet.
Does this align with what you were looking for?