From what I understand from the W3C classifications is that <table>
s are meant for displaying data 'only'.
Based on that I found it a lot easier to create a <div>
with the backgrounds and all that and have a table with data floating over it using position: absolute;
and background: transparent;
...
It works on Chrome, Internet Explorer (6 and later) and Mozilla Firefox (2 and later).
Margins are used (or meant anyways) to create a spacer between container elements, like <table>
, <div>
and <form>
, not <tr>
, <td>
, <span>
or <input>
. Using it for anything other than container elements will keep you busy adjusting your website for future browser updates.