Prima di sbattere la testa sui muri, ti consiglio di passare dai validatori:
validatore HTML
validatore CSS
Nel tuo caso avresti gia` trovato che
width: 100;
non ha significato in molti browser (manca l'unita` di misura).
Anche il codice HTML contiene elementi non innestati correttamente. A quel punto non e` prevedibile come i browser interpretino i CSS relativi.
Nella tua marcatura, mancano alcuni elementi, che servono per agevolare la formattazione:
<col> e/o <colgroup>, da inserire dopo il <table> e prima del primo <tr>.
La formattazione puoi applicarla solo a tali elementi, e poi la tabella dovrebbe venir formattata in modo corretto senza dover inserite le classi per ogni <td>.
Comunque mi par di capire che:
1. Il primo elemento contiene un'immagine; le immagini sono definite in px, quindi la cosa piu` semplice e` definirne le dimensioni in px.
2. Vuoi che le celle siano sempre inserite, anche se non contengono nulla: per questo i CSS hanno l'attributo empty-cells, che ti consiglio di usare.
3. Di solito e` complicato mescolare formattazione in px e in % (non conosci a priori la larghezza del contenitore). Nel tuo caso puoi definire le larghezze di tutti i campi in px, oppure puoi definire i campi con scritte in em, ed i campi con immagini in px.
L'altezza andrebbe definita in em, con eventualmente un min-height in px (per farci stare l'immagine in caso di caratteri piccoli).

Rispondi quotando