tableaux HTML

Transcription

tableaux HTML
Chapitre 11
Utiliser
les
tableaux
,
pour egayer vos pages
• • • • • • • •• • •• •• • •• •• • • • • • • • • •• • • •
Dans ce chapitre:
Comprendre l'intérêt des tableaux.
~ Concevoir un tableau.
Créer des tableaux simples.
Etaler des éléments sur plusieurs cellules.
~ Ajouter des images, des hyperliens ou du texte aux cellules d'un tableau.
Des astuces et des techniques
pour les tableaux.
• •• • • • • • • ••• •• • • • • • • • • • • • • • • • • • •
H
istoriquement, les tableaux contiennent et agencent des données
dans une grille pour en faciliter la lecture. Toutefois, en (X)HTML,
ils servent à tout autre chose - à contrôler l'agencement d'une page Web.
La plupart des pages Web contiennent au moins un tableau - parfois
même des tableaux imbriqués dans des tableaux. Les tableaux (X)HTML
permettent de présenter du texte et des images dans vos pages avec
efficacité et de manière attrayante.
Par ailleurs, CSS offre un très grand contrôle sur le positionnement qui
permet aux concepteurs de pages Web de travailler avec précision et
souplesse sur les tableaux - une combinaison très efficace!
Ce chapitre fournit les instructions étape par étape pour créer et utiliser
des tableaux (X)HTML avec CSS pour en contrôler la présentation.
Utilisez nos trucs et astuces et nos techniques pour aller plus vite et vous
simplifier la vie.
194
Partie III : Contrôler précisément les pages Web et leurs styles
_
Ce que les tableaux peuaent faire
pour flous
Baladez-vous quelque temps sur Internet et vous découvrirez rapidement
que de nombreux sites - tels que Amazon.fr, eBay, Yahoo! et Google, pour
ne citer qu'eux - utilisent des tableaux pour afficher leur contenu, même
si vous ne pouvez les visualiser de manière évidente. En fait, ces tableaux
invisibles sont omniprésents
sur le Web. Deux raisons à cela:
J/
Les tableaux
Web.
permettent
J/
Vous pouvez désactiver
voient pas.
d'agencer
les éléments
dans votre page
leurs bords pour que les utilisateurs
ne les
Par nature, les pages Web commencent de manière linéaire (c'est-àdire qu'elles se déroulent du début à la fin sous la forme d'une longue
séquence de paragraphes et autres textes). Les tableaux permettent de
dépasser cette linéarité pour placer du texte et des images à des endroits
plus intéressants dans une page.
Vous pouvez utiliser les pages de diverses
J/
manières:
La méthode traditionnelle (bof bof ... ) : Vous pouvez définir des
largeurs de tableau ou de cellules en particulier à l'aide de nombres
absolus. Ce type de tableau n'est pas redimensionné
lorsque les
utilisateurs redimensionnent
les fenêtres de leur navigateur.
Quelques concepteurs de pages Web préfèrent utiliser des tableaux
à des fins traditionnelles - pour présenter des données - une
solution simple et claire, facile à mettre en œuvre.
J/
La méthode centrée sur la présentation (woo!) : Vous pouvez
définir la largeur d'un tableau et de cellules en utilisant des
pourcentages.
Le tableau est redimensionné lorsque les utilisateurs
redimensionnent
les fenêtres de leur navigateur.
Nombre de concepteurs
à l'aide de tableaux.
produisent
des effets créatifs et complexes
Quoique ce chapitre traite tous les aspects des tableaux HTML, il se
concentre sur des conseils et des techniques.Lorsque
vous recourez aux
tableaux pour l'agencement, vous pouvez obtenir plusieurs résultats:
J/
Les tableaux peuvent produire des agencements complexes, comme
le montre la Figure 11.1 (visualisez d'autres exemples de tableaux
complexes sur www.arnazon. fr et www.yahoo.com).
_-------Chapitre
11: Utiliserles tableauxpourégayervos pages
Utiliser (X)HTML et CSS dans des tableaux
Il faut éventuellement quelque finesse pour
parvenir à faire aux tableaux (X)HTML ce
que vous souhaitez. Seulement 3 % des internautes utilisent des navigateurs qui ne gèrent
pas CSS.Cela signifie que vous pouvez recourir sans crainte aux tableaux pour concevoir
une page. Nous vous recommandons d'utiliser:
v Les tableaux (X)HTML pour poser les
bases de votre page Web.
v CSS pour pousser plus loin la mise en
forme des tableaux.
Si vous savez que votre public utilise des navigateurs récents, vous pouvez systématiquement employer CSS pour gérer l'agencement
de votre page. Par exemple, si vous concevez
le site Web d'un intranet pour un groupe de
développeurs, vous pouvez imposer à vos
visiteurs d'utiliser un navigateur récent et éliminer tout recours aux tableaux.
Figure 11.1: Cette page Web utilise divers tableaux pour son agencement.
V Une fois que vous avez ouvert ces pages Web dans votre navigateur
Web, jetez un œil au code source de chaque page HTML (essayez
Visualiser s Source depuis la barre de menus de votre navigateur).
Notez combien le balisage est complexe et comment il semble
hasardeux.
195
196
Partie III : Contrôler précisément les pages Web et leurs styles
_
V
Quelques modèles de pages Web exposent une interface simplifiée,
dans l'idée qu'une approche à l'économie produit le résultat le plus
facile à utiliser. La Figure 11.2 montre ce qu'il peut en résulter.
v
www. google. fr utilise un seul tableau
pour son interface.
Rech&fcn.ltVeJloH
Ouli"linoui,tigUH
1
Recherche
Rechercher dans:
Programmes
de oublicité
@ Web
. Solutions
Il
Google
®
Ja; de la chance
Pages francophones
d'entreprise
0
Pages:
- À [)fooos de Gooole
France
- Goog!e corn in English
e2a09·~
Figure 11.2: Cette page Web n'utilise qu'un seul tableau de trois cellules pour son
agencement.
Les bases des tableaux
Toute la complexité
base:
des tableaux
HTML repose sur ces trois éléments
v
Les bords: Tout tableau de base comprend
qui forment un rectangle.
v
Les cellules: Ce sont des espaces
bords du tableau.
v
La fusion de cellules: Dans cette structure à base de rectangles,
vous pouvez supprimer ou ajouter des frontières entre les
cellules (comme c'est le cas avec les cellules sur la droite, dans
la Figure Il.3). Lorsque vous supprimez des frontières entre
les cellules, vous créez des lignes ou des colonnes de cellules
fusionnées - et c'est ce qui fait des tableaux des outils si flexibles
pour l'agencement.
individuels
toujours
de
quatre bords
dans les limites des
La fusion des cellules et la largeur des cellules sont deux mécanismes
différents:
_--------Chapitre
11: Utiliserles tableauxpourégayervos pages
yi
Lorsque vous fusionnez des cellules, vous modifiez l'espace d'une
cellule en absorbant d'autres cellules. Vous supprimez donc des
frontières entre cellules.
yi
Lorsque vous accroissez la largeur d'une cellule, vous ne faites
qu'agrandir l'espace qu'elle occupe.
_etœ_ •••
~
P"CIl'
lOQ • JI iJ
-if
Favo,is
c;,llk."IOenisIO.,ktopIXML.
I~c;,1Users\o.nis\o..ktop
...
1
T
.•.••••••
-_ •••..
-o-n-a-_
1 ~t 1 x IJ I!J Li" 5.0«1>
I! a
T
!iil
T
G'l ,.
PT
T
Page
T
Séeurit.
T
"
.
1
1
1
1
T
Figure 11.3 : Vous pouvez utiliser un tableau HTML pour agencer le contenu de pages
Web.
Faire un brouillon de votre tableau
Les tableaux peuvent devenir complexes. Vous devez en planifier
soigneusement la réalisation. Aller jusqu'à les positionner au pixel
près peut se révéler fastidieux, mais c'est une étape essentielle dans la
conception d'une page bien agencée.
Délle/opper des idées sur l'aqencement
Partez d'une idée très générale et affinez progressivement votre
agencement jusqu'à ce qu'il vous paraisse solide et réponde à vos
besoins. Suivez ces trois étapes élémentaires:
L Attrapez une feuille de papier et un crayon pour mettre vos
idées noir sur blanc.
198
Partie III : Contrôler précisément les pages Web et leurs styles
_
Commencez par une idée générale du positionnement
qui composent votre page.
des éléments
2. Evaluez ce qu'il faut inclure dans votre page Web et décidez
d'un agencement général.
De cette manière, vous pouvez commencer
Le nombre de lignes et de colonnes
par déterminer:
vous avez besoin.
La largeur du tableau et des cellules.
S'il faut fusionner
des cellules en lignes ou en colonnes.
A vous de faire les choix de conception
suivants:
Si le tableau sera centré, aligné à gauche ou aligné à droite (par
rapport à la fenêtre du navigateur dans laquelle il apparaît).
Si vous souhaitez
les faire figurer.
faire figurer des hyperliens
- et où vous souhaitez
Par exemple, de nombreux sites Web, tels que celui présenté sur
la Figure Il.1, comprennent l'image d'un logo auquel un hyperlien
est associé pour se rendre sur la page d'accueil. De la sorte, vous
pouvez toujours retourner à la porte d'entrée depuis n'importe
quelle page.
3. Faites-vous une idée des dimensions mesurées en pixels
des images que vous souhaitez utiliser. Veillez à ce que le
tableau remplisse la fenêtre du navigateur correctement, sans
contraindre l'utilisateur à faire défiler son contenu à gauche ou
à droite pour tout voir.
Choisissez d'utiliser
la manière suivante:
du texte ou des images pour la navigation,
de
Si vous souhaitez disposer de plus de contrôle sur la police utilisée
dans les éléments de navigation, utilisez des images.
La police est intégrée à l'image; pour cette raison, les paramètres
personnalisés
d'un navigateur ne peuvent pas affecter la manière
dont votre police est représentée dans l'image.
Si vous n'avez pas besoin d'un contrôle
utilisez du texte.
particulier
sur les polices,
Choisissez l'endroit où le logo principal
dimensions qu'il devrait avoir.
devrait être placé et les
Dans la Figure Il.2, le logo est le point focal. Ses dimensions
276 pixels en largeur et 100 pixels en hauteur.
sont de
_--------Chapitre
11
:Utiliser les tableaux pour égayer vos pages
Concentrez-vous sur la largeur du tableau. Laissez le contenu de votre
tableau déterminer la hauteur des cellules. La hauteur est moins
essentielle car les utilisateurs ont l'habitude de faire défiler les pages Web
vers le haut ou vers le bas. En revanche, ils peuvent être frustrés s'ils
doivent les faire défiler vers la gauche ou la droite pour en lire le contenu.
Préparer le tableau
Lorsque vous connaissez le nombre d'éléments
jeter le tout sur un brouillon.
et leur taille, vous pouvez
Si vous optez pour l'approche simplifiée, chaque élément principal
(logo, image hyperlien, navigation) doit disposer de sa propre cellule.
Sur la Figure Il.4, cela signifie trois cellules. Si vous n'avez que quelques
cellules, vous devrez probablement
en fusionner quelques-unes pour que
leur contenu remplisse la largeur de votre page.
"
Une conception
"
Une conception simple et propre (telle que celle de la Figure 11.4)
peut se satisfaire de deux lignes.
"
La Figure 11.4 montre le résultat
La première
La seconde
complexe
peut nécessiter
plusieurs
lignes.
produit pour votre tableau:
ligne opère la fusion de deux colonnes.
ligne contient
deux colonnes
distinctes.
contenu
contenu
1
contenu
Figure 11.4: Commencez
d'ouvrir
par jeter sur le papier les dimensions
du tableau, avant même
un éditeur de texte.
L'auteur de notre site Web exemple utilise des images à la place du texte
pour les éléments de navigation; toutefois, pour des raisons pratiques,
essayez d'utiliser du texte à la place des images chaque fois que vous
le pouvez. Car même si vous souhaitez disposer d'un contrôle total sur
la police utilisée par votre texte, vous devrez changer les images pour
changer la police - c'est-à-dire créer une nouvelle image du texte écrit
dans la nouvelle police que vous souhaitez utiliser.
199
Partie III : Contrôler précisément les pages Web et leurs styles
Construire des tableaux de base
Lorsque vous disposez d'un brouillon qui vous donne une bonne idée de
l'agencement de votre page et de votre tableau, vous pouvez ouvrir un
éditeur HTML et créer le squelette de votre tableau.
Les composants
Les éléments de balisage pour le squelette de votre tableau sont les trois
composants de base de tout tableau:
V Tableau: <table>.
V Ligne de tableau: <tr>.
<tr> est toujours imbriqué dans <table>.
V Cellule de tableau: <td>.
<td> est toujours imbriqué dans <tr>.
A l'aide de ces trois éléments, vous pouvez construire un tableau de base.
Représentez-vous leurs relations et compositions de la manière suivante:
chaque tableau contient une ou plusieurs lignes, et chaque ligne contient
une ou plusieurs cellules. Généralement, un tableau contiendra au moins
deux lignes, voir plus, et au moins deux cellules - presque toujours plus.
De fait, à quoi sert un tableau?
Les balises ouvrantes et fermantes <table>, <tr> et <td> sont requises.
Si vous oubliez d'en faire figurer une seule, votre tableau risque de ne pas
s'afficher correctement dans la plupart des navigateurs.
On trouve de nombreuses formes de tableaux, de différents niveaux de
complexité. Un simple tableau de données à deux dimensions intégré
à une page Web est plus facile à concevoir et à implémenter qu'un
agencement plus complexe qui contient une page Web entière. Vous
pourrez mieux apprécier cette distinction au fil de votre lecture des
sections suivantes.
Créer un tableau simple
Une balise <table> apparaît généralement entre les balises <body>
de votre document. Toutefois, vous pouvez aussi les utiliser dans des
éléments de blocs et dans les balises <td> et <th> pour imbriquer des
tableaux (voir la section «Imbriquer des tableaux dans des tableaux»,
_
_--------Chapitre
11: Utiliserles tableauxpourégayervos pages
plus loin dans ce chapitre). Utilisez le balisage suivant pour créer un
simple tableau de deux lignes et de deux colonnes (quatre cellules de
données) - remplacez cellule
1, cellule
2 par votre propre texte:
<! OOCTYPE
HTML PUBLIC "-/ /W3C/ /OTO XHTML 1. 0 Transi tional/ /EN"
''http://www.w3.org/TR/xhtmll/xhtmll-transitional.dtd''>
<html xmlns=''http://www.w3.org/l999/xhtml''>
<head>
<meta http-equiv="Content-Type"
content="text/html"
charset="ISO-8859-l"
/>
<title>Les
tableaux</title>
</head>
<body>
<body>
<table>
<tr>
<td> cellule 1 </td>
<td> cellule 2 </td>
</tr>
<tr>
<td> cellule 3 </td>
<td> cellule 4 </td>
</tr>
</table>
</body>
</html>
L'exemple précédent crée un tableau de deux lignes basé sur le brouillon
de la Figure Il.4. La première ligne du tableau contient les cellules 1 et 2 ;
la seconde ligne contient les cellules 3 et 4.
Les lignes de tableau sont toujours horizontales et le contenu de chaque
cellule - dans notre exemple, cellule
1, cellule
2, cellule
3
et cellule
4 - se trouve toujours dans son propre élément <td>.
N'oubliez pas que vous devez fermer les balises de votre tableau ou ce
dernier risque de ne pas être affiché correctement.
Créer une paiJe Web basée sur un tableau
Suivez ces étapes pour créer la coquille de votre page Web basée sur
un tableau (par exemple, le tableau dont le brouillon est repris dans la
Figure ll.4 de la section précédente) :
1. Commencez
par l'élément
<table>
:
<table>
</table>
L'élément <table> peut comprendre un certain nombre d'attributs
optionnels (par exemple, border="1"
ou bgcolor="black")mais pour l'instant, nous allons rester dans la simplicité.
Partie III : Contrôler précisément les pages Web et leurs styles
2. Choisissez le nombre de lignes que le tableau doit comprendre:
Le balisage suivant crée un tableau de deux lignes:
<table>
...<tr>
...<tr>
</table>
</tr>
</tr>
3. Créez des cellules dans chaque ligne à l'aide de l'élément <td>.
Chaque élément <td> crée une cellule, si bien que le nombre
d'éléments <td> dans une ligne correspond au nombre de
colonnes.
Le brouillon de la Figure Il.4 représente un tableau de deux
colonnes à trois cellules: la première ligne contient une cellule,
la seconde en contient deux. Le balisage pour cet agencement
ressemble à ceci :
<!DOCTYPE
HTML PUBLIC "-//W3C//DTD
XHTML 1.0 Transitional//EN"
''http://www. w3. org/TR/xhtmll/xhtmll-transitiona1.
dtd">
<html xmlns=''http://www.w3.org/1999/xhtml''>
<head>
<meta http-equiv="Content-Type"
content="text/html"
charset="ISO-8859-1"
/>
<title>Les
tableaux</title>
</head>
<bOdy>
<body>
<table>
<tr>
<td> contenu </td>
</tr>
<tr>
<td> contenu </td>
<td> contenu </td>
</tr>
</table>
</body>
</html>
C'est ici que les tableaux peuvent se révéler un peu complexes à utiliser.
Un simple tableau contenant un nombre pair de lignes et de colonnes
(disons, deux lignes et deux colonnes) est facile à réaliser - mais tandis
que vous maîtriserez mieux la conception de vos pages, vous découvrirez
que vos besoins ne sont généralement pas satisfaits par des tableaux
aussi symétriques. Si votre cellule s'étale sur plus d'une ligne ou plus
d'une colonne (telle la première cellule dans l'exemple précédent),
vous devrez ajouter un attribut qui dit au navigateur quelle cellule doit
fusionner avec d'autres.
_
_--------Chapitre
11: Utiliserles tableauxpourégayervos pages
D'autres éléments de tableau
Quoique les tableaux aient été inventés pour
contenir et afficher des données, ils peuvent
aussi être utilisés pour contrôler l'agencement d'une page Web, même si de nombreux
professionnels préfèrent dorénavant utiliser
des balises <di v> et des classes ou des
identifiants, les associant à des styles CSS
pour cela. Ce chapitre se focalise sur les éléments des tableaux que vous pouvez utiliser
pour contrôler l'agencement. Si vous préférez
créer un tableau traditionnel, vous pouvez utiliser les éléments de tableau suivants:
v <th> : l'élément
en-tête de tableau affiche
du texte en gras, centré horizontalement.
Vous pouvez utiliser l'élément <th> avec
n'importe quelle ligne du tableau, mais
vous le trouverez le plus souvent dans la
première ligne. Hormis sa position et sa
mise en valeur, <th> se comporte exactement comme la balise de cellules (ct.d>
et doit être traité pareillement.
v <caption> : C'est l'élément de légende
d'un tableau. Il est conçu pour figurer n'importe où entre <table> et </table>,
sauf dans les lignes et dans les colonnes
(car cela serait sans effet). Cet élément ne
peut apparaître qu'une seule fois dans le
tableau.
Tout comme les cellules de tableau, les légendes peuvent s'accommoder avec tous
les éléments HTML susceptibles de figurer
dans le corps d'un document (autrement
dit, les éléments en ligne), mais seulement
ceux-ci. Par défaut, les légendes sont centrées horizontalement dans le tableau, et
leur texte passe à la ligne pour tenir dans
la largeur du tableau. Lélément <caption> accepte l'attribut align.
v <tbody>
: Vous pouvez grouper les
lignes du tableau dans une section particulière, le corps du tableau, à l'aide de cet
élément.
Nouveau venu dans la spécification HTML
4, <tbody> permet au corps du tableau
de défiler indépendamment de son en-tête
«thead» et de son pied «tfoot». Le
corps du tableau devrait contenir des lignes
de données. Lélément <tbody> doit contenir au moins un élément <tr>.
v <the ad> :Vous pouvez grouper des lignes
du tableau dans une section d'en-tête en
utilisant cet élément. l'en-tête du tableau
contient des informations sur les colonnes.
l'élément
<thead> doit contenir
moins une ligne du tableau.
au
v <tfoot>
: Comme avec l'élément
<thead>, vous pouvez grouper des lignes
dans une section pied du tableau en utilisant
cet élément. Le pied de tableau contient des
informations sur les colonnes et doit contenir au moins une ligne du tableau.
Faites figurer vos informations dans le pied
du tableau avant la première occurrence
de l'élément <tbody> afin que le navigateur puisse les afficher avant de s'attaquer
au contenu des cellules.
v <colgroup> : Cet élément crée un
groupe explicite de colonnes. Vous spécifiez le nombre de colonnes en utilisant
l'attribut span ou l'élément <col>, que
nous allons définir plus loin.
Vous pouvez utiliser l'attribut span pour
spécifier une largeur identique pour les
colonnes d'un groupe.
v <col>
: l'élément <col> est un élément
vide. Vous l'utilisez pour définir la structure d'une colonne. Cet élément ne devrait
pas être utilisé pour grouper des colonnes
- c'est à l'élément <colgroup> de le
faire. Vous utilisez l'élément <col> après
avoir défini un groupe de colonnes; il vous
permet de spécifier que ces colonnes doivent adopter la même largeur.
203
Partie III : Contrôler précisément les pages Web et leurs styles
_
Le nombre dans un attribut correspond au nombre de colonnes ou de
lignes sur lesquelles vous souhaitez que la cellule s'étale, ce qui signifie
que si vous créez un tableau tel que celui donné en exemple, vous devrez
ajouter l'attribut colspan=" 2" au premier élément <td> (la première
cellule du tableau s'étale sur deux colonnes).
Reportez-vous à la section « Fusionner des cellules », plus loin dans ce
chapitre, pour plus d'informations. Pour l'instant, supposons que vous
souhaitez simplement créer un tableau tel que le nôtre. Le balisage
ressemble alors à ceci :
<table>
<tr>
<td colspan="2">
contenu
</tr>
<tr>
<td> contenu </td>
<td> contenu </td>
</tr>
</table>
</td>
Bravo - vous venez de terminer votre premier tableau. Enfin, presque.
Pour utiliser des tableaux dans un agencement, vous devez savoir
comment contrôler plusieurs paramètres de l'affichage, tels que les
bords, les largeurs de tableau et la gestion des espaces dans votre tableau
(par exemple, sans les bords, vous ne pouvez pas vraiment détecter la
présence d'un tableau - il ne sera pas apparent dans votre navigateur. Ce
n'est pas une mauvaise chose en soi, mais c'est un comportement que
vous pouvez modifier si vous souhaitez que les bords soient affichés par
les navigateurs). Continuez de lire la suite pour apprendre à terminer
votre tableau et à l'intégrer dans votre page.
Ajouter des bords
Le bord d'un tableau définit son contour.
Lorsqu'un tableau est utilisé pour agencer les éléments dans une page,
vous ne voulez pas afficher ses bords. Vous disposez de deux solutions
pour activer ou désactiver les bords d'un tableau:
Y'
Modifiez l'attribut border dans un élément <table>. La valeur de
l'attribut border doit être un entier qui définit l'épaisseur du bord
en pixels.
Pour désactiver
border="Q">.
Y'
le bord, passez l'attribut border
Définissez un bord en utilisant les propriétés
CSS.
à Q : <table
_________
Chapitre 11 : Utiliser les tableaux pour égayer vos pages
Vous pouvez définir le style, la largeur ou la couleur du bord en
utilisant CSS (voir la section « Utiliser les propriétés CSSdes bords »).
Utiliser l'attribut (X)HTML border
Pour un tableau (X)HTML, border se réfère simultanément:
V Aux bords extérieurs.
V Aux bords de cellules individuelles.
Vous utilisez l'attribut border pour activer ou désactiver simultanément
tous les bords.
Pour activer les bords du tableau (et des cellules), ajoutez l'attribut
border à la balise <table>, comme dans le balisage suivant:
<!DOCTYPE
HTML PUBLIC "-//W3C//DTD
XHTML 1.0 Transitional//EN"
''http://www.w3.org/TR/xhtmll/xhtmll-transitional.dtd''>
<html xmlns=''http://www.w3.org/1999/xhtml''>
<head>
<meta http-equiv="Content-Type"
content="text/html"
charset="ISO-8859-1"
/>
<title>Les
tableaux</title>
</head>
<body>
<body>
<table border="l">
<tr>
<td colspan="2">
contenu </td>
</tr>
<tr>
<td> contenu </td>
<td> contenu </td>
</tr>
</table>
</body>
</html>
La valeur de l'attribut border définit l'épaisseur du bord en pixels. Par
exemple, border=" 5" produit un bord de 5 pixels d'épaisseur. Si vous
laissez cet attribut désactivé, la plupart des navigateurs n'afficheront pas
de bord. Cependant, si vous ne voulez pas que votre bord soit visible,
nous vous suggérons d'ajouter border=" 0" pour désactiver les bords
pour de bon.
Lorsqu'une délimitation parfaitement claire du contenu des cellules est
souhaitée (comme pour les grilles de prix, les tableaux de données réelles
et autres collections de données textuelles ou numériques), les bords
aident le visiteur à décomposer ce qu'il voit en morceaux d'informations.
Mais lorsque le tableau est utilisé pour agencer une page Web et tout faire
tenir ensemble correctement, désactiver les bords peut aider à donner
plus de cohésion à l'ensemble.
Partie III : Contrôler précisément les pages Web et leurs styles
_
Par défaut, la plupart des navigateurs appliquent aux tableaux un bord
invisible de 2 pixels d'épaisseur. Lorsque vous concevez votre tableau,
vous devriez faire les choses suivantes:
yi
Prévoir la présence ces bords invisibles dans votre agencement.
yi
Configurer vos propres bords.
yi
Eliminez le bord en passant l'attribut border
Activez les bords des
ajuster votre tableau.
sans afficher le bord.
tableau, vous pouvez
à 0 (border="
0 ").
tableaux aussitôt que vous commencez à créer et à
Parfois, il est difficile de visualiser ce qui se passe
Une fois que vous avez terminé d'ajuster votre
désactiver ses bords.
Utiliser les propriétés C55 des bords
Contrairement à l'attribut border de (X)HTML, CSS permet de styliser
individuellement chaque bord. Par exemple, vous pouvez définir un bord
gris en pointillé pour le bord gauche du tableau et ne pas afficher les
autres bords.
Le stlJle
Comme vous pouvez vous y attendre, la propriété border-style
de définir le style du bord (pointillé ou plein).
permet
La déclaration de style utilisée pour ajouter un style de bord est la
suivante:
sélecteur
{border-style:
valeur;}
La valeur de la propriété border-style
clés prédéfinis :
yi
dotted
yi
da shed (haché).
yi
solid
yi
double
(doublé).
yi
groove
(creux et relief).
yi
ridge
(bord et relief).
yi
inset
(creux).
yi
out set (relief).
doit être un l'un de ces mots-
(pointillé).
(plein).
Pour créer un bord plein (par exemple), utilisez la déclaration de style
suivante:
table
{border-style:
solid;}
_--------Chapitre
11: Utiliserles tableauxpourégayervos pages
L'épaisseur
Comme dans le cas de l'attribut border en (X)HTML,vous pouvez
définir l'épaisseur du bord en pixels. CSS fournit une propriété. Voici la
déclaration type qui permet de spécifier l'épaisseur de votre bord:
sélecteur
{border-width:
valeur;}
La valeur de la propriété border-width
peut être:
J/
Un mot-clé prédéfini : thin
(épais).
(fin), medium (moyen) ou thick
J/
Une valeur absolue ou relative: Reportez-vous à l'encadré
«Les unités de mesure des propriétés» du Chapitre 8 pour plus
d'informations. Les valeurs décrites dans cet encadré fonctionnent
aussi bien pour CSS que pour HTML.
Pour passer l'épaisseur du bord à 1 pixel, utilisez la déclaration de style
suivante:
table
{border-width:
Ipx;}
La couleur
La déclaration de style utilisée pour définir la couleur du bord est:
sélecteur
{border-color:
valeur;}
La valeur de la propriété border-color
doit être définie à l'aide d'un
nom de couleur prédéfini ou d'une valeur hexadécimale:
J/
Nom de couleur: aqua, black, blue, fuchsia,
lime,maroon,navy,olive,purple,red,silver,teal,white,
ou yellow.
J/
Valeur hexadécimale:
gray, green,
Voir le Chapitre 10.
Pour passer la couleur du bord à noir, utilisez la déclaration de style
suivante:
table
{border-color:
black;}
Utiliser la propriété générale border
Vous pouvez utiliser la propriété raccourcie border qui est aux
bords ce que la propriété générale font est aux polices pour définir
simultanément plusieurs règles de styles:
table
{border:
Ipx solide
gray;}
Partie III : Contrôler précisément les pages Web et leurs styles
_
Il existe cinq propriétés générales border que vous pouvez utiliser pour
un tableau ou un autre élément pourvu d'un contour :
Définit l'apparence
~
border:
~
border-left
~
border-right
~
border-top:
~
border-bot
des quatre bords.
: Définit l'apparence
du bord gauche.
: Définit l'apparence
Définit l'apparence
du bord droit.
du bord supérieur.
tom : Définit l'apparence
du bord inférieur.
Les propriétés border ne s'appliquent pas qu'aux tableaux; elles font
partie du modèle de boîte de CSS qui identifie les parties d'un élément
auxquelles les déclarations s'appliquent, dont les marges intérieures et
extérieures ainsi que les bords. Ces propriétés permettent de définir les
bords pour presque n'importe quel élément (X)HTML du moment qu'il ne
s'agit pas d'un élément en ligne.
Ajuster ta hauteur et ta tarf/eur
La plupart des navigateurs déterminent la largeur d'un tableau en se
basant sur le contenu de ses cellules (images et/ou texte).
Le navigateur alloue autant d'espace que possible pour le contenu.
Cependant, il impose des limites aux images et au texte:
~
Les images juxtaposées
du navigateur.
doivent tenir dans la largeur de la fenêtre
Par exemple, si vous utilisez une image de 200 pixels de large, la
cellule qui la contient sera agrandie pour qu'elle y tienne. Toutefois,
la ligne du tableau comprend plusieurs cellules, chacune contenant
une image de 400 pixels de large; les cellules ne seront agrandies
que dans les limites de ce que la largeur de la fenêtre du navigateur
autorise.
~
Le texte peut s'étaler et altérer l'agencement.
Si une cellule contient beaucoup de texte, la cellule s'agrandira
autant qu'elle le pourra jusqu'à la première césure de ligne ou la fin
du texte. Cela risque de produire un résultat très peu esthétique.
Lorsque les tableaux sont utilisés pour contrôler l'agencement, il est
important de vérifier la largeur des cellules et du tableau. Vous disposez
de deux moyens:
~
Utilisez l'attribut (X)HTML width dans l'élément <table>
~ Assignez une valeur de largeur à l'élément <table>
utilisant la propriété width.
ou <td>.
ou <td> en
_--------Chapitre
11: Utiliserles tableauxpourégayervos pages
L'attribut (XJHTML width
Si vous ne spécifiez pas la largeur du tableau et des cellules, le navigateur
déterminera la largeur de chaque cellule en fonction de l'espace
qu'occupe son contenu - ni plus, ni moins.
Par exemple, supposons que vous souhaitiez ajouter un logo à la
première cellule et des éléments de navigation à la cellule qui se trouve
sur sa gauche. Si vous n'assignez pas de largeur à la première cellule (qui
contient donc le logo), les éléments de navigation seront placés juste audessous du logo, sans espace ou presque entre les deux. Pour éviter cet
agencement surchargé, vous pouvez utiliser l'attribut width pour définir
stratégiquement le nombre exact de pixels entre le logo et les éléments de
navigation.
Si vous utilisez des tableaux pour de l'agencement, nous vous
recommandons de spécifier la largeur du tableau et de ses cellules.
La slJntaxe
Il est facile de définir une largeur lorsque vous utilisez l'attribut width.
Par exemple, vous pouvez spécifier que votre tableau occupe 630 pixels
de la manière suivante:
<table
border="l"
width="630">
</table>
La valeur de l'attribut peut être définie dans les unités suivantes:
yi
Des pixels (un entier positif, tel que 630).
C'est une valeur absolue.
yi
Un pourcentage de la largeur de l'affichage (un entier positif suivi
du signe pourcentage, tel que 95 %).
C'est une valeur relative qui permet au tableau d'être
redimensionné en fonction de la largeur de la fenêtre du navigateur.
Ces unités peuvent aussi être utilisées pour préciser la largeur d'une
cellule en particulier.
Le balisage
Pour spécifier la largeur du tableau créé plus tôt dans ce chapitre (et pour
définir la largeur de ses cellules individuellement), ajoutez le balisage qui
apparaît en gras:
<! DOCTYPE
<html
HTML PUBLIC "-/ /W3C/ /DTD XHTML 1. 0 Transitional/ /EN"
''http://www.w3.org/TR/xhtmll/xhtmll-transitional.dtd''>
xmlns=''http://www.w3.org/1999/xhtml''>
210
Partie III : Contrôler précisément les pages Web et leurs styles
_
<head>
<meta http-equiv="Content-Type"
content="text/html"
charset="rSO-8859-l"
/>
<title>Les
tableaux</title>
</head>
<body>
<body>
<table border="l" width="630">
<tr>
<td colspan="2"
width="630">
contenu </td>
</tr>
<tr>
<td width="400">
contenu </td>
<td width="230">
contenu </td>
</tr>
</table>
</body>
</html>
Les figures 11.5 et 11.6 montrent la différence entre un site qui ne définit
pas la largeur du tableau ni des cellules et un site qui utilise l'attribut
width pour ce faire.
il lesta~aux·
.@'Q.. 1il
ir
Favoris
1~
!contenu
Windows
Intemd
Expforer
C,\U,.,,\D.,,;,\D esktop\XM~
les tableaux
f
-I+t 1xliII
/!.b-
~j
P -~,
Liv<Seorcn
~-
Iii'! -g
Page"
Sécurité .•. Outils .•..
»1
_1
/contenu lcontenu j
Figure 11.5: Aucune largeur n'est spécifiée.
:i' Les tlbluux
Ii w
Fevcns
G2jE§B~
P -1
. Windows Internet Exptorer
_@_O •. J il
C,\U,.,.\D.n;,\D
J:i9 Les tebleeux
es ktop\XM~ f
-I+t 1X 1.1':L'v-S.arrh
nl /!.b-Iii'!
-g
~-
Page .•..
Sécurité .•
Outils'"
»
1
Ilcoot~u
!contenu
Figure 11.6 : Les largeurs sont spécifiées
!contenu
1
à l'aide de la propriété width.
Si vous spécifiez une largeur en pixels plus petite que celle du contenu, le
navigateur ignorera la valeur de l'attribut width pour afficher le contenu
de la cellule. Alors un conseil: vérifiez vos dimensions!
La propriété CSSwidth
La valeur de la propriété width doit être l'une des suivantes:
yi auto.
_--------Chapitre
11: Utiliserles tableauxpourégayervos pages
Ce mot-clé autorise le navigateur à déterminer
requise.
lui-même la largeur
v Une largeur absolue ou relative.
Reportez-vous à l'encadré « Les unités de mesure des propriétés»
du Chapitre 8 pour plus d'informations.
Pour spécifier la largeur du tableau affiché sur la Figure 11.6, utilisez les
déclarations de styles suivantes:
table {width: 630px;}
td.cellone
{width: 630px;}
td.celltwo
{width: 630px;}
td.cellthree
{width: 630px;}
Les marqes internes
Il est essentiel de savoir déterminer l'espace vierge entre les cellules
pour produire un agencement digne de ce nom. Dans le brouillon de la
Figure Il.4, vous devez déterminer - au pixel près -l'espace qui sera
utilisé dans votre tableau.
les attributs (X)HTMl
Deux attributs peuvent vous aider à aérer votre tableau en ajoutant un
peu d'espace entre les cellules: cellspacing
et cellpadding.
Ces
attributs utilisent deux techniques différentes pour insérer cet espace :
v
cellspacing
ajoute de l'espace entre les cellules O'épaisseur du
bord est ajustée).
v
cellpadding
ajoute de l'espace dans une cellule.
La valeur pour chacun de ces attributs doit être donnée en pixels. Par
exemple, cellpadding=" 5" ajoute 5 pixels d'espace à la marge interne
de chaque cellule.
Pour définir chacun de ces attributs,
comme suit:
<table
cellpadding="S"
ajoutez-le à la balise <table>,
cellspacing="S">
Lorsque vous recourez aux tableaux pour l'agencement, sans bord
visible, vous pouvez utiliser l'un ou l'autre de ces attributs pour
aérer votre tableau. Toutefois, si vous ajoutez de la couleur à vos
tableaux - ou si vous utilisez un bord pour une raison quelconque -,
vous pourrez observer une différence très notable. C'est parce que
cellpadding
accroît l'espace dans la cellule tandis que cellspacing
Partie III : Contrôler précisément les pages Web et leurs styles
_
accroît l'épaisseur du bord lui-même, comme vous pouvez le constater
clairement sur les figures Il.7 et Il.8.
La valeur par défaut de cellpadding
est 1; celle de cellspacing
est
2. Si vous ne définissez ni cellpadding
ni cellspacing,
un navigateur
utilisera ces valeurs. Vous devriez tenir compte de ces pixels dans votre
agencement, à moins que vous ne passiez les valeurs des attributs à zéro.
~CJQ. ilil
C:\lJ>ers\O.nis\O es
re
'ilf Favoris
cellule 1
1
cellule 3
1
·I.t 1x l,~
Tebl•• ux
Ii
1
1
1
cellule 2
cellule 4
Figure 11.7 : L'attribut cellpadding
passé à 20pixels).
i
Go. il
ill
'ilfFiIYOris
C\Users\O.nis\O.,
l "Tableaux
P
"
cellule 2
1
cellule 3
1
accroît l'espace dans chaque cellule (ici, il est
·I.t 1x RI"Liv. s•• J<h
1 I!Q·§!·g..,·
cellule 1
1
Q
cellule 4
1
Figure 11.8: L'attribut cellspacing
pixels).
accroît l'épaisseur du bord (ici, il est aussi de 20
Travailler avec cellpadding
et cellspacing
pour ajuster l'agencement
de votre tableau peut se révéler assez casse-tête. Parfois, vous devez
. créer des cellules vides pour vous aider à suivre ce qui se passe. C'est
une astuce que de nombreux concepteurs utilisent. Pour cela, vous devez
simplement:
1. Créer une cellule.
2. Remplir la cellule avec l'un de ces éléments :
11: Utiliserles tableauxpourégayervos pages
_--------Chapitre
<br
/>.
Une image servant à espacer (un fichier GIF transparent
1 x 1 pixel) qui vous permet de contrôler la largeur.
de
css
Vous pouvez utiliser CSS pour contrôler la marge interne des cellules et
leur espacement.
Dans ta ce((ute (marge interne)
Pour contrôler l'espace à l'intérieur des cellules, vous devez utiliser la
propriété padding de la manière suivante:
sélecteur
{padding:
valeur;}
La valeur pour la propriété padding
ou relative (pourcentage).
doit être définie en valeur absolue
Pour modifier la marge interne d'une cellule, utilisez la déclaration
style suivante:
td {padding:
de
16px;}
La propriété padding peut être utilisée avec la plupart des éléments
(X)HTML. Par exemple, si vous créez un pied de page et que vous lui
assigniez un nom de classe, vous pouvez définir sa marge interne en
utilisant la règle de style suivante:
pieddepage
{padding:
5px;}
Entre tes ce ((utes (marge externe)
Vous pouvez contrôler l'espace entre vos cellules en utilisant la propriété
border-spacing:
sélecteur
{border-spacing:
valeur;}
La valeur pour la propriété border-spacing
absolue ou relative (pourcentage).
doit être définie en valeur
Pour modifier la marge externe d'une cellule, vous devez utiliser la
déclaration de style suivante:
td {border-spacing:
10px;}
La propriété border-spacing
<td>.
ne peut être utilisée qu'avec l'élément
Partie III : Contrôler précisément les pages Web et leurs styles
_
Décaler l'alilJnement
Si vous utilisez des tableaux pour définir votre agencement, vous avez
besoin de contrôler leurs emplacements dans la fenêtre du navigateur.
Vous pouvez le faire en utilisant (X)HTML ou CSS.
Utilisez les attributs définis dans le standard HTML pour aligner
vos tableaux (horizontalement) et le contenu de ces derniers
(horizontalement et verticalement).
Vous alignez des tableaux comme vous alignez des images.
L'alit)nement horizontal
Vous pouvez aligner horizontalement le contenu de cellules en utilisant
l'attribut align dans divers éléments de tableau.
JI'
Pour aligner votre tableau horizontalement,
avec l'élément <table>.
utilisez l'attribut align
Lorsqu'il est utilisé avec l'élément <table>, l'attribut align peut
prendre les valeurs suivantes: left (gauche), right (droite) et
center (centré) par rapport au document.
JI'
Vous pouvez utiliser l'attribut align avec les éléments <td>
(cellule) ou <tr> (ligne) pour aligner le texte dans une cellule ou
dans une ligne.
Les valeurs qui peuvent être utilisées avec l'attribut align
éléments <td> ou <tr> sont:
align=" r ight"
dans les
: Aligne le contenu du tableau ou de la cellule sur
la droite.
align=" left"
: Aligne le contenu du tableau ou de la cellule sur la
gauche (c'est la valeur par défaut).
align=" center" : Aligne le contenu du tableau ou de la cellule.
Lorsqu'il est appliqué à l'élément <table>, cet attribut centre le
tableau; lorsqu'il est appliqué à l'élément <td>, cet attribut centre
son contenu.
align="
justify"
: Justifie le contenu de la cellule (ne fonctionne
pas partout).
align=" char" : Aligne le contenu de la cellule autour d'un
caractère (ne fonctionne pas partout).
Les exemples suivants alignent un tableau au centre de la page et
centrent le texte dans chaque cellule (voir Figure 11.9).
<lDOCTYPE
HTML PUBLIC
"-//W3C//DTD
XHTML 1.0
Transitional//EN"
_--------Chapitre
11: Utiliserles tableauxpourégayervos pages
''http://www.w3.org/TR/xhtmll/xhtmll-transitional.dtd''>
<html xmlns=''http://www.w3.org/1999/xhtml''>
<head>
<meta http-equiv="Content-Type"
content="text/html"
charset="rSO-8859-1"
/>
<title>Les
tableaux</title>
</head>
<body>
<table border="2" width="430"
align="center"
cellpadding="20">
<tr>
<td colspan="2"
width="630"
align="center">
contenu </td>
</tr>
<tr>
<td width="400"
align="center">
contenu </td>
<td width="230"
align="center">
contenu </td>
</tr>
</table>
</body>
</html>
l'alilJnement vertical
pouvez aligner verticalement le contenu des cellules en utilisant
l'attribut valign. Il ne peut être utilisé qu'avec les éléments <tr> Oigne)
et <tr> (cellule).
VOUS
:i9l••_-W
••••••••
_bp4om
@O • "~"\"'=\Om;,\D~ ·1', 1x LI" liV<s.o""
~
Fworis
1~
les tableaux
~~
P •
,.
Ilt!ll·!»l·g.·
coetecu
1
coœeœ
1
contenu
1
~
1
Figure 11.9: Un simple tableau, centré.
Les valeurs possibles sont:
V valign=" top" : Aligne verticalement
haut de la cellule.
v valign="bottom"
le contenu de la cellule sur le
: Aligne verticalement
sur le bas de la cellule.
v
le contenu de la cellule
valign="middle"
: Centre verticalement le contenu de la cellule
dans la cellule (c'est la valeur par défaut).
v valign="
baseline"
: Définit une référence pour toutes les autres
cellules de la même ligne, si bien qu'elles sont toutes alignées de la
même manière.
215
216
Partie III : Contrôler précisément les pages Web et leurs styles ----
__
Vous pouvez aussi utiliser les attributs align et valign avec les
éléments de tableau suivants: <col>, <colgroup>,
<tbody>, <tfoot>,
<th> et <thead>.
Si vous spécifiez un alignement pour une ligne (xt;r> puis un alignement
pour une cellule de cette ligne (x t.dc-), l'alignement de la cellule
l'emportera sur celui de la ligne.
Vous risquez d'entendre assez souvent que la plupart des éléments de
mise en forme de (X)HTMLsont obsolètes et qu'il faut leur préférer CSS.
Toutefois, quoique l'attribut align soit obsolète pour la plupart des
éléments (X)HTML, il fonctionne encore avec les éléments de tableau.
Vous ne pouvez pas utiliser l'attribut valign
avec la balise <table>.
Utiliser C55 pour définir un alit}.nement
Il existe deux propriétés CSS que vous pouvez utiliser pour contrôler
l'alignement d'un tableau: text-align
et vertical-align.
Elles
fonctionnent exactement comme les attributs align et valign qui
viennent d'être mentionnés.
Pour utiliser la propriété text-align,
suivantes:
V right
assignez-lui une des valeurs
: Aligne le contenu du tableau ou la cellule sur le côté droit.
v left:
Aligne le contenu du tableau ou la cellule sur le côté gauche
(c'est la valeur par défaut).
v
center:
v justify:
Centre le contenu du tableau ou de la cellule.
Justifie le contenu des cellules.
Pour utiliser la propriété vertical-align,
suivantes:
v
top: Aligne verticalement
cellule.
v bottom:
assignez-lui une des valeurs
le contenu de la cellule sur le haut de la
Aligne verticalement
le contenu de la cellule sur le bas de
la cellule.
v middle : Centre verticalement le contenu de la cellule dans la
cellule (c'est la valeur par défaut).
v
baseline
: Définit une référence pour toutes les autres cellules
de la même ligne, si bien qu'elles sont toutes alignées de la même
manière.
Vous pouvez contrôler l'alignement d'une ligne entière en spécifiant les
propriétés d'alignement pour l'élément <tr>.
_--------Chapitre
11: Utiliserles tableauxpourégayervos pages
Vous ne pouvez pas centrer un tableau en utilisant la propriété textalign - elle ne sert qu'à aligner du texte. Pour l'instant, vous n'avez pas
beaucoup d'options pour centrer le tableau. Aucune n'est idéale, mais
toutes fonctionnent:
v Utiliser les balises obsolètes <center>
autour du tableau (pas
conseillé).
v Utiliser l'attribut obsolète align
dans le tableau: <table
align="center">.
Tous les navigateurs ne le gèrent pas de la
même manière, si bien que vous devez vérifier le résultat dans
chacun d'entre eux!
v
Imbriquer le tableau dans un élément <di v> et utiliser la propriété
text-align
pour en centrer le contenu: div.mytable
{textalign:
center;}
(recommandé).
Fusionner des cellules
La fusion est l'une des fonctionnalités des tableaux qui les rendent si
pratiques pour agencer des éléments dans votre page Web.
La fusion permet d'étaler du contenu sur plusieurs cellules; en gros, vous
abattez les frontières de cellules. Que vous ayez besoin de fusionner
en lignes ou en colonnes, vous pouvez utiliser la fusion pour produire
presque n'importe quel agencement avec votre tableau.
Il faut soigneusement planifier la fusion de cellules et de lignes lorsque
vous rédigez votre brouillon (comme nous l'avons expliqué plus tôt dans
ce chapitre, dans la section « Faire un brouillon de votre tableau »).
Pour fusionner des cellules, vous ajoutez l'un de ces attributs à l'élément
<td> (c'est-à-dire la cellule):
v colspan
permet de fusionner la cellule avec d'autres
horizontalement (sur plusieurs colonnes).
v
rowspan permet de fusionner la cellule avec d'autres verticalement
(sur plusieurs lignes).
La fusion de cellules ne fonctionne qu'avec des attributs (X)HTML; CS5
ne fournit aucune fonctionnalité équivalente. Ceci étant, l'élément <div>
vous permet de réaliser assez vitz n'importe quel agencement sans
utiliser de tableau (ce qui explique qu'il soit devenu la solution idéale
pour les concepteurs de site professionnels).
218
Partie III : Contrôler précisément les pages Web et leurs styles
La fusion des colonnes
Pour fusionner des colonnes, utilisez l'attribut colspan dans l'élément
<td> et donnez-lui pour valeur le nombre de cellules que vous souhaitez
fusionner. Ici, nous passons la couleur d'arrière-plan de la cellule étendue
en bleu et nous affichons son contenu en texte blanc gras pour nous
accorder avec le reste du texte affiché en noir sur fond blanc dans les
cellules du dessous.
La Figure Il.10 montre la cellule résultant
de la fusion de deux autres.
contenu
contenu
contenu
Figure 11.10: La cellule résultant de la fusion de deux autres.
Dans cet exemple, une unique cellule bleue occupe la première ligne,
résultant de la fusion des deux cellules de la ligne réparties sur deux
colonnes. Nous utilisons l'attribut colspan dont la valeur est fixée à 2,
comme dans le balisage suivant:
<!DOCTYPE
HTML PUBLIC "-//W3C//DTD
XHTML 1.0 Transitional//EN"
''http://www.w3.org/TR/xhtmll/xhtmU-transitional.dtd''>
<html xmlns=''http://www.w3.org/1999/xhtml''>
<head>
<title>Les
tableaux</title>
</head>
<body>
<table border="2" width="430"
align="center"
cellpadding="20"
type="text/css"
style="font-family:
Arial, sans-serif;
fontsize: 18pt">
<tr>
<td colspan="2"
width="430"
align="center"
type="text!css"
style="background-color:
blue; color: white; font-weight:
bolder;">
contenu </td>
</tr>
<tr>
<td width="230"
align="center">
contenu </td>
<td width="200"
align="center">
contenu </td>
</tr>
</table>
_
__ ------Chapitre
11 : Utiliser les tableaux pour égayer vos pages
</body>
</html>
Notez que dans l'exemple précédent, ainsi que dans le suivant, nous
utilisons du code C55 en ligne pour faire figurer les informations relatives
au style dans le balisage du tableau. En production, vous devriez stocker
votre balisage C55 dans un fichier de feuille de styles externe.
Une fois que vous avez ajouté l'attribut colspan
:
"" Vérifiez que vous disposez du nombre idoine de cellules <td> dans
la première ligne. Par exemple, si vous spécifiez qu'une cellule
s'étale sur deux colonnes, vous devrez compter un <td> de moins
dans sa ligne. Si vous utilisez colspan=" 3", vous devrez compter
deux <td> de moins dans la ligne.
"" Vérifiez que les autres lignes contiennent le bon nombre de cellules
<td>. Par exemple, si vous étalez une cellule sur deux colonnes,
les autres lignes du tableau devront comprendre deux <td> pour
remplir les deux colonnes.
La fusion des liiJnes
Vous utilisez l'attribut rowspan avec l'élément <td> pour fusionner les
lignes. La Figure 1l.11 vous montre un exemple où la cellule s'étale sur
deux lignes.
1
contenu
,
contenu
contenu
Figure 11.11 : La dernière cellule s'étale sur deux lignes.
Pour fusionner les lignes, vous utilisez l'attribut rowspan dans l'élément
<td> et vous passez sa valeur au nombre de cellules que vous souhaitez
fusionner.
D'abord, faites un brouillon de votre tableau afin de déterminer les
cellules qu'il faut fusionner en lignes et en colonnes. L'exemple que nous
illustrons au fil de ce chapitre utilise l'attribut colspan de la première
cellule de la première llgne. Toutefois, la conception d'un tableau
contenant des éléments de navigation pourrait être tout aussi simple si
219
Partie III : Contrôler précisément les pages Web et leurs styles
_
nous utilisions l'attribut rowspan de la seconde cellule de cette première
ligne. D'une manière comme de l'autre, le tableau est agencé efficacement.
Le tableau présenté est généré à l'aide du balisage suivant (notez l'usage
de rowspan) :
<!DOCTYPE
HTML PUBLIC "-//W3C//DTD
XHTML 1.0 Transitional//EN"
''http://www.w3.org/TR/xhtmll/xhtmll-transitional.dtd''>
<html xmlns=''http://www.w3.org/1999/xhtml''>
<head>
<title>Les
tableaux</title>
</head>
<body>
<table border="2" width="430"
align="center"
cellpadding="20"
type="text/css"
style="font-family:
Arial, sans-serif;
fontsize: 18pt">
<tr>
<td width="230"
align="center">
contenu </td>
<td width="230"
align="center"
rowspan="2"
type="text/css"
style="background-color:
blue; color: white; font-weight:
bolder;">
contenu </td>
</tr>
<tr>
<td width="230"
align="center">
contenu </td>
</tr>
</table>
</body>
</html>
Remplir les cellules d'un tableau
Une fois que vous avez rédigé un brouillon de votre tableau et défini les
propriétés de ce dernier (telles que la largeur, les marges internes et
externes des cellules, les fusions de cellules), vous pouvez rajouter des
images, des hyperliens, du texte et presque tout autre élément (X)HTML
dans vos cellules. C'est un processus trivial: vous ajoutez les images, les
hyperliens et le texte dans l'élément <td> tout comme vous les ajouteriez
à l'élément <body>.
Le balisage suivant affiche un tableau rempli de données figurant en gras:
<!DOCTYPE
HTML PUBLIC "-//W3C//DTD
XHTML 1.0 Transitional//EN"
''http://www.w3.org/TR/xhtmll/xhtmll-transitional.dtd''>
xmlns=''http://www.w3.org/1999/xhtml''>
<html
<head>
<title>Les
tableaux
: les albums recommandés</title>
<meta http-equiv="Content-type"
content="text/
_-------Chapitre
11: Utiliserles tableauxpourégayervos pages
html;charset=UTF-B"
/>
<style type="text/css">
hl {
font-size:
200%;
font-family:
Verdana,
Tahoma,
Arial,
sans-serif;
Tahoma,
Arial,
sans-serif;
}
p {
font-size:
90%;
font-family:
Verdana,
}
#pied {
font-size:
70%;
font-family:
Arial,
color: orange;
sans-serif;
}
</style>
</head>
<body>
<table border="l" width="BOO"
align="center"
cellpadding="S"
cellspacing="S">
<tr>
<td colspan="2"
valign="bottom"
align="center">
<a href="http://www.arclightrecords.com">
<img src="arclight-header.jpg"
width="640"
height="203"
alt="arclight
header art" border="O"
/>
<la>
</td>
</tr>
<tr>
<td colspan="2"
valign="center"
align="center">
<hl>La sélection de cette semaine :</hl>
<la>
</td>
</tr>
<tr>
<td valign="center"
align="center"
width="lll">
<img src="releases-ar22.gif"
width="107"
height="99"
alt="magnet
school coyer" border="O"
/>
</td>
<td valign="top"
align="left"
width="6B9">
<strong>Magnet
School</strong>&nbsp;&nbsp;&nbsp;
ID catalogue:
<tt>AR22</tt>&nbsp;&nbsp;&nbsp;
<em>Tonight
We Drink ...Tomorrow We Battle The Evil CD</em><br
/>
<p>Magnet School produit ici une brillante expérience
en
capturant et en amplifiant la présence électrique
de U2 dans leur
chanson <cite>Bullet
the Blue Skye/cite> pour construire
un album
entier autour de ces sonorités et de ces idées. Vous entendrez du
blues, du rock, du psychédélique,
de l'angoisse et de l'engagement
qui sont les marques de ce classique de U2 portées jusqu'à des
extrêmes.</p>
</td>
</tr>
<tr>
Partie III : Contrôler précisément les pages Web et leurs styles
_
<td valign="center"
align="center"
width="lll">
<img src="releases-ar17.gif"
width="107"
height="99"
alt="Phonograph
Phonograph
coyer" border="O"
/>
</td>
<td valign="top"
align="left"
width="680">
<strong>Phonograph</strong>&nbsp;&nbsp;&nbsp;
ID catalogue:
<tt>AR17</tt>&nbsp;&nbsp;&nbsp;
<em>Phonograph</em><br
/>
<p>Ceux qui écoutent Phonograph
doivent tout d'abord faire
abstraction
des échos de tous les autres; Tom petty rappelle
inévitablement
la voix et l'écriture de Matthew welsh, tandis
que wilco rappelle combien Phonograph
a réussi à dépasser les
clichés du rock acoustique
américain. Au-delà, Phonograph
réussit
à remettre en question tous les prémices du rock tout en restant
solidement
amarré au genre. Le sons acoustiques
et électroniques
se mélangent pour former un paysage totalement
bluffant.</p>
</td>
</tr>
<tr>
<td valign="center"
align="center"
width="lll">
<img src="releases-ar04.gif"
width="107"
height="99"
alt="Hognose
Longhandle
coyer" border="O"
/>
</td>
<td valign="top"
align="left"
width="689">
<strong>Hognose</strong>&nbsp;&nbsp;&nbsp;
ID catalogue
:<tt>AR04</tt>&nbsp;&nbsp;&nbsp;
<em>Longhandle</em><br
/>
<p>Hognose
est une bande de heavy metal dont le rythme pour le
moins direct et les paroles renvoient à Black Sabbath, Motorhead
ou Metallica.
Appelez ça du "stoner rock" ou du "thrash metal",
ceux qui aiment la musique ne pourront s'empêcher d'apprécier
ce
qu'ils entendront.
Parmi les titres les plus notables, il faut
retenir "Sneech" , dont l'intro à la guitare et aux cymbales fait
trembler les murs, et "Black Angus", un hymne de deux minutes qui
engage tout le pouvoir du rock. Ceux qui écoutent en conduisant
feront bien de faire attention à leur vitesse, car ils risquent de
se laisser entraîner.
</p>
</td>
</tr>
</table>
<table width="800"
border="O"
align="center"
cellpadding="O"
cellspacing="O"
id="pied">
<tr>
<td width="18">&nbsp;</td>
<td width="382"><a
href="index.htm">Nouveautés</a>
1
<a
href="aboutus.htm">A
propos <la> 1
<a href="releases.htm">Sorties
<la> 1 <a href="tours.
htm">Concerts</a>
1
<a href="press.htm">Presse</a>
1 <a href="store.htm">Store</
a> 1
<a href="links.htm">Liens</a>
1 <a href="contactus.
htm">Contact</a>
</td>
_--------Chapitre
11: Utiliser les tableaux pour égayer vos pages
<td width=ff18ff>&nbsp;</td>
<td width=ff382ff>Images et contenu &copy; 2006 Arclight
Records. Tous
droits réservés.
<br />
Site Web par <a href= ..
http://www.conquestmedia.com
..
>Conquest
Media</a></td>
</tr>
</table>
</body>
</html>
Cette page Web contient de nombreux éléments intéressants. Nous
l'avons dimensionnée pour qu'elle occupe 800 pixels de largeur (un
standard de nos jours, qui conviendra à tous les affichages sauf les plus
anciens) et nous avons utilisé l'attribut colspan pour centrer l'image et
le titre dans la page. Nous avons aussi soigneusement divisé les zones
correspondant aux couvertures d'albums et aux textes en utilisant des
images de dimensions communes (107 x 99 pixels) et en conservant
2 pixels supplémentaires sur chaque côté, ce qui laisse 689 pixels pour
la zone de texte et permet de faire tenir le nom de l'artiste, la référence
dans le catalogue et le titre sur une seule ligne de texte, suivie de 7 lignes
de texte décrivant l'album et sa musique. Le résultat est reproduit sur la
Figure 11.12, où nous avons activé les bords pour que vous puissiez les
observer (en production, nous les aurions désactivés).
g.
iJc:,Usett\Denis\06ktop\XMl.HTMldC:SSpourlesnuls\c.~-Jl..htmI
La sélection
!\hpet
Sc.ool
•.• ,
p.
X
de cette semaine:
ID catalogue: AR22 Tonighi
w. Drink.
.. Tomorrow
w. Bartl.
Th. Evil CD
Magnet scnoot produit id une brillante expérience en capturant et en amplifiant la présence
électrique de U2 dans leur chanson Bullet the Blue Sky pour construire un album entier
autour de ces sonorités et de ces Idées. Vous entendrez du blues, du rock, du
psychédélique, de l'angoisse et de J'engagement Qui sont les marques de ce dess.qve de U2
portés jusqu'à des extrêmes.
PIIo_O&r2pll
ID cataiogue : AR17
Phonograph
Ceux qui écoutent Phonograph dOivent tout d'abord faire abstraction des échos de tous les
autres;
Tom Petty rappele inévitablement
la voix et récnture de Matthew weisn, tandiS
wdco rappele combien Phonograph il réussi à dépasser les œcnés du rock acoustique
amêr1cain. Au-delà, Phonograph reussit à remettre en Question tous les prémices du rock
tout en restant solidement amarré au genre. le sons acoustiques et électroniques se
mélangent pour tonner un paysage totalement bluffant.
Figure 11.12: La page de la sélection d'Arclight
une liste d'albums incluant des miniatures.
Records utilise des tableaux
pour créer
Partie III : Contrôler précisément les pages Web et leurs styles
Notez aussi l'utilisation de l'entité de l'espace insécable (&nbsp;) ; dans
la liste des albums, il permet de séparer le nom de l'artiste, l'identifiant
au catalogue et le titre de l'album tout en maintenant ces informations
sur une seule ligne; dans le pied-de-page, il permet d'imposer une marge
de 18 pixels entre le menu sur la gauche et la mention aux droits d'auteur
sur la droite. Nous utilisons aussi le style hl pour le titre de la page, le
style de paragraphe (P) pour la copie de l'album et l'identifiant (ID) pied
pour modifier la présentation du pied de page. Tout cela devrait vous
donner moult idées pour utiliser les tableaux et les styles afin de créer
des agencements qui font sens.
Tester votre tableau
Le test est l'étape finale avant que votre tableau ne soit exposé à la face
du monde. Vous devez tester vos tableaux dans les navigateurs les plus
utilisés - dont Internet Explorer, Firefox, Safari et Opera. Si vous ne le
faites pas, vos utilisateurs risquent d'avoir à déchiffrer le contenu de vos
pages; s'ils ne se contentent pas de considérer qu'elles sont dans le plus
grand désordre.
Laissez une fenêtre de navigation ouverte lors de la création de
votre tableau. Chaque fois que vous modifiez la largeur d'une cellule,
enregistrez le document et visualisez-le dans le navigateur. De cette
manière, lorsque vous testerez votre tableau, vous n'aurez pas trop à le
bidouiller.
Testez toujours votre site dans tous les navigateurs que vos utilisateurs
pourraient utiliser. Par exemple, si votre tableau est aligné avec
align=" center"
mais que, dans une précédente version d'Internet
Explorer, le tableau reste aligné sur la gauche, vous voudrez sans
doute délimiter le tableau par des balises <div> et inclure l'attribut
aligne="center"
dans la balise ouvrante <d i,v>. Toutefois, vous ne
devriez pas rencontrer trop de problèmes avec les tableaux si vous vous
en tenez au standard.
Conseils pour faire les tableaux
Le premier - et plus important - des conseils est de s'en tenir aux
standards établis. Les gens impliqués dans le projet Web Standards ont
fait campagne pour que le standard soit supporté par tous les navigateurs
et toutes les applications d'édition de HTML depuis 1998. Ce lourd travail
de normalisation devrait vous faciliter la vie.
---.!
_--------Chapitre
11: Utiliserles tableauxpourégayervos pages
Il Ya fort longtemps, si vous créiez une page HTML,vous étiez contraint de
créer différentes versions de votre page Web (chaque version contenant
des éléments et des attributs spécifiques à un navigateur), ne serait-ce que
pour définir des choses aussi basiques que les propriétés d'un tableau.
Comme vous pouvez l'imaginer, créer et manipuler différentes versions
de la même page Web faisait exploser les coûts de développement.
Pour contourner cette difficulté, de nombreux développeurs ont
consciencieusement créé leurs tableaux avec des balises spécifiques
qui fonctionnaient dans Internet Explorer comme dans Netscape - mais
pourquoi pas Opera? Fort heureusement, tous ces problèmes sont
derrière nous. Les dernières versions d'Internet Explorer, de Firefox, de
Safari et d'Opera gèrent toutes HTML,ainsi que CSSet XHTML.Pour en
savoir plus sur les standards du Web, visitez www.webstandards.org.
Nettoue» le balisage
Un balisage soigneusement rédigé est plus facile à analyser en cas
de problèmes et à maintenir. A cette fin, de nombreux concepteurs
introduisent des espaces entre les éléments. Par exemple, le balisage
suivant n'en utilise pas beaucoup, ce qui complique la lecture:
<table border="l" width="630">
<tr><td width="630"
colspan="2">
contenu </td></tr>
<tr><td width="400">
contenu </td>
<td width="230">
contenu </td></tr></table>
Observez plutôt cette version aérée:
<table border="l" width="630">
<tr>
<td width="630"
colspan="2">
contenu
</tr>
<tr>
<td width="400">
contenu </td>
<td width="230">
contenu </td>
</tr>
</table>
</td>
L'espace que nous avons inclus dans notre balisage figure entre les
éléments - et non dans les éléments. Par exemple, si vous ajoutez
un espace entre les balises <td> et </td>, cela affectera l'affichage
du contenu de la cellule, ce qui n'est généralement pas ce que vous
souhaitez.
226
Partie III : Contrôler précisément les pages Web et leurs styles
_
Imbril{uer des tableaux dans des
tableaux
De nombreux concepteurs doivent imbriquer des tableaux dans des
tableaux pour parvenir à réaliser l'agencement qu'ils souhaitent. C'est à
la fois légal et commun.
Quelques tableaux imbriqués ne vont pas gêner vos utilisateurs outre
mesure. Toutefois, imbriquer de nombreux tableaux les uns dans les
autres peut ralentir le temps de chargement.
Pour imbriquer un tableau, ajoutez simplement l'élément <table>
un élément <td> comme suit:
dans
<!DOCTYPE
HTML PUBLIC "-//W3C//DTD
XHTML 1.0 Transitional//EN"
''http://www.w3.org/TR/xhtmll/xhtmll-transitional.dtd''>
xmlns=''http://www.w3.org/1999/xhtml''>
<html
<head>
<title>Imbriquer
des tableaux</title>
<table border="l"
cellpadding="20"
align="center">
<tr align="center">
<td> contenu </td>
<td> contenu </td>
</tr>
<tr>
<td>
<table border="l">
<tr>
<td> contenu </td>
<td> contenu </td>
</tr>
<tr>
<td> contenu </td>
<td> contenu </td>
</tr>
</table>
</td>
<td> contenu </td>
</tr>
</table>
</body>
</html>
Ce balisage produit les tableaux représentés
sur la Figure 11.13.
Lorsque vous utilisez des tableaux imbriqués ...
J/
Vérifiez la largeur des cellules -la largeur de la troisième cellule
devrait correspondre à la largeur du tableau imbriqué.
J/
Créez et testez le tableau que vous souhaitez imbriquer séparément, avant de l'ajouter à votre premier tableau.
_--------Chapitre
11:Utiliserles tableauxpourégayervospages
:ii!l1mIIrique •••• -.._
@O. ,I~
Il •••• Fevcris
•••••••• __
"'\lkenlD<n~\D.,
-œ-
-e-
-1'.1 x 1./1: L••• s.onh
r~
Imbriqu""d.,t,bl.,ux
cool...,
1
IcontenuIcool~ 1
Icool..., Icool...,
"Iii
a - ~ . Gl
p »
FI
F
1
Figure 11.13: Des tableaux imbriqués.
Eaiter les tableaux trop denses
Nous vous recommandons d'être créatif, mais faites attention - ne
bourrez pas l'écran d'informations denses au point d'être impénétrables
- surtout de chiffres. Une liste de chiffres sans césures fait rapidement
fuir tout le monde sauf les masochistes - un résultat totalement contreproductif. Rangez ces chiffres dans un tableau attrayant (mieux encore,
dans plusieurs tableaux séparés par des images soigneusement choisies).
Observez alors comment l'attrait et la lisibilité de votre page sont
améliorés; entendez les visiteurs soupirer de soulagement.
Les cellules individuelles peuvent être étonnamment spacieuses. Vous
pouvez y ranger des images très précisément. A ce propos, si vous
souhaitez ajouter des images dans un tableau, veillez à :
v Sélectionner des images qui ont des dimensions et des apparences
similaires.
v Mesurer ces images pour déterminer leur hauteur et leur largeur
en pixels (des programmes shareware tels que Paint Shop Pro et
GraphicConverter le font automatiquement).
v
Utiliser un balisage HTML pour positionner
cellules.
ces images dans les
Un tableau beau et court n'a pas besoin d'images et garantit que le texte
sera bien présenté.
Deux astuces permettent
cohérent d'images:
v
de produire un agencement
consistant
et
Redimensionnez vos lignes et vos colonnes de cellules qui
contiennent les images en adoptant les dimensions de l'image la
plus grande.
v Centrez toutes les images dans chaque cellule (verticalement
horizontalement).
et
228
Partie III : Contrôler précisément les pages Web et leurs styles
_
Ajouter de la couleur aux cellules
de tableau
Vous pouvez utiliser CSS ou (X)HTML pour modifier la couleur d'arrièreplan d'une cellule ou du tableau. Avant CSS, les concepteurs utilisaient
l'attribut bgcolor pour modifier l'arrière-plan des cellules du tableau de
la même manière dont elle permettait de modifier la couleur d'arrière-plan
de tout le document. Ajoutez simplement l'attribut bgcolor à n'importe
quelle cellule de tableau pour modifier sa couleur d'arrière-plan:
<td bgcolor="teal">
...</td>
Toutefois, vous disposez d'un peu plus de souplesse
pour ajouter de la couleur :
td {background-color:
Nous traitons
si vous utilisez CSS
red;}
de la propriété
background-color au Chapitre
10.
L'attribut bgcolor peut être utilisé avec n'importe quel élément de
tableau. Toutefois, l'attribut bgcolor d'une cellule prévaut sur tout
attribut bgcolor défini pour une ligne ou pour le tableau. Notez aussi
que l'attribut bgcolor est obsolète, et que la plupart des experts
du Web utilisent le balisage CSS à la place en employant la propriété
background-color ainsi que la propriété color pour modifier la
couleur du texte.
Autres attributs de tableau intéressants
Le Tableau Il.1 recense les autres attributs liés aux tableaux
que vous pouvez rencontrer dans des fichiers HTML.
T••••••
(X)HTML
".' : AUributs supplémentaires associés aux tableaux
Nom
Fonction/Va/eur
Typede valeur
E/ément(s) associé(s)
abbr
Abrège le nom d'une cellule de l'en-tête
Texte
<td>
axis
Spécifie une liste d'en-têtes
par des virgules
CDATA
<td> <th>
char
Définit l'alignement des caractères
pour les éléments du tableau
séparés
Caractère
ISO 10646
<col
<th>
/>
<colgroup>
<tbody>
<td>
<tfoot>
<th>
<the ad> <tr>
_--------Chapitre
11: Utiliserles tableauxpourégayervos pages
Nom
Fonction/Va/euT
Type de valeur
E/ément(s) associé(s)
charoff
Définit le décalage lorsque
l'alignement char est utilisé
Longueur (%)
<col />
<colgroup>
<tbody> <td>
<tfoot>
<th> <the ad>
<tr>
frame
Identifie les parties visibles de la
structure d'un tableau
{ "above" l"below
" l"border" l"box
" 1 "hsides"l"
lhs"l"rhs"l"
void" l"vsides"}
<table>
rules
Gouverne l'affichage de guides dans
le tableau
{"all" l"cols" 1"
groups" l"rione " 1
"rows"}
<table>
scope
Décrit la portée pour les cellules de
l'en-tête du tableau
{"col" l"colgroup" 1
"row" l"rowgroup"}
<td><th>
summary
Décrit l'objet du tableau pour la
synthèse vocale
Texte
<table>
span
Modifie le nombre de colonnes
auxquelles les attributs de col
s'appliquent
Nombre
<col />