Où trouver un tutorial sur les tableaux en Html ?
L'auteur vous propose les chapitres "Les tableaux" et "Les cellules des tableaux" dans "Apprendre le langage Html".
Comment faire apparaître une cellule vide ?
Un cellule vide a pour conséquence de rompre les bordures et dénaturer le tableau.

Mois Température moyenne

Janvier

Février


Un moyen simple pour éviter ceci est de placer le caractère spécial de l'espace insécable dans la cellule. On utilise donc <TD>&nbsp;</TD> dans la cellule vide.

Si vous avez besoin que votre cellule soit plus petite qu'un espace, vous pouvez aussi utiliser <EMBED HEIGHT="1" WIDTH="1" ALT="."></EMBED>.

Les balises de fin de cellule et de fin de ligne sont-elles indispensables ?
"J'ai fait un tableau sans utiliser ces balises </TR> et </TD> et cela fonctionne sans elles". Si vous n'avez qu'un seul tableau dans votre page, il ne doit pas y avoir de problèmes. Par contre, si vous avez plusieurs tableaux dans la même page, vous allez au devant de pas mal de problèmes. Alors prenez l'habitude de les utiliser.
Comment diviser un tableau en groupes de colonnes ? A quoi cela peut-il servir ?
Pour diviser un tableau en groupes de colonnes, tapez après la balise <TABLE>, <COLGROUP SPAN=x> où x est le nombre de colonnes groupées (valeur par défaut égale à 1) et répétez ceci pour chaque groupe de colonnes à définir.

Un exemple n'est peut-être pas inutile ! Soit un tableau de 3 colonnes :
<TABLE>
<COLGROUP align=left>
<COLGROUP span=2 align=right>
<TR> etc.
La première colonne sera alignée à gauche et les deux autres colonnes le seront à droite.

On pourra ainsi par des feuilles de style définir un formatage pour tout un groupe de colonnes (plutôt que de devoir répéter le formatage pour chaque cellule comme en Html classique) et également définir la présence ou l'absence de bordures pour ce groupe de colonnes (voir plus loin dans cette FAQ).

Cette balise colgroup n'est implémentée que sous Explorer 4 et plus, pas sous Netscape.

Comment diviser un tableau en sections horizontales ? A quoi cela peut-il servir ?
Pour diviser un tableau en groupes de lignes, tapez après la balise <TABLE>, après les balises de groupes de colonnes et avant la première balise <TR>,
    • <THEAD attributs éventuels> (en tête), <TBODY attributs éventuels> (corps) ou <TFOOT attributs éventuels> (pied).
    • le contenu de la section.
    • les balises de fin </THEAD>, </TBODY> ou </TFOOT>.

Théoriquement, il faut au moins une balise TBODY dans chaque tableau, mais il est possible d'en créer plusieurs. On ne peut par contre avoir qu'un seul THEAD et un TFOOT.

Un exemple n'est peut-être pas inutile ! Soit un tableau de 3 lignes :
<TABLE>
<TBODY attributs>
<TR>Ligne 1</TR>
<TR>Ligne 2</TR>
</TBODY>
<TBODY attributs>
<TR>Ligne 3<TR>
</TBODY>
</TABLE> 

On pourra ainsi par des feuilles de style définir un formatage pour tout un groupe de lignes et également définir la présence ou l'absence de bordures pour ce groupe de lignes (voir plus loin dans cette FAQ).

Cette balise n'est implémentée que sous Explorer 4 et plus, pas sous Netscape.

Quand on affiche les bordures, faut-il toujours afficher toutes les bordures ?
Le Html 4 permet de choisir les côtés extérieurs du tableau auxquels on décide d'affecter une bordure.

Dans la balise TABLE, on ajoute les attributs BORDER FRAME=valeur.
Exemple : <TABLE border frame=void>.
Valeur peut être :

    void aucune bordure extérieure
    above bordure unique en haut
    below bordure unique en bas
    hsides bordures sur les bords supérieur et inférieur
    vsides bordures sur les côtés gauche et droit
    rhs bordure unique sur le côté droit
    lhs bordure unique sur le côté gauche
    box ou border bordure de tous les côtés (par défaut)

Cela ne fonctionne que sous Explorer 4 et plus. Netscape 4 continue à afficher toutes les bordures.

Quand on affiche les bordures, faut-il toujours afficher toutes les bordures (suite) ?
Le Html 4 permet aussi de spécifier les bordures intérieures à afficher.

Dans la balise TABLE, on ajoute les attributs BORDER RULES=valeur.
Exemple : <TABLE border rules=none>.
Valeur peut être :

    none aucun trait intérieur
    rows trait horizontal entre chaque ligne du tableau
    cols trait vertical entre chaque colonne du tableau
    groups traits entre les groupes de colonnes et les sections horizontales
    all traits entre chaque ligne et colonne du tableau (par défaut)

Cela ne fonctionne que sous Explorer 4 et plus. Netscape 4 continue à afficher toutes les bordures.

Est-il possible de charger un fichier Html dans un tableau ?
Non, il n'est pas possible de charger un fichier Html dans un tableau en utilisant le langage Html. On peut cependant contourner la difficulté en incluant un frame flottant dans une cellule de tableau (la balise IFRAME). Mais cela ne fonctionnera que sous Explorer.
Comment changer la couleur de la bordure d'un tableau ?
Netscape à partir de la version 4 et Explorer à partir de la version 3, permettent d'affecter une couleur aux bordures d'un tableau. On ajoute BORDERCOLOR="#rrvvbb" à la balise <TABLE> : par exemple <TABLE border=x bordercolor="#000080">

Sous Explorer 4 et plus uniquement, on peut definir une partie plus claire et une partie plus sombre à la bordure. L'attribut BORDERCOLORLIGHT="#rrvvbb" affecte une couleur (plus claire) aux bordures supérieure et gauche du tableau. Pour sa part, l'attribut BORDERCOLORDARK="#rrvvbb" affecte une couleur (plus foncée) aux bordures inférieure et droite du tableau. Exemple :
<TABLE border=x bordercolorlight="#00ff00" bordercolordark="#189234">

Comment insérer une image d'arrière-plan ?
Il faut ajouter l'attribut BACKGROUND="image.gif" dans la balise <TABLE> pour insérer l'image qui constituera le fond du tableau ou dans la balise <TD> pour insérer l'image dans le fond d'une cellule.

Lorsque l'on définit une image d'arrière-plan pour l'ensemble du tableau, Explorer n'utilise qu'une image qui tapisse ainsi le fond de tout le tableau tandis que Netscape recopie l'image dans chacune des cellules du tableau.

Peut-on contrôler les sauts de ligne dans une cellule ?
Par défaut, le navigateur coupe automatiquement les lignes du texte selon la largeur du tableau. Pour obliger le navigateur à garder tout le texte sur une seule ligne, on utilise l'attribut NOWRAP. Par exemple :
<TD NOWRAP>Ne coupez pas cette ligne</TD>.