lundi 24 décembre 2012

CSS Links


Styling Links

Links can be styled with any CSS property (e.g. color, font-family, background, etc.).
Special for links are that they can be styled differently depending on what state they are in.
The four links states are:
  • a:link - a normal, unvisited link
  • a:visited - a link the user has visited
  • a:hover - a link when the user mouses over it
  • a:active - a link the moment it is clicked

Example

a:link {color:#FF0000;}      /* unvisited link */
a:visited {color:#00FF00;}  /* visited link */
a:hover {color:#FF00FF;}  /* mouse over link */
a:active {color:#0000FF;}  /* selected link */
When setting the style for several link states, there are some order rules:
  • a:hover MUST come after a:link and a:visited
  • a:active MUST come after a:hover

Common Link Styles

In the example above the link changes color depending on what state it is in.
Lets go through some of the other common ways to style links:

Text Decoration

The text-decoration property is mostly used to remove underlines from links:

Example

a:link {text-decoration:none;}
a:visited {text-decoration:none;}
a:hover {text-decoration:underline;}
a:active {text-decoration:underline;}

Background Color

The background-color property specifies the background color for links:

Example

a:link {background-color:#B2FF99;}
a:visited {background-color:#FFFF85;}
a:hover {background-color:#FF704D;}
a:active {background-color:#FF704D;}



Styling Fonts CSS


CSS Font Families

In CSS, there are two types of font family names:
  • generic family - a group of font families with a similar look (like "Serif" or "Monospace")
  • font family - a specific font family (like "Times New Roman" or "Arial")

Font Family

The font family of a text is set with the font-family property.
The font-family property should hold several font names as a "fallback" system. If the browser does not support the first font, it tries the next font.
Start with the font you want, and end with a generic family, to let the browser pick a similar font in the generic family, if no other fonts are available.
Note: If the name of a font family is more than one word, it must be in quotation marks, like font-family: "Times New Roman".
More than one font family is specified in a comma-separated list:

Example

p{font-family:"Times New Roman", Times, serif;}

Font Style

The font-style property is mostly used to specify italic text.
This property has three values:
  • normal - The text is shown normally
  • italic - The text is shown in italics
  • oblique - The text is "leaning" (oblique is very similar to italic, but less supported)

Example

p.normal {font-style:normal;}
p.italic {font-style:italic;}
p.oblique {font-style:oblique;}

Font Size

The font-size property sets the size of the text.
Being able to manage the text size is important in web design. However, you should not use font size adjustments to make paragraphs look like headings, or headings look like paragraphs.
Always use the proper HTML tags, like <h1> - <h6> for headings and <p> for paragraphs.
The font-size value can be an absolute, or relative size.
Absolute size:
  • Sets the text to a specified size
  • Does not allow a user to change the text size in all browsers (bad for accessibility reasons)
  • Absolute size is useful when the physical size of the output is known
Relative size:
  • Sets the size relative to surrounding elements
  • Allows a user to change the text size in browsers
  • Set Font Size With Pixels

    Setting the text size with pixels gives you full control over the text size:

    Example

    h1 {font-size:40px;}
    h2 {font-size:30px;}
    p {font-size:14px;}

    Set Font Size With Em

    To avoid the resizing problem with older versions of Internet Explorer, many developers use em instead of pixels.
    The em size unit is recommended by the W3C.
    1em is equal to the current font size. The default text size in browsers is 16px. So, the default size of 1em is 16px.
    The size can be calculated from pixels to em using this formula: pixels/16=em

    Example

    h1 {font-size:2.5em;} /* 40px/16=2.5em */
    h2 {font-size:1.875em;} /* 30px/16=1.875em */
    p {font-size:0.875em;} /* 14px/16=0.875em */

    Use a Combination of Percent and Em

    The solution that works in all browsers, is to set a default font-size in percent for the <body> element:

    Example

    body {font-size:100%;}
    h1 {font-size:2.5em;}
    h2 {font-size:1.875em;}
    p {font-size:0.875em;}

Generic familyFont familyDescription
SerifTimes New Roman
Georgia
Serif fonts have small lines at the ends on some characters
Sans-serifArial
Verdana
"Sans" means without - these fonts do not have the lines at the ends of characters
MonospaceCourier New
Lucida Console
All monospace characters have the same width


CSS Text


Text Color

The color property is used to set the color of the text.
With CSS, a color is most often specified by:
  • a HEX value - like "#ff0000"
  • an RGB value - like "rgb(255,0,0)"
  • a color name - like "red"
  • Example

    body {color:blue;}
    h1 {color:#00ff00;}
    h2 {color:rgb(255,0,0);}

    Text Alignment

    The text-align property is used to set the horizontal alignment of a text.
    Text can be centered, or aligned to the left or right, or justified.
    When text-align is set to "justify", each line is stretched so that every line has equal width, and the left and right margins are straight (like in magazines and newspapers).

    Example

    h1 {text-align:center;}
    p.date {text-align:right;}
    p.main {text-align:justify;}Text Decoration

    The text-decoration property is used to set or remove decorations from text.

    The text-decoration property is mostly used to remove underlines from links for design purposes:

    Example

    a {text-decoration:none;}
    It can also be used to decorate text:

    Example

    h1 {text-decoration:overline;}
    h2 {text-decoration:line-through;}
    h3 {text-decoration:underline;}
    h4 {text-decoration:blink;}

    Text Transformation

    The text-transform property is used to specify uppercase and lowercase letters in a text.
    It can be used to turn everything into uppercase or lowercase letters, or capitalize the first letter of each word.

    Example

    p.uppercase {text-transform:uppercase;}
    p.lowercase {text-transform:lowercase;}
    p.capitalize {text-transform:capitalize;}

    Text Indentation

    The text-indentation property is used to specify the indentation of the first line of a text.

    Example

    p {text-indent:50px;}


CSS Styling


CSS Background

Background Color

The background-color property specifies the background color of an element.
The background color of a page is defined in the body selector:

Example

body {background-color:#b0c4de;}
With CSS, a color is most often specified by:
  • a HEX value - like "#ff0000"
  • an RGB value - like "rgb(255,0,0)"
  • a color name - like "red"
Look at CSS Color Values for a complete list of possible color values.
In the example below, the h1, p, and div elements have different background colors:

Example

h1 {background-color:#6495ed;}
p {background-color:#e0ffff;}
div {background-color:#b0c4de;}

Background Image

The background-image property specifies an image to use as the background of an element.
By default, the image is repeated so it covers the entire element.
The background image for a page can be set like this:

Example

body {background-image:url('paper.gif');}
Below is an example of a bad combination of text and background image. The text is almost not readable:

Example

body {background-image:url('bgdesert.jpg');}

Background Image - Repeat Horizontally or Vertically

By default, the background-image property repeats an image both horizontally and vertically.
Some images should be repeated only horizontally or vertically, or they will look strange, like this: 

Example

body
{
background-image:url('gradient2.png');
}
If the image is repeated only horizontally (repeat-x), the background will look better:

Example

body
{
background-image:url('gradient2.png');
background-repeat:repeat-x;
}

Background Image - Set position and no-repeat

body
{
background-image:url('img_tree.png');
background-repeat:no-repeat;
}
In the example above, the background image is shown in the same place as the text. We want to change the position of the image, so that it does not disturb the text too much.
The position of the image is specified by the background-position property:

Example

body
{
background-image:url('img_tree.png');
background-repeat:no-repeat;
background-position:right top;
}

Background - Shorthand property

As you can see from the examples above, there are many properties to consider when dealing with backgrounds.
To shorten the code, it is also possible to specify all the properties in one single property. This is called a shorthand property.
The shorthand property for background is simply "background":

Example

body {background:#ffffff url('img_tree.png') no-repeat right top;}




Three Ways to Insert CSS


Three Ways to Insert CSS

There are three ways of inserting a style sheet:
  • External style sheet
  • Internal style sheet
  • Inline style

External Style Sheet

An external style sheet is ideal when the style is applied to many pages. With an external style sheet, you can change the look of an entire Web site by changing one file. Each page must link to the style sheet using the <link> tag. The <link> tag goes inside the head section:
<head>
<link rel="stylesheet" type="text/css" href="mystyle.css">
</head>
An external style sheet can be written in any text editor. The file should not contain any html tags. Your style sheet should be saved with a .css extension. An example of a style sheet file is shown below:
hr {color:sienna;}
p {margin-left:20px;}
body {background-image:url("images/back40.gif");}

Internal Style Sheet

An internal style sheet should be used when a single document has a unique style. You define internal styles in the head section of an HTML page, by using the <style> tag, like this:
<head>
<style>
hr {color:sienna;}
p {margin-left:20px;}
body {background-image:url("images/back40.gif");}
</style>
</head>


Inline Styles

An inline style loses many of the advantages of style sheets by mixing content with presentation. Use this method sparingly!
To use inline styles you use the style attribute in the relevant tag. The style attribute can contain any CSS property. The example shows how to change the color and the left margin of a paragraph:
<p style="color:sienna;margin-left:20px">This is a paragraph.</p>

Multiple Style Sheets

If some properties have been set for the same selector in different style sheets, the values will be inherited from the more specific style sheet. 
For example, an external style sheet has these properties for the h3 selector:
h3
{
color:red;
text-align:left;
font-size:8pt;
}
And an internal style sheet has these properties for the h3 selector:
h3
{
text-align:right;
font-size:20pt;
}
If the page with the internal style sheet also links to the external style sheet the properties for h3 will be:
color:red;
text-align:right;
font-size:20pt;
The color is inherited from the external style sheet and the text-alignment and the font-size is replaced by the internal style sheet.

Multiple Styles Will Cascade into One

Styles can be specified:
  • inside an HTML element
  • inside the head section of an HTML page
  • in an external CSS file
Tip: Even multiple external style sheets can be referenced inside a single HTML document.

Cascading order

What style will be used when there is more than one style specified for an HTML element?
Generally speaking we can say that all the styles will "cascade" into a new "virtual" style sheet by the following rules, where number four has the highest priority:
  1. Browser default
  2. External style sheet
  3. Internal style sheet (in the head section)
  4. Inline style (inside an HTML element)
So, an inline style (inside an HTML element) has the highest priority, which means that it will override a style defined inside the <head> tag, or in an external style sheet, or in a browser (a default value).

CSS Id and Class


The id and class Selectors

In addition to setting a style for a HTML element, CSS allows you to specify your own selectors called "id" and "class".

The id Selector

The id selector is used to specify a style for a single, unique element.
The id selector uses the id attribute of the HTML element, and is defined with a "#".
The style rule below will be applied to the element with id="para1":

Example

#para1
{
text-align:center;
color:red;
}

The class Selector

The class selector is used to specify a style for a group of elements. Unlike the id selector, the class selector is most often used on several elements.
This allows you to set a particular style for many HTML elements with the same class.
The class selector uses the HTML class attribute, and is defined with a "."
In the example below, all HTML elements with class="center" will be center-aligned:

Example

.center {text-align:center;}You can also specify that only specific HTML elements should be affected by a class.
In the example below, all p elements with class="center" will be center-aligned:

Example

p.center {text-align:center;}


CSS Syntax


EXEMPLE 1

<html>
<head>
<style>
body {background-color:yellow;}
h1   {font-size:36pt;}
h2   {color:blue;}
p    {margin-left:50px;}
</style>
</head>

<body>

<h1>This header is 36 pt</h1>
<h2>This header is blue</h2>

<p>This paragraph has a left margin of 50 pixels</p>

</body>
</html>

EXEMPLE 2


<html>
<head>
<style>
body {background-color:tan;}
h1   {color:maroon;font-size:20pt;}
hr   {color:navy;}
p    {font-size:11pt;margin-left:15px;}
a:link    {color:green;}
a:visited {color:yellow;}
a:hover   {color:black;}
a:active  {color:blue;}
</style>
</head>

<body>

<h1>This is a header 1</h1>
<hr>

<p>You can see that the style
sheet formats the text</p>

<p><a href="http://www.w3schools.com"
target="_blank">This is a link</a></p>

</body>
</html>




learn CSS Basic

In our CSS tutorial you will learn how to use CSS to control the style and layout of multiple Web pages all at once.



CSS Example

body
{
background-color:#d0e4fe;
}
h1
{
color:orange;
text-align:center;
}
p
{
font-family:"Times New Roman";
font-size:20px;
}

What is CSS?

  • CSS stands for Cascading Style Sheets
  • Styles define how to display HTML elements
  • Styles were added to HTML 4.0 to solve a problem
  • External Style Sheets can save a lot of work
  • External Style Sheets are stored in CSS files

Styles Solved a Big Problem

HTML was never intended to contain tags for formatting a document.
HTML was intended to define the content of a document, like:
<h1>This is a heading</h1>
<p>This is a paragraph.</p>
When tags like <font>, and color attributes were added to the HTML 3.2 specification, it started a nightmare for web developers. Development of large web sites, where fonts and color information were added to every single page, became a long and expensive process.
To solve this problem, the World Wide Web Consortium (W3C) created CSS.
In HTML 4.0, all formatting could be removed from the HTML document, and stored in a separate CSS file.
All browsers support CSS today.


afficher les bouton radion en xhtml


afficher des boutons radios 

Les boutons radios fonctionnent comme les liste déroulantes. Ils permettent de choisir une et une seule valeur. D'habitude, on l'utilise quand on veut choisir entre 2 valeurs.
Aperçu :
Vous voulez vous abonner ?
   
Code XHTML :
<p>

Vous voulez vous abonner ?<br />
<input type="radio" name="question" value="oui" id="oui" /> <label for="oui">oui</label>
<input type="radio" name="question" value="non" id="non" /> <label for="non">non</label>

</p>
Comme nous l'avons dit au départ, nous nous somme limités au contexte basique des formulaires. Dans ce chapitre, on a réussi à faire un formulaire ce qui est déjà pas mal. Il nous reste encore à donner un peu plus de forme à notre formulaire.

afficher des cases à cocher en xhtml


Comment afficher des cases à cocher ?

A l'inverse, les cases à cocher permettent à l'utilisateur de choisir plusieurs valeurs à la fois. A partir de cet exemple, vous êtes en mesure de comprendre très vite leur intérêt.
Aperçu :
Quels sont vos centres d'intérêts ?
       
Code XHTML :
<p> Quels sont vos centres d'intérêts ? <br />

<input type="checkbox" name="interet" id="musique" />
<label for="musique">musique</label>

<input type="checkbox" name="interet" id="politique" />
<label for="politique">politique</label>

<input type="checkbox" name="interet" id="informatique" />
<label for="informatique">informatique</label>

<input type="checkbox" name="interet" id="cuisine" />
<label for="cuisine">cuisine</label>

</p>
Une personne peut cocher cuisine et informatique à la fois parce que son intérêt pour l'un n'empêche pas son intérêt pour l'autre. Il peut aussi ne rien choisir si rien ne l'intéresse.

Les liste deroulantes en xhtml


Il y a trois façons de proposer un choix à un utilisateur :

Les listes déroulantes

La balise <select> délimite la liste déroulante. Plusieurs choix sont proposés et c'est la balise <option> qui introduit ce choix.
Aperçu :
Code XHTML :
<select name="titre">

<option value="Mme" selected="selected">Madame</option>
<option value="Mlle">Mademoiselle</option>
<option value="Mr">Monsieur</option>

</select>
Dans cet exemple, nous proposons à l'utilisateur de choisir son titre. Evidemment, une personne ne peut pas être une demoiselle et un monsieur à la fois.
C'est là l'intérêt des listes déroulantes. En effet, elles sont utilisées lorsqu'il s'agit d'en choisir une et une seule valeur parmi plusieurs proposées. La valeur de l'attribut value nous sera utile au moment de l'envoi des valeurs sélectionnées. L'attribut selected indique une sélection par défaut de l'option Madame.
Consultez les tutoriaux suivants pour enrichir vos formulaires de cases à cocher et de boutons radios.

formulaire en XHTML


formulaire en XHTML

Sa réputation pour les saisies de données fait du formulaire un outil inéluctable dans l'environnement web. Que ce soient pour les recherches, pour l'inscription, ou pour l'envoi de mails, les formulaires présentent toujours un grand intérêt. Dans ce chapitre, nous allons apprendre les essentiels à savoir pour faire un formulaire.
La mise en forme du formulaire ne sera pas abordée ici, puisque c'est le rôle du CSS. En ce qui concerne l'envoi et les traitements des données saisies, ça dépasse le cadre de l'XHTML. Il faut un langage côté serveur, comme le PHP par exemple. Tout ceci étant dit, entrons dans le vif du sujet. Création du formulaire
La balise XHTML utilisée pour la création d'un formulaire est la balise <form>< /form>. Elle peut avoir plusieurs attributs, comme un nom par exemple qui est signalé par le mot clé name. Mais un des attributs très importants dans le formulaire est l'attribut method. Comme son nom l'indique, l'attribut method détermine la méthode du formulaire. Elle peut prendre deux valeurs possibles :
  • get : La méthode get correspond à l'envoi de données par URL. C'est-à-dire que les données saisies par l'utilisateur dans le formulaire sont renvoyées dans l'URL. Toutefois, elle est limitée à 255 caractères (théoriquement)
  • post : Avec la méthode post, il n'y a pas de limite ce qui fait que l'on peut envoyer la quantité de données qu'on souhaite (quoique les limitations du serveur s'appliquent tout de même. )

Les champs input

La balise <input /> est utilisée pour pas mal de choses dans les formulaires. Son attribut 'type' détermine son type, ou plus exactement son rôle dans le formulaire. Elle ne nécessite pas une balise fermante. Toutefois, il est essentiel de ne pas oublier le slash à la fin.

La zone de texte à une ligne

Une zone de texte à une ligne est un conteneur permettant d'introduire des textes à une ligne. On peut spécifier sa taille qui correspond à la longueur du rectangle. A part sa taille, il est surtout important d'indiquer son nom. Lorsque vous allez envoyer les données saisies en PHP, c'est le nom qui permet de récupérer cette valeur. Pour faire une zone de texte à une ligne, on utilise la balise input et on lui met comme type le texte comme suit :
Aperçu :
Code XHTML :
<input type="text" name="login" size="8" />

Les labels

Les labels servent à indiquer à l'utilisateur ce qu'il doit saisir dans le champ. Entre autres, c'est une courte définition de la valeur saisie dans le champ. Elle permet de faire le lien entre un champ et son intitulé par le biais de l'attribut 'for'.
Aperçu :
Code XHTML :
<form method="post" action="identification.php" >

<label for="login">Login </label>
<input type="text" name="login" size="8"/>

</form>

Les boutons

Dans un formulaire, il doit toujours y avoir un bouton. Le bouton sert à soumettre le formulaire une fois que les données sont saisies. Dans ce cas, il confirme l'envoi des données et c'est un bouton de type submit comme celui-ci par exemple qui sera utilisé :
Aperçu :
Code XHTML :
<input type="submit" value="Valider" />
Un autre bouton qui est de type reset sert à vider les champs, afin de les réinitialiser :
Aperçu :
Code XHTML :
<input type="reset" value="Vider" />
Si l'utilisateur décide d'annuler et/ou de réinitialiser ce qu'il a saisi, il peut cliquer sur ce bouton. Sauf que ce bouton n'est pas très pratique. En effet, l'utilisateur a décidé au départ de remplir le formulaire, ce n'est pas à la fin de sa saisie qu'il va tout annuler alors qu'il y a déjà passé du temps !
De plus, il arrive aussi parfois de presser sur ce bouton sans le faire exprès et ça oblige à tout refaire. Ce qui peut s'avérer fastidieux dans le cas des longs formulaires. Champ mot de passe
Quand vous saisissez votre mot de passe sur Yahoo par exemple, vous voyez apparaître dans le zone de texte des étoiles ou des points à la place des caractères que vous saisissez. Vous savez que tout ceci a pour but de préserver la discrétion et la sécurité.
Pour que quelqu'un de malveillant qui se met derrière vous ne retienne pas votre mot de passe et en fasse un mauvais usage. Vous voulez bien faire ce genre de choses mais vous ne savez pas comment faire. A partir de maintenant vous le sauriez, il suffit de mettre un input de type password :
Aperçu :
Code XHTML :
<input type="password" name="pass" size="8"/>

Formulaire de login

Avec toutes ces notions de base, vous êtes maintenant en mesure de faire votre propre formulaire de login. En voici un exemple mais vous pouvez en faire comme bon vous semble :
Aperçu :


Code XHTML :
<form method="post" action="identification.php" >

<label for="login">Login :</label><input type="text" name="login" size="8"/><br /><br />
<label for="pass">Mot de pass :</label><input type="password" name="pass" size="8"/>

</form>

Les zones de texte multi ligne

L'input de type texte nous a servi pour faire une zone de texte à une ligne. Mais pour en faire une en plusieurs lignes, on utilise la balise textarea. On peut le rencontrer dans les formulaires d'envoi de commentaire par exemple :
Aperçu :


Code XHTML :
<form method="post" action="commentaire.php" >
<label for="pseudo">Votre pseudo :</label>
<input type="text" name="pseudo " size="8"/><br /><br />
<label for="comment">Vos commentaires :</label>
<textarea name="comment" ></textarea>

</form>
Notez bien que contrairement à input, la balise textarea nécessite une balise fermante.

La balise object en XHTML


La balise object en XHTML

Incorporer un objet dans une page XHTML sous entend que l'on introduit un fichier ou des données spécifiques externe à HTMLCela peut être un fichier de données, une animation Flash, etc. Mais il peut s'agir aussi d'un programme exécutable, tel que par exemple des applets Java ou des contrôles ActiveX. La balise <object>
L'élément object est utilisé pour créer un nouvel objet dans un document. C'est une balise block. Elle est supportée par la plupart des navigateurs notamment par Internet Explorer depuis la version 3 et par Netscape depuis la version 4.
On ajoute un texte entre les balises d'ouverture et de fermeture de la balise object. Ce texte sera affiché à la place de l'objet lorsque l'utilisateur n'a pas le plugin installé sur son poste. Une autre utilité de ce texte est aussi le fait qu'il sert de description pour les personnes qui sont victimes d'un handicap visuel.
L'élément object n'a pas d'attribut obligatoire mais les propriétés de base utilisées dans la balise object sont surtout border, name, width et height. L'attribut border permet d'entourer l'objet d'une bordure. La mention de l'épaisseur de la bordure se fait à l'aide de l'unité pixels.
On peut aussi donner un nom à l'objet pour rendre facile son identification. Par l'attribut width, la largeur de la zone occupée par l'objet est définie. Toujours dans la balise d'ouverture <object>, on spécifie la hauteur prise par l'objet dans la page grâce à l'attribut height. Fichier de données
On peut insérer plusieurs types de fichier de données comme les vidéos, les fichiers svg, etc en tant qu'objets dans une page XHTML. Il faut alors spécifier à l'aide de l'attribut data la référence de l'objet. Le principe de chemin relatif et absolu, ainsi que tous les autres principes sur les URL sont valables pour le contenu de data.
Par exemple :
data="repertoire/fichier.ext "
data="../fichier.ext">
data="../ailleurs/fichier.ext"
Il nous est aussi possible de mentionner le type mime du fichier. Pour des fichiers de données référencés avec data, l'attribut type= permettant d'affecter le type mime du fichier en lui donnant comme valeur un type Mime valable. Dans l'exemple ci-dessous on insère une image si jamais l'objet ne peut pas être affiché. Mais comme il est indiqué plus haut, il est aussi permis de mettre un texte à la place.
<object data="fichier.svg" type="image/svg+xml" width="300" height="200">
<img src="imagepardefaut.jpg" alt="image par défaut" />
</object>

Intégrer une animation flash

A l'aide de la propriété object, insérer du flash dans une page web devient une chose assez facile. Comme pour les données, il y a juste à spécifier le chemin du fichier en question. La syntaxe est la suivante :
<object data="chemin du fichier" type="application/x-shockwave-flash" width="longueur"
height="largeur"> <param name="nom de la valeur" value="valeur">

Votre navigateur ne peut pas afficher du flash.Installer le pluggin associé

</object>
La balise <param> est une balise de type inline qui sert à passer des paramètres à l'objet qui la contient. Intégrer un applet
Un applet Java est un programme exécutable dont les sorties écran peuvent être affichées à l'intérieur d'une fenêtre d'affichage du navigateur Web. Il peut s'agir d'une animation ou de graphiques par exemple. Après compilation, on a les noms d'applets Java en extension .class.
Source :
<object archive="archive " codetype="application/java-vm" codebase="http://www.domaine.net/applet/" classid="java:Nomdelapplet" width="longueur" height="largeur"> <param name="nom" value="valeur" />

Veuillez installer JVM !

</object>

Création d'un tableau en XHTML


Création d'un tableau en XHTML

La première réflexion à avoir quand on va créer un tableau c'est de savoir ce qu'on va mettre dedans. Ensuite, il faut s'interroger sur les relations entre les données contenues dans le tableau. C'est ainsi qu'on peut lui trouver un titre, mettre en valeur tel ou tel contenu. Il y a 4 sortes de balises à connaitre pour faire des tableaux en XHTML.
  • La balise table : La première balise à connaître pour créer un tableau en XHTML c'est la balise <table>< /table>. Elle délimite la partie code du tableau lui-même.
  • La balise tr : Après avoir spécifié la balise table, on définit la structure du tableau. C'est-à-dire qu'il faut savoir comment seront structurées les lignes et les cellules du tableau. Les balises < tr></tr> permettent de définir une ligne.
  • La balise td : En termes de balise, les cellules sont emboîtées dans les lignes. Un bloc de balise < tr></tr> contient un ou plusieurs blocs de balise <td></td>.Ces derniers correspondent à des cellules.
  • La balise th : La balise th quant à elle, permet d'organiser le contenu du tableau. Son usage devient très courant surtout qu'elle permet d'appliquer facilement les styles CSS aux tableaux. On l'utilise juste après la balise table.
L'exemple suivant nous montre donc ce que peut être un tableau à la base.
Aperçu :
titre cellule1titre cellule2
ligne1 cellule1ligne1 cellule2
ligne2 cellule1ligne2 cellule2
Code XHTML :
<table>

<tr>
  <th>titre cellule1</th>
  <th> titre cellule2</th>
</tr>
<tr>
  <td>ligne1 cellule1</td>
  <td> ligne1 cellule2</td>
</tr>
<tr>
  <td>ligne2 cellule1</td>
  <td> ligne2 cellule2</td>
</tr>

</table>
Ce tableau contient donc 3 lignes et 2 cellules. Sur la première ligne se trouvent les titres de chaque cellule.

Fusionner les colonnes d'un tableau

Pour fusionner plusieurs colonnes, on utilise l'attribut colspan. On lui donne une valeur numérique selon le nombre de colonnes à fusionner. Dans l'exemple précédent, essayons par exemple de fusionner les deux colonnes de la deuxième ligne.
Aperçu :
titre cellule1titre cellule2
ligne 1 cellule 1 et cellule2 fusionnées
ligne2 cellule1ligne2 cellule2
Code XHTML :
<table>

<tr>
  <th>titre cellule1</th>
  <th> titre cellule2</th>
</tr>
<tr>
  <td colspan="2">ligne 1 cellule 1 et cellule2 fusionnées</td>
</tr>
<tr>
  <td>ligne2 cellule1</td>
  <td> ligne2 cellule2</td>
</tr>

</table>

Fusion de ligne

En appliquant rowspan à une balise td, on a les mêmes résultats sur les lignes. Comme colspan, on lui assigne une valeur numérique.
Aperçu :
titre cellule1titre cellule2
cellule1 ligne1 et 2 fusionnéesligne1 cellule2
ligne2 cellule2
Code XHTML :
<table>

<tr>
  <th>titre cellule1</th>
  <th> titre cellule2</th>
</tr>
<tr>
  <td rowspan="2">cellule1 ligne1 et 2 fusionnées </td>
  <td> ligne1 cellule2</td>
</tr>
<tr>
  <td> ligne2 cellule2</td>
</tr>

</table>

Un tableau compartimenté

Compartimenter un tableau consiste à le diviser en 3 parties bien distinctes. Lorsque le tableau est très grand, il est intéressant de le découper en compartiments. Trois zones différentes du tableau sont définies chacune par la balise associée :
  • L'en-tête : C'est la partie haute du tableau, elle se définit avec les balises <thead></thead>
  • Le corps : C'est la partie centrale du tableau, elle se définit avec les balises <tbody></tbody>
  • Le pied du tableau : C'est la partie basse du tableau, il se définit avec les balises <tfoot></tfoot>
Généralement, l'entête contient les titres de chaque cellule. L'entête sera donc la partie où il y a les th. La partie tbody est le corps du tableau lui-même. Il correspond au contenu. Dans le pied du tableau, on met des remarques, ou l'auteur, ou la source.
Certains se servent aussi de tfoot pour y placer des repères, en répétant tout simplement ce qu'il y a dans thead par exemple. La norme W3C exige qu'on mette la balise tfoot avant tbody dans le code si on veut que notre page soit valide.

Légende d'un tableau

L'attribut caption permet de mettre une légende ou un titre sur le tableau. Il doit décrire en quelques mots ce que contient le tableau.
Avec toutes ces nouvelles notions sur le tableau, en voici encore un autre exemple avec un tableau plus élaboré.
Aperçu :
Notes des élèves de la classe de sixième
NomMathématiquesSciences naturellesPhysique
ExamenDevoirMoyenneExamenDevoirMoyenneExamenDevoirMoyenne
Résultats publiés le 01/09/2008
Assan Tessan101412121815131112
Bernard Chateau8109898,51369,5
Helmut Shröder121815898,51369,5
Willy Jons1369,5898,58109
Code XHTML :
<table>

<caption>Notes des élèves de la classe de sixième</caption>
<thead>
<tr>
   <th rowspan="2">Nom</th>
   <th colspan="3" abbr="math">Mathématiques</th>
   <th colspan="3" abbr="sn">Sciences naturelles</th>
   <th colspan="3" abbr="phys">Physique </th>
</tr>
<tr>
   <th>Examen</th>
   <th>Devoir</th>
   <th>Moyenne</th>
   <th>Examen</th>
   <th>Devoir</th>
   <th>Moyenne</th>
   <th>Examen</th>
   <th>Devoir</th>
   <th>Moyenne</th>
</tr>
</thead>



<tfoot>
<tr>
   <th colspan="10">Résultats publiés le 01/09/2008</th>
</tr>
</tfoot>



<tbody>
<tr>
   <td>Assan Tessan</td>
   <td>10</td>
   <td>14</td>
   <td>12</td>
   <td>12</td>
   <td>18</td>
   <td>15</td>
   <td>13</td>
   <td>11</td>
   <td>12</td>
</tr>
<tr>
   <td>Bernard Chateau</td>
   <td>8</td>
   <td>10</td>
   <td>9</td>
   <td>8</td>
   <td>9</td>
   <td>8,5</td>
   <td>13</td>
   <td>6</td>
    <td>9,5</td>
</tr>
<tr>
   <td>Helmut Shröder</td>
   <td>12</td>
   <td>18</td>
   <td>15</td>
   <td>8</td>
   <td>9</td>
   <td>8,5</td>
   <td>13</td>
   <td>6</td>
   <td>9,5</td>
</tr>
<tr>
   <td>Willy Jons</td>
   <td>13</td>
   <td>6</td>
   <td>9,5</td>
   <td>8</td>
   <td>9</td>
   <td>8,5</td>
   <td>8</td>
   <td>10</td>
   <td>9</td>
</tr>
</tbody>


</table>

Tableaux XHTML et Accessibilité

L'accessibilité est un des principes fondamentaux de XHTML. Rendre la page accessible à tout le monde, même aux personnes malvoyantes est l'un de ses objectifs. EnXHTML, il y a de nombreuses balises pour l'accessibilité des tableaux. Il y a notamment celles très utilisées en CSS, dont on parlera dans le tutoriel CSS. Mais dans ce chapitre on va surtout parler de deux notions: summary et abbr summary
La balise table peut avoir un attribut qui s'appelle summary. Le rôle de cet attribut est pareil à celui de la balise caption sauf qu'il permet une description plus longue. Ceci est fait pour que les personne malvoyantes accèdent à une description du contenu. Il n'est donc pas affiché par les navigateurs habituels. On l'insère dans la balise table comme suit
<table summary="Notes des élèves de la classe de sixième du collège de France pour l'année scolaire 2008-2009">

L'attribut abbr

L'attribut abbr quant à lui est un attribut de la balise h. Il permet de définir un titre plus court. Toujours pour les navigateurs des malvoyants, l'objectif est d'éviter la répétition d'un titre de colonne trop long à chaque ligne.
Aperçu :
Mathématiques ...Sciences naturelles ...Physique ...
Code XHTML :
<tr>
<table>
<th abbr="math">Mathématiques... </th>
<th abbr="sn">Sciences naturelles... </th>
<th abbr="phys">Physique... </th>
</tr>
</table>