GUIDEGRATUIT.COM

Apprenez à créer un site en HTML simplement et progressivement...
Accueil
Introduction importante
Le HTML c'est quoi ?
Notre projet
Equipez vous
Votre première page
Gérer le texte
Mise en page
Images
Tableaux
Liens
Couleurs
Formulaires
Hébergeurs de sites
Mise en ligne FTP
Frames
Autres cours
Résumé des balises
Le dico du site
Vos questions (F.A.Q.)
Le Forum
Liens utiles
Contact webmaster
Copyright
LES TABLEAUX
Présentation du cours :

Attention ! Attention ! Nous attaquons une partie un peu longue mais TRES importante ! Je vous demande un peu de sérieux et de ne pas sauter de phrases de ce cours sous pretexte qu'il est un peu long...

En effet, les tableaux sont extremement utile en HTML : ils permettent à la fois de présenter des données (pour l'instant c'est logique) mais aussi de mettre en page vos pages avec précision... Un exemple ? Cette page de cours contient pas mal de tableaux ! Mais vous allez voir...

La première chose à savoir est que la construction de tableaux en HTML est très logique, il existe un ensemble de balises pour chaque étape : l'ouverture du tableau, l'ouverture d'une ligne, d'une cellule... Un premier conseil donc : si vous devez faire un tableau compliqué, faites en un dessin sur papier avant de commencer.

Un dessin pour mieux comprendre :

Pour commencer notre cours nous allons prendre un exemple de tableau très simple et suivre chaque étape de sa création.
Le tableau présentera sur une première colonne trois types de fruits (pommes, cerises, fraises) et en face leur prix respectif au kg (10, 20, 45 oui les fraises ne sont pas données en cette saison :) ...). Il faudra également noter les titres des colonnes (fruits, prix). Le résultat devra ressembler à ce que vous pouvez voir à droite de ce texte.
Ce tableau est donc composé de 4 lignes et 2 colonnes.
Voici un dessin montrant ce que nous souhaitons obtenir au final :



Pour vous aider à comprendre plus simplement comment s'effectue la création du tableau, nous allons d'abord observer le résultat complet en code HTML puis l'expliquer.

<HTML>
<HEAD><TITLE>Essai de tableau</TITLE></HEAD>
<BODY>

<TABLE>
<TR><TD>Fruits</TD><TD>Prix</TD></TR>
<TR><TD>Pommes</TD><TD>10</TD></TR>
<TR><TD>Cerises</TD><TD>20</TD></TR>
<TR><TD>Fraises</TD><TD>45</TD></TR>
</TABLE>

</
BODY>
</HTML>

Voici le résultat en image (sans bordure pour le moment...) : cliquez ici.

Ce code vous fait peur ? Pas de panique ! C'est très simple et logique... Laissez déjà de coté le haut et la bas du code (séparé par un saut de ligne) qui correspond au balise de base de la création d'une page HTML (que vous devez déjà connaitre parfaitement) et passons directement au centre. qui contient le tableau en lui même.

La construction d'un tableau basique ?

Je vous rappelle que le code HTML se contruit de façon à ce que votre navigateur puisse l'interpréter en suivant ligne à ligne les commandes (dans le même sens que la lecture). Nous allons donc faire de même et "lire" le code source ci-dessus.

<TABLE> : ("TABLE" veut dire "tableau" en anglais) cette balise annonce au navigateur que l'on commence un tableau... Devinez maintenant tout seul la balise qui dira au navigateur que le tableau est fini ?............. eh oui : </TABLE> tout simplement. Continuons donc notre lecture.

<TR> : (abréviation de "Table Row" en anglais qui signifie "ligne de tableau") indique que nous commençons une ligne et </TR> indiquera plus tard la fin de la ligne.

<TD> : (abréviation de "Table Data" en anglais qui signifie "données de tableau") indique que nous ouvrons là une cellule, du même coup cette cellule sera une colonne du tableau. Puis nous y insérons comme texte "Fruits" et refermons la cellule par un </TD>. Nous ouvrons ensuite une autre cellule (qui sera donc une autre colonne) et y insérons "Prix".

Voilà ! Vous savez tout :) !!! Après il ne s'agit que de recopier le même schéma pour chaque ligne et de ne surtout pas oublier de finir par </table>

Un autre type de cellule pour les titres :

Nous avons parlé de <TD>votre texte</TD> pour insérer une cellule mais il existe également une autre forme de cellule à connaitre : la balise <TH> (abréviation de "Table Header" qui signifie "En tête de tableau").
Cette balise <TH> a exactement la même propriété que <TD> (créer une nouvelle cellule) mais, en plus de cela, elle passe automatiquement le texte contenu entre les balises <TH> et </TH> en gras et centré ! Idéal donc pour mettre en avant les en-têtes des tableaux et éviter d'écrire pour rien le code suivant <TD><CENTER><B>votre texte</B></CENTER></TD> qui aura le même effet (pour les têtes en l'air je rappelle que <B> sert à mettre en gras du texte et <CENTER> à le centrer) !

Petite précision au passage : vous pouvez créer un ensemble de balises <TH>votre texte</TH> n'importe où dans le tableau et pas seulement dans la partie haute en première ligne !

Assez de théorie ! Vous pensez avoir tout compris ? Très bien voici un petit exercice pour vérifier et commencer à appliquer le cours et illustrer la balise <TH>...

Ci-dessous j'ai écris le code d'un tableau contenant plusieurs données. Je vous demande d'essayer de compter le nombre de lignes et de colonnes mais également d'essayer de vous représenter mentalement le résultat visuel du tableau.

<HTML>
<HEAD><TITLE>Exercice</TITLE></HEAD>
<BODY>

<TABLE>
<TR><TH>Nom</TH><TH>Prénom</TH><TH>Fonction</TH><TH>Téléphone</TH></TR>
<TR><TD>Bond</TD><TD>James</TD><TD>Agent secret</TD><TD>06.24.45.51.45</TD></TR>
<TR><TD>Clark</TD><TD>Kent</TD><TD>Journaliste</TD><TD>555.55.42.52</TD></TR>
<TR><TD>Picasso</TD><TD>Pablo</TD><TD>Peintre</TD><TD>Non communiqué</TD></TR>
<TR><TD>Werber</TD><TD>Bernard</TD><TD>Ecrivain</TD><TD>Non communiqué</TD></TR>
</TABLE>

</
BODY>
</HTML>

Pour voir la solution cliquez ici, vous allez constater que l'on distingue clairement que les données sont dans un tableau mais que celui ci ne possède pas de bordures, ou plutôt pour être exact : il possède des bordures invisibles. Eh bien, c'est un très bon enchainement pour la suite...

Bordures de tableau :

Comme je le disais donc, en utilisant le code ci-dessous vous obtenez un tableau parfait mais transparent ! Pour définir la présence de bordure il vous faudra préciser une option dans la balise du tableau : <TABLE BORDER="1"> . L'option BORDER (Bordure en anglais) permet de rajouter une bordure définie en nombre de pixels.
Ainsi si l'on reprends l'exemple ci-dessus en ajoutant une bordure de 2 pixels le résultat sera le suivant : cliquez ici.
Vous constatez la presence maintenant la présence d'une bordure...

Fusionner des colonnes.

Observons notre exemple contenant la liste de nos correspondants... Le tableau est intéressant mais il lui manque un titre, par exemple un titre hyper original comme "liste de nos correspondants". Certes nous pourrions l'ajouter au dessus du tableau mais nous préférons l'incorporer dans le tableau. Pourquoi ? Euh... Je vous en pose des questions moi ??? Oui je n'ai pas trouvé mieux comme exercice et alors !!! Non mais...
Donc nous souhaitons en fait un résultat de ce type : cliquez ici.

Pour cela rien de plus simple mais observez et suivez bien le raisonnement... Nous utiliserons ci-dessous (notez au passage l'ajout de la bordure expliquée plus haut) :

<HTML>
<HEAD><TITLE>Exercice</TITLE></HEAD>
<BODY>

<TABLE BORDER="2">
<TR><TH COLSPAN="4">Liste de nos correspondants</TH></TR>
<TR><TH>Nom</TH><TH>Prénom</TH><TH>Fonction</TH><TH>Téléphone</TH></TR>
<TR><TD>Bond</TD><TD>James</TD><TD>Agent secret</TD><TD>06.24.45.51.45</TD></TR>
<TR><TD>Clark</TD><TD>Kent</TD><TD>Journaliste</TD><TD>555.55.42.52</TD></TR>
<TR><TD>Picasso</TD><TD>Pablo</TD><TD>Peintre</TD><TD>Non communiqué</TD></TR>
<TR><TD>Werber</TD><TD>Bernard</TD><TD>Ecrivain</TD><TD>Non communiqué</TD></TR>
</TABLE>

</BODY>
</HTML>


COLSPAN est donc l'option qui nous a permis de fusionner des colonnes ensemble(COLSPAN = est composé de "COL" pour "colonne" et SPAN qui signifie "couvrir" en anglais). <TH COLSPAN="4"> signifie donc que la cellule s'etendra sur 4 colonnes !
Puisque la cellule s'étend sur 4 colonnes il est donc évidemment inutile de rajouter d'autres cellules puisque notre tableau ne contient que 4 colonnes... On peut donc fermer la ligne avec </TR> et passer à la suivante...

Fusionner des lignes.

Fusionner des lignes c'est exactement comme fusionner des colonnes mais, étrangement, j'ai pu constater que dans la pratique beaucoup de personnes bloquent un peu sur cette action... Pourquoi ? Je ne sais pas peut être parce qu'on est plus dans le sens de la lecture pour une fois... Espérons que vous comprendrez du premier coup sans mal mais je tenais à vous prévenir...

Vous voyez que dans notre exemple nous avons deux cellules contenant "Non communiqué" (dans la colonne des numéros de téléphone). Nous aimerions donc les regrouper en une seule cellule plus grande afin d'éviter la répétition. Pour cela nous utiliserons le code suivant :

<HTML>
<HEAD><TITLE>Exercice</TITLE></HEAD>
<BODY>

<TABLE BORDER="2">
<TR><TH COLSPAN="4">Liste de nos correspondants</TH></TR>
<TR><TH>Nom</TH><TH>Prénom</TH><TH>Fonction</TH><TH>Téléphone</TH></TR>
<TR><TD>Bond</TD><TD>James</TD><TD>Agent secret</TD><TD>06.24.45.51.45</TD></TR>
<TR><TD>Clark</TD><TD>Kent</TD><TD>Journaliste</TD><TD>555.55.42.52</TD></TR>
<TR><TD>Picasso</TD><TD>Pablo</TD><TD>Peintre</TD><TD ROWSPAN="2" >Non communiqué</TD></TR>
<TR><TD>Werber</TD><TD>Bernard</TD><TD>Ecrivain</TD></TR>
</TABLE>

</BODY>
</HTML>


Le résultat est le suivant : cliquez ici. Qu'avons nous fait ? En fait, nous avons procédé à deux étapes :

- 1. Nous avons rajouté dans la balise contenant le texte "non communiqué", et que le navigateur rencontre en premier, que cette cellule faisait 2 lignes de hauteur...

- 2. Puisque la cellule couvre deux lignes nous avons retiré l'ensemble de balises <TD>Non communiqué</TD> juste en dessous. Si nous n'avions pas fait cela le navigateur n'aurait pas correctement compris notre code...

Un tableau pour mieux comprendre :

Pour mettre en application les élements du cours, nous allons faire reprendre notre C.V. (ceux qui arrivent en route devront relire les premiers cours pour comprendre de quel C.V. je parle !) et l'améliorer.

Dans un premier tableau simple d'une ligne et de deux colonnes, vous allez insérer vos coordonnées (dans la première colonne) et votre photo (dans la deuxième).

Dans un deuxième tableau (d'autant de lignes que vous voudrez et de trois colonnes), vous ajouterez vos diplômes. Le titre du tableau sera "Formation" (à insérer dans le tableau avec un COLSPAN) et contenant sur les autres lignes la liste de vos diplômes sur 3 colonnes (date, diplôme, description). Cliquez ici pour voir le résultat souhaité (vous pouvez prendre l'image, si vous n'avez pas de photo de vous, en faisant un clic droit dessus puis "enregistrer sous").

Un conseil important : pour réussir cet exercice donnez des bordures à chaque tableau (afin de les visualiser mieux) et ne vous souciez pas de la présentation générale que nous améliorerons par la suite.

Essayez de faire cette exercice très important pour vous entraîner à l'utilisation des tableaux. Mais si vous n'avez pas le temps/le courage/l'envie de le faire vous pouvez copier le code ci-dessous.

<HTML>

<HEAD>
<TITLE>Mon C.V.</TITLE>
</HEAD>

<BODY>
<CENTER>
<H2>C.V. Interactif</H2>
<HR WIDTH=25%>
</CENTER>


<TABLE BORDER="1">
<TR>
<TD><I>Pierre</I> <B>Durand</B><BR>
15, rue Manin - 75019 Paris<P>
Téléphone : 01.42.22.22.22<BR>
E-mail : pierre@provider.com</TD>
<TD><IMG SRC="photocv.jpg" WIDTH="179" HEIGHT="185"></TD>
</TR>
</TABLE>

<P>

<TABLE BORDER="1">
<TR><TH COLSPAN="3">Formation</TH></TR>
<TR><TD>1968</TD><TD>Bac B</TD><TD>Diplôme obtenu au lycée Pernot, Dijon.</TD></TR>
<TR><TD>1970</TD><TD>Deug de psychologie</TD><TD>Diplôme obtenu à la Faculté Duchemin, Versailles.</TD></TR>
<TR><TD>1973</TD><TD>Licence de Lettres Modernes</TD><TD>Diplôme obtenu à la Faculté Colbert, Toulouse.</TD></TR>
</TABLE>

</BODY>
</HTML>


Donner une taille à nos tableaux :

Comme vous avez surement pu le constater en regardant le résultat de notre cv (cliquez ici pour le revoir), les deux tableaux ne sont pas de la même taille et les textes comme la photo se retrouvent collés contre les bordures. Pour remédier à cela il est possible de préciser la taille de nos tableaux et ainsi les forcer à avoir la même taille.

Pour préciser la largeur des deux tableaux, vous pouvez choisir entre deux solutions :

- Soit utiliser l'option WIDTH pour définir la largeur en pixels (déjà vu pour les images rappelez vous) et insérez la dans votre balise TABLE. Ce qui donne <TABLE WIDTH="600"> par exemple pour faire deux tableaux de 600 pixels de large (cliquez ici pour voir le résultat).

- Soit utiliser la même option mais en définissant une taille en pourcentage comme <TABLE WIDTH="80%"> ce qui indiquera aux tableaux de prendre 80% de la largeur de la fenêtre quelque soit sa taille (Cliquez ici pour voir le résultat et n'oubliez pas de réduire ou aggrandir la fenêtre pour voir l'ajustement des tableaux). Vous comprendrez facilement que cette option est souvent plus intéressante pour s'adapter à toutes les résolutions d'écran !

Pour préciser la hauteur c'est la même chose en utilisant HEIGHT, ainsi vous pouvez par exemple définir un tableau par <TABLE WIDTH="80%" HEIGHT="500">. Dans notre exemple cette option n'a aucun intéret mais juste pour voir ce que cela donne : cliquez ici.

Donner une taille aux cellules :

De la même manière que les options WIDTH et HEIGHT marchent pour les images et les tableaux, elles fonctionnent pour les cellules. Attention tout de même à rester logique. Si vous donnez une largeur à votre tableau, l'ensemble des largeurs de vos cellules d'une ligne (et donc l'ensemble des colonnes) doivent être égale à la largeur totale du tableau. Vous ne comprenez pas ? Eh bien tout simplement si vous donnez une taille de 500 pixels à un tableau de trois colonnes et que vous donnez une largeur de 400 pixels à chaque colonne : il y a un problème !!! Soyez donc RIGOUREUX !


Gérer l'espacement entre les cellules ou entre la bordure et le contenu :

Il existe deux options intéressantes de plus pour mieux gérer la présentation d'un tableau :

- CELLSPACING ("espace de cellule" en anglais) : qui gére l'espace entre les cellules. Cliquez sur les codes HTML pour voir le résultat de :
<TABLE BORDER="1" CELLSPACING="0"> ou <TABLE BORDER="1" CELLSPACING="5"> ou <TABLE BORDER="1" CELLSPACING="15">

- CELLPADDING ("remplissage de cellule") : qui gére l'espace entre les bords de cellules et le contenu. Cliquez sur les codes HTML pour voir le résultat de :
<TABLE BORDER="1" CELLPADDING="0"> ou <TABLE BORDER="1" CELLPADDING="5"> ou <TABLE BORDER="1" CELLPADDING="15">

Les tableaux, un outil indispensable qui mérite quelques conseils.

Imaginez un peu toutes les possibilités que peuvent vous offrir les tableaux avec toutes ces options (en sachant qu'il en existe beaucoup d'autres que nous verrons plus tard). N'hésitez pas à jouer avec et surtout si vous avez quelques soucis retenez bien ces conseils :

- Faites toujours un dessin de vos tableaux avant de les construire en HTML.

- En cas de décalage étrange des cellules, n'hésitez pas à insérer un BORDER="1" afin de voir les colonnes et lignes de votre tableau et de reperez visuellement votre erreur. Corrigez la puis retirez le BORDER...

- Si vous jouez sur les tailles des cellules et du tableaux prenez des notes...

Plus tard, nous verrons comment insérer des couleurs dans vos tableaux mais également comment utilisez des tableaux imbriqués dans d'autres tableaux.

Un dernier petit exercice, un aspirine et on arrête :

Pour en finir avec ce cours nous allons simplement reprendre notre fichier "cv.html" et effectuez les quelques petites améliorations suivantes :

- Donnez une taille aux tableaux de 90% et faites en sorte qu'ils restent centrés en les encadrant par une balise <CENTER>.
- Donnez un espacement entre le contenu des cellules et les bords de 5 pixels pour le deuxieme tableau (avec le CELLPADDING donc...).
- Effacez la bordure du premier tableau ou mettez la à 0 et mettez la deuxième à 1.

BONUS : - Alignez la photo à droite de la cellule. Pour cela reprenez le cours de "mise en page" et appliquez le à l'image ou insérez tout simplement l'option ALIGN="RIGHT" dans votre balise de cellule... Ce qui donnera <TD ALIGN="RIGHT"> !

Le résultat sera le suivant : cliquez ici. Si vous n'avez plus la force physique de faire cela, inspirez-vous ou recopiez et le code ci dessous :

<HTML>

<HEAD>
<TITLE>Mon C.V.</TITLE>
</HEAD>

<BODY>
<CENTER>
<H2>C.V. Interactif</H2>
<HR WIDTH=25%>
</CENTER>


<TABLE BORDER="0" WIDTH="90%">
<TR>
<TD><I>Pierre</I> <B>Durand</B><BR>
15, rue Manin - 75019 Paris<P>
Téléphone : 01.42.22.22.22<BR>
E-mail : pierre@provider.com</TD>
<TD ALIGN="RIGHT"><IMG SRC="photocv.jpg" WIDTH="179" HEIGHT="185"></TD>
</TR>
</TABLE>

<P>

<TABLE BORDER="1" WIDTH="90%" CELLPADDING="5">
<TR><TH COLSPAN="3">Formation</TH></TR>
<TR><TD>1968</TD><TD>Bac B</TD><TD>Diplôme obtenu au lycée Pernot, Dijon.</TD></TR>
<TR><TD>1970</TD><TD>Deug de psychologie</TD><TD>Diplôme obtenu à la Faculté Duchemin, Versailles.</TD></TR>
<TR><TD>1973</TD><TD>Licence de Lettres Modernes</TD><TD>Diplôme obtenu à la Faculté Colbert, Toulouse.</TD></TR>
</TABLE>

</BODY>
</HTML>


Structure simple d'un tableau (dans l'ordre d'apparition des balises) :

<TABLE> : pour ouvrir un tableau.
<TR> : pour ouvrir une ligne.
<TD></TD> : pour ouvrir et fermer une cellule.
<TH></TH> : pour ouvrir et fermer une cellule contenant du texte centré et en gras.
</TR> : pour fermer une ligne.
</TABLE> : pour fermer le tableau.

Options de tableau :

<TABLE WIDTH="X" HEIGHT="X"> : où X est la largeur ou la hauteur du tableau définie en pixels ou en pourcentage en ajoutant %.
<TABLE BORDER="X"> : où X est l'épaisseur de la bordure.
<TABLE CELLSPACING="X"> : où X est l'espace entre les cellules.
<TABLE CELLPADDING="X"> : où X est l'espace entre une cellule et son contenu.

Fusionner les cellules :

<TD COLSPAN="X"> : où X est le nombre de colonnes sur lequel s'étend la cellule.
<TD ROWSPAN="X"> : où X est le nombre de lignes sur lequel s'étend la cellule.