Well, I've been having some fun with this..
I found the CSS table declaration: empty-cells: hide;
and have tried appying this to the table and it works in that it gets rid of the borders for the empty cells. However, if you have applied a background color to the table cell then you get the color and not the border, which looks awful. As far as I can find out: CSS2.1 states explicity that the background color and border should be hidden. However, I have also found that IE7 and Firefox do not support empty-cells fully but they do 'almost' support CSS 2.0 which doesn't state explicity what should be hidden for empty cells. In IE7 and Firefox if you set the empty-cells to hidden you get no borders but you do get the background color. Why partially support a property? When will it be supported?
I can hear the phone call to the client in my head, "what are those blocks of color at the left of the table?", "errrm, sorry, but you'll have to put up with those little blocks of color at the start of the table until Microsoft can get around to supporting CSS 2.1."
In frustration I've been trying to build an xsl layout without a table, using <DIV> tags and f'loat' with CSS but it's not easy either. But if I get something useful together I'll post it here.
Otherwise I'm jumping in the Thames.
Angus