searchiniz

Manuale di HTML

Appendice F

   Le tabelle

L'HTML e tutti i browser non vecchissimi offrono la possibilità di visualizzare tabelle. Una tabella è definita dal tag contenitore <TABLE>. All'interno della coppia di tag la tabella è definita da una serie di righe mediante il tag <TR>. Ogni riga consiste in una sequenza di celle definite dai tag <TD> e <TH> per indicare rispettivamente i dati e le intestazioni.
All'interno di una cella può essere utilizzato qualunque contenuto HTML, come paragrafi, liste, immagini, iframe ed altre tabelle. La tabella avrà forma rettangolare e con un numero di colonne pari al numero massimo di celle in ciascuna riga. Una cella può espandersi andando ad occupare anche più righe o colonne.

Ecco un esempio di tabella semplice:
Colonna 1Colonna 2
Elemento 11Elemento 12
Elemento 21Elemento 22

e questo è il codice che lo genera:

<TABLE border="3">
  <TR><TH>Colonna 1</TH><TH>Colonna 2</TH></TR>
  <TR><TD>Elemento 11</TD><TD>Elemento 12</TD></TR>
  <TR><TD>Elemento 21</TD><TD>Elemento 22</TD></TR>
</TABLE>


Alcuni programmatori web non chiudono i tag degli elementi interni alla tabella. La maggior parte dei browser è elastica nei confronti di questa pratica e consentono correttamente la visualizzazione della tabella, ma questo comportamento sarebbe da evitare perché può spesso indurre in errore.
Salvo diverse impostazioni le intestazioni appaiono in grassetto mentre i dati appaiono in testo normale.

Espansione per colonne
Una cella può espandersi su più colonne mediante l'attributo COLSPAN associato ai tag <TH> e <TD>. Il valore di questo attributo è il numero di colonne che verranno occupate.

Eccone un esempio:
RettangoloCerchio
xyCentroRaggio
125791008015
1445311210020

e questo è il codice che lo genera:

<TABLE border="3">
  <TR><TH colspan="2">Rettangolo</TH><TH colspan="3"><CENTER>Cerchio</CENTER></TH></TR>
  <TR><TH>x</TH><TH >y</TH><TH>Centro</TH><TH >Raggio</TH></TR>
  <TR><TD>125</TD><TD>79</TD><TD>100</TD><TD>80</TD><TD>15</TD></TR>
  <TR><TD>144</TD><TD>53</TD><TD>112</TD><TD>100</TD><TD>20</TD></TR>
</TABLE>


Espansione per righe
Una cella può espandersi anche su più righe, mediante l'attributo ROWSPAN associato ai tag <TH> e <TD>. Il valore di questo attributo è il numero di righe che verranno occupate. È importante, mentre si compilano le celle delle righe successive, ricordarsi delle caselle già occupate dalle righe superiori, che nelle nuove righe non esisteranno.

Eccone un esempio:
GruppoNazionalitàNumero
StudentiItaliani234
Francesi13
Spagnoli27
PersonaleItaliani14
Spagnoli7

e questo è il codice che lo genera:

<TABLE border="3">
  <TR><TH>Gruppo</TH><TH>Nazionalità</TH><TH>Numero</TH></TR>
  <TR><TD ROWSPAN="3">Studenti</TD><TD>Italiani</TD><TD>234</TD></TR>
  <TR><TD>Francesi</TD><TD>13</TD></TR>
  <TR><TD>Spagnoli</TD><TD>27</TD></TR>
  <TR><TD ROWSPAN="2">Personale</TD><TD>Italiani</TD><TD>14</TD></TR>
  <TR><TD>Spagnoli</TD><TD>7</TD></TR>
</TABLE>


Con un po' di fantasia e un minimo di attenzione è possibile combinare espansioni per righe e per colonne, ottenendo effetti grafici di maggiore effetto.


Larghezza delle tabelle
Il calcolo della larghezza di una tabella è un conteggio piuttosto complesso da parte del browser che esamina la larghezza delle diverse colonne. Lo standard HTML permette di specificare la larghezza delle colonne, ma non tutti i browser reagiscono allo stesso modo.
La larghezza complessiva della tabella può essere impostata utilizzando l'attributo WIDTH del tag <TABLE>. Il valore inserito specifica la larghezza in pixel o in percentuale della finestra del browser.
La larghezza di una colonna è determinata dalla cella di dimensioni maggiori, la cui larghezza può essere influenzata dal contenuto della cella stessa, soprattutto se questo contenuto è una immagine o un'altra tabella. La larghezza di una cella può essere espresso esplicitamente mediante l'attributo WIDTH del tag <TD>.
Ecco qualche semplice esempio:
RegioneCapoluogo
LazioRoma
PiemonteTorino
ToscanaFirenze
CampaniaNapoli

e questo è il codice che lo genera:

<TABLE border="3" width="50%">
  <TR><TH width="50%">Regione</TH><TH width="50%">Capoluogo</TH></TR>
  <TR><TD>Lazio</TD><TD>Roma</TD></TR>
  <TR><TD>Piemonte</TD><TD>Torino</TD></TR>
  <TR><TD>Toscana</TD><TD>Firenze</TD></TR>
  <TR><TD>Campania</TD><TD>Napoli</TD></TR>
</TABLE>


La dimensione delle colonne al 50% ciascuna è impostata nella prima riga, nel tag <TH>, le righe successive ne ereditano la larghezza, adeguandosi.
Possiamo notare che allargando e restringendo la finestra del browser, la tabella continua ad occupare metà della larghezza.

RegioneCapoluogo
LazioRoma
PiemonteTorino
ToscanaFirenze
CampaniaNapoli

e questo è il codice che lo genera:

<TABLE border="3" width="250">
  <TR><TH width="40%">Regione</TH><TH width="60%">Capoluogo</TH></TR>
  <TR><TD>Lazio</TD><TD>Roma</TD></TR>
  <TR><TD>Piemonte</TD><TD>Torino</TD></TR>
  <TR><TD>Toscana</TD><TD>Firenze</TD></TR>
  <TR><TD>Campania</TD><TD>Napoli</TD></TR>
</TABLE>


Abbiamo fissato la larghezza della tabella a 250 punti e le colonne al 40% e 60% rispettivamente. Anche ridimensionando la finestra del browser la tabella rimane delle stesse dimensioni.


Celle vuote
Può capitare che una tabella venga costruita a partire da un file di dati e qualche cella può non contenere alcun dato. Lo standard HTML visualizza la cella con una superficie rialzata e senza bordi piuttosto che come una casella vuota. Ciò può sembrare sgradevole alla vista, come nell'esempio che segue.
IstruzioneFunzioneNote
strcmpconfronta due stringhe
stricmpconfronta due stringhe trascurando i maiuscoli/minuscoliNon ANSI
strcopycopia una stringa in un'altra
strlenfornisce la lunghezza di una stringa

Sarebbe bene mettere un trattino o un carattere simile in quelle posizioni, ma comunque è una operazione artificiosa. Lo standard HTML 3.2 suggerisce di mettere nella cella il carattere di "spazio non interrompente" codificato con &nbsp;. Ecco lo stesso esempio con il simbolo dello spazio nelle caselle vuote.
IstruzioneFunzioneNote
strcmpconfronta due stringhe 
stricmpconfronta due stringhe trascurando i maiuscoli/minuscoliNon ANSI
strcopycopia una stringa in un'altra 
strlenfornisce la lunghezza di una stringa 


Proprietà di righe e colonne
Il tag <TR> ha diversi attributi che permettono un certo controllo sulle proprietà delle righe di una tabella. Sfortunatamente non c'è modo di specificare le proprietà di una colonna di tabella; questa utile caratteristica è stata introdotta con HTML 3.0, ma non è stata accettata da nessun browser. Il controllo delle proprietà di una colonna può essere ottenuto, pazientemente, impostando le proprietà richieste separatamente a tutte le celle della determinata colonna.


Tipi di carattere
Potrebbe essere necessario utilizzare un carattere diverso per il testo inserito all'interno di una tabella. Non è possibile inserire la tabella nel tag <FONT> perché questo si riferisce solo ad elementi di testo. Lo stesso discorso vale per il tag <BASEFONT>. L'unico modo per cambiare il tipo di carattere in una tabella è quello di cambiare pazientemente il carattere in ciascuna casella della tabella. In alternativa è possibile impostare il tipo di carattere da utilizzare nelle celle tramite i fogli di stile, e per questo facciamo riferimento all'apposita guida sull'argomento.


Annidamento di tabelle
All'interno di una cella è possibile inserire quasi qualunque contenuto di tipo HTML, inclusa un'altra tabella. L'annidamento di tabelle dentro altre celle è una pratica molto sfruttata per ottenere effetti grafici avanzati e presentazioni più complesse.
L'esempio che segue mostra un banale inserimento di una tabella all'interno di un'altra.
Casella 11 Casella 12
Casella 21
Casella 2211 Casella 2212
Casella 2221 Casella 2222


Browser
Opera e Mosaic non richiedono l'uso di &nbsp; all'interno di celle vuote. Mosaic sembra avere problemi con l'attributo cellspacing="0". Tutti i browser visualizzano il testo nelle tabelle con lo stesso tipo di caratteri del testo normale. Le vecchie versioni di Netscape non sono in grado di visualizzare correttamente e tabelle annidate.


Vedi anche i tag <CAPTION>, <TABLE>, <TD>, <TH> e <TR>.


searchfine

Guida realizzata da   Michele Ferrara  ( © )  




Privacy Policy - Personalizza tracciamento pubblicitario