The width is actually redundant after the first row.
When I make my first row all <td style="width: 2em;"></td> and all the other rows just be <td></td>, it came out to 3877 bytes for an 18x18 table. There are no heights at all specified in there. The 2em is arbitrary. You could do 1em and probably be fine.
If you want specify heights, then put them on the tr element and leave them off the td elements. When I added style="height: 10px;" to all my tr elements, it increased the size to 4273. I don't like forcing heights, but it is really small if you don't. I'm not sure 10px is enough to enter their values, but I'll leave that to you. I'm just trying to save bytes.
This discussion post is outdated and has been archived. Please use the Community question forums and official documentation for the most current and accurate information.