For padding there is for sure. I think you just use padding: 5px; <- or something like this. You can even be more specific and do padding-top: 5px;
Well, the equivilant of cellpadding="0" cellspacing="0", there's table { border-collapse: collapse; } The default value for border-collapse is "seperate" which makes borders. If you have borders (seperate) and have cells you don't want to show because they're empty <td></td>, set that whole table to empty-cells: hide; The default is "show" meaning their borders would get rendered. Otherwise, to set borders, you can say td { border: 1px solid whatevercolor; } although what I end up doing is setting only borders for two sides and the table itself, which looks better. Padding is added to the td itself (td {padding: 5px;}), while increasing the spacve between them is increasing the width of the borders. I'm not sure what you'd do if you truly need transparent space between the cells-- I normally have a solid background colour and the borders are the same colour, so it looks like "cellspacing" but it isn't, really, if there's an image in the background of the table or behind the table.
The css equivalent of cell-spacing is border-spacing. The trouble is, IE doesn't support it. You'll have to stay with the html attribute for now. cheers, gary