Vogliamo ricordare, innanzitutto, che HTML è un linguaggio di marcatura, con tendenze semantiche? Ciò significa che si occupa di DESCRIVERE il contenuto, non fornire ad esso una rappresentazione grafica.
Quindi, la tua struttura di markup dovrà piuttosto rispecchiare il SIGNIFICATO dei dati contenuti nella cella in questione. Per la 'grafica' di quella benedetta porzione di tabella userai i CSS.
Facciamo finta che la tua tabella contenga il prezziario di un fruttivendolo, quindi con due colonne, una per il nome del prodotto e l'altro per il prezzo. Avrai, pertanto, una celletta simile:
Facciamo finta che esso sia il prezzo più basso di tutto il listino, pertanto vuoi evidenziarlo visivamente, attribuendo alla cella uno sfondo appariscente. Innanzitutto, identificherai quella cella a livello di significato:
codice:
<td id="prezzoPiuBasso">2,00</td>
Nel CSS, poi, dirai semplicemente qualcosa del genere:
codice:
#prezzoPiuBasso
{
background-image:url('sfondo.gif');
}
Così facendo, il tuo HTML rimarrà bello e pulito, coerente alle sue funzioni, mentre gli attributi grafici (come background) verranno relegati all'esterno, nel CSS, appunto.