Nous allons commencer notre aprentissage de la création de sites WEB par le plus important : le contenu !
Pour cela nous utliserons le HTML Strict et ne nous occuperons dans un premier temps que de l'information, sa hierarchie et sa signification. Les pages créées ne seront pas très agréables à voir mais elles seront lisibles par tous : autant par les navigateurs graphiques ou textes / auraux / brailles, que des moteurs de recherches et autre robots indexateurs...
HTML signifie HyperText Markup Language. En clair, c'est un language (format de fichier) qui permet d'écrire des pages internet, et cela au moyen de balises (Markup, en anglais).
Qu'est-ce que des balises ? C'est une façon de hierarchiser ses données. Exemple : pour indiquer un titre, on utilise la balise H1 ; on dit que ce texte est contenu dans la balise. En fait, il est entouré par deux morceaux de textes : <h1>Mon titre</h1>.
Les balises peuvent s'embriquer les unes dans les autres pour former une hierarchie. Exemple courrant : une liste est décrite par une balise UL, et chaque ligne est délimitée par une autre balise, qui est comprise à l'interieur de la balise de liste.
Ensuite, peu impotrte le nombre d'espaces (espaces, ou tabulations, ou même retour à la ligne)que vous mettez dans votre source (le fichier que vous éditez), le navigateur remplacera tous ceu qui se suivent par un et un seul espace (sauf en début de ligne : là il n'en mettra aucun).
Nous avons maintenant dit au navigateur que nous avons bien créé une page HTML et lui avons donné son titre à afficher dans la barre des tâches.
Mais rien n'y est encore affiché. Nous allons donc remplir le corps (<body>) avec du contenu.
Globalement, notre contenu est composé de plusieurs types de données : des titres plus ou moins importants, des paragraphes, des listes, des liens, des images ou des tableaux : il n'y a pas grand chose d'autre, si ce n'est que certains passages ont besoin d'être insistés, d'autres sont plus importants...
Notez que je n'ai pas parlé de passages en gras ou soulignés : le HTML s'interesse à la signification du texte, pas à son rendu à l'écran ou au papier, car une page HTML peut aussi être lue par un logiciel de synthèse vocale, ou de bien d'autres façons : dans ces cas il est abérant de parler de texte en rouge, par exemple (dans ce cas, il faut s'intéroger sur le pourquoi de ce rouge : est-ce important, est-ce dangeureux... les balises HTML seront là pour donner la signification, la forme sera fonction du style CSS pour les écrans où de l'intonnation pour les synthétiseurs vocaux).
En HTML il existe deux sortes de balises :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
On récapitule donc, voici le squelette (mince, pour l'instant) de toute page HTML :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Insérer ici le titre de la page</title>
</head>
<body>
C'est ici que nous allons mettre le contenu de la page !
</body>
</html>
Note : dans la suite des exemples, je ne donnerais plus tout le fichier HTML. Je tiendrait pour acquis que tout fichier HTML doit contenir les balises <html>, <head> et <body>. Les exemples viendront alors s'intercaller entre les balises <blody> et </body>.
L'élement fondamental dans les pages internet c'est le texte (hormis les sites de jeux flashs et autres divertissements, bien sûr). Tout texte dans une page HTML doit toujours être contenu dans une balise bloc : un paragraphe, une liste (nous verrons cela bientôt), etc... mais jamais directement dans le <body> ! Voyons donc les balises principales :
<p></p>
(Paragraphe) : la plupart des textes de vos pages s'y trouvent,<pre></pre>
(Paragraphe préformaté) : cette balise est presque identique au paragraphe ci-dessus, à la différence près que les espaces et autre retours à la ligne sont gardés tel quels. En pratique vous ne l'utiliserez presque jamais, sauf pour inclure des exemples de code, si bien sûr votre site est destiné à des programmeurs,<br>
(Saut de ligne) : c'est une balise seule (pas besoin de la fermer avec un éventuel </br> par exemple). Parfois vous aurez besoin d'aller à la ligne dans vos paragraphes (ou dans une ligne de liste...)Voyons donc un petit exemple, en regardant le code HTML et le résultat produit :
<p>Ceci est un paragraphe normal...<br>... de deux lignes :
remarquez que les retours à la ligne s'effectuent avec la balise br
et que tous les autres espacements et retours à la ligne
sont remplacés par un seul espace par le navigateur.</p>
<p>Deux paragraphes sont espacés de manière à les distinguer.</p>
<pre>Voici maintenant un paragraphe préformaté.
Dans celui-ci, les espaces supplémentaires, tabulations et retours
à la ligne sont pris en compte par le navigateur.
Veuillez l'utiliser avec parcimonie, lorsque cela est vraiment nécessaire,
comme les exemples de code source (que nous verrons plus tard).</pre>
Et voici ce que cela donne dans un navigateur :
Ceci est un paragraphe normal...
... de deux lignes :
remarquez que les retours à la ligne s'effectuent avec la balise br
et que tous les autres espacements et retours à la ligne
sont remplacés par un seul espace par le navigateur.
Deux paragraphes sont espacés de manière à les distinguer.
Voici maintenant un paragraphe préformaté. Dans celui-ci, les espaces supplémentaires, tabulations et retours à la ligne sont pris en compte par le navigateur. Veuillez l'utiliser avec parcimonie, lorsque cela est vraiment nécessaire, comme les exemples de code source (que nous verrons plus tard).
C'est bien beau d'avoir des pages avec du texte, mais ce n'est pas très lisible. Pour les séparer et les identifier, on utilise généralement des titres (bon, je ne vous apprends rien).
Voici donc les balises à utiliser :
<h1></h1>
(Titre de page) : une seule fois en tout début de page, comme son nom l'indique,<h2></h2>
à <h6></h6>
(Sous-titres) : ils sont hiérarchisés du plus important (h2) au plus précis (h6),Quelques précisions : chacunes de vos pages ne doit contenir qu'un et un seul titre de niveau 1, chaque paragraphe sera introduit par un titre de niveau 2 lorsque nécessaire, et les sous-titres seront des titres de niveaux 3 jusque 6. Ainsi de suite...
Bien : nous allons créer votre première page, intéressante cette fois !
Vous avez surement un but pour lire ce tutoriel : vous avez un projet de site et y avez certainement déjà réfléchi. Je vous propose de le réaliser ensemble.
Prenez une page typique, qui contient du texte (une page d'information... mais pas la page d'accueil : elle contient plus de liens que de contenu et nous n'avons pas encore vu comment faire des liens : nous nous concentrons pour l'instant sur le contenu).
Repérez le titre principal de votre page (de quoi parle-t-elle) et les différents paragraphes, avec leur titres s'ils en ont (c'est une bonne idée d'en avoir).
Appliquons donc ce que l'on a appris :
Et voilà ! Vous venez de faire votre première page internet ; voici à quoi votre code devrait ressembler :
<html>
<head>
<title>Tutoriel HTML et CSS</title>
</head>
<body>
<h1>Tutoriel HTML et CSS</h1>
<h2>Utilité</h2>
<p>Ces languages sont les standards du WEB et sont reconnus par tous les navigateurs<br>
Apprenons-les donc !</p>
<h2>Apprentissage</h2>
<h3>Le HTML</h3>
<p>Et vous ne le connaissez pas déjà ? Tant pis, ce n'est qu'un exemple !</p>
<h3>Le CSS</h3>
<p>Pareil : nous le verrons plus tard</p>
</body>
</html>
Et voici ce que cela donne dans un navigateur :
Ces languages sont les standards du WEB et sont reconnus par tous les navigateurs
Apprenons-les donc !
Et vous ne le connaissez pas déjà ? Tant pis, ce n'est qu'un exemple !
Pareil : nous le verrons plus tard
OK : ce n'est pas très beau ; mais ne vous inquiétez-pas : nous verrons comment allécher le visiteur lorsque nous verrons le CSS : ce sont deux choses différentes et nous nous concentrons pour l'instant sur le contenu. Comme vous le voyez c'est très simple et on arrive déjà à quelque chose de potable et d'utilisable. Si vous n'avez qu'une seule page à mettre en ligne et sans liens ou images (juste pour expliquer un sujet) c'est déjà efficace (sauf s'il vous faut des listes).
Vous avez trois sortes de listes : les listes non ordonnées (ou "à puces"), les liens ordonnées (numérotées), et les listes de définitions (c'est un peu particulier et on n'en a pas souvent besoin).
Voici pour commencer les deux premiers styles de listes : on les délimite par ul ou ol selon leur nature, et chaque ligne est entourée par li :
<ul></ul>
(Liste non ordonnée) : liste à puces (souvent rondes, carrées...),<ol></ol>
(Liste ordonnée : liste numérotée, 1. pour le premier élement, 2. pour le second, etc...,<li></li>
(Ligne de liste) : impérativement à l'interieur d'un <ul> ou d'un <ol> ; tout texte à l'intérieur d'une liste (ul ou ol) doit être contenu dans une <li></li>.Note : la balise ol peut prendre un argument start : <ol start="1"></ol>
, afin de déterminer le numéro du premier item. C'est attribue désigné 'dépreciated' par le standard HTML mais il n'existe pas de substitue ; or il peut parfois être intéressant (mais ne pas en abuser).
Voici un exemple des listes qui, en plus, vous montre comment imbriquer les listes les unes dans les autres, en ouvrant une seconde liste <ul> ou <ol> à l'interieur d'une ligne de la liste parente :
<ul>
<li>Première ligne de la liste non ordonnée (puces)</li>
<li>Seconde ligne de la liste non ordonnée (puces)</li>
<li>Troisième ligne, mais on ne referme pas la balise : on ouvre une autre balise ul ou ol :
<ul>
<li>Première ligne de la liste ordonnée, qui est imbriquée dans la première liste</li>
<li>Ensuite, ne pas oublier de refermer la ligne de la première liste après avoir fermée la seconde liste</li>
</ul>
</li>
<li>Si vous suivez mon raisonnement... :-)</li>
</ul>
<p>Et voici une liste ordonnée :</p>
<ol>
<li>Commencer par porter l'eau à ébulition</li>
<li>Puis, placez les œux dans la caserolle</li>
<li>Et là, veuillez faire ces étapes dans l'ordre :
<ol>
<li>Prennez une petite assiète</li>
<li>Placez-y la bave de crapeau (bon d'accord, je manque d'imagination pour cet exemple)</li>
<li>Et puis débrouillez-vous...</li>
</ol>
</li>
<li>Bon appéti, bien sûr !</li>
</ol>
Et vous obtiendrez celà :
Et voici une liste ordonnée :
Parfois, vous aurez à définir une liste de termes ou, plus généralement, à avoir une liste dont chaque ligne est formée d'un objet suivit d'une description.
Ces listes étant peu utilisées, vous pouvez passer ce paragraphe, mais il est intererssant de connaître leur existance !
Voici donc les balises utilisées pour cette troisième forme de liste :
<dl></dl>
(Liste de définitions) : englobe la liste,<dt></dt>
(Item de Terme) : quelques mots à définir,<dd></dd>
(Item de Définition) : définition du ou des terme(s) le(s) plus proche(s) au dessus.Vous pouvez très bien définir un terme (dt) sans lui associer de définition (dd).
Vous pouvez aussi associer plusieures définitions (dd) à un seul terme (dt).
Voici donc quelques exemples :
<dl>
<dt>Éléments de niveau bloc</dt>
<dd>
Éléments qui peuvent généralement contenir des blocs à leur tour, ou du contenu en ligne.
</dd>
<dt>Éléments de niveau texte</dt>
<dt>Éléments en ligne</dt>
<dd>
Éléments qui ne peuvent contenir que des éléments en ligne.
</dd>
</dl>
Comme pour les autres balises, nous verrons dans la partie CSS comment rendre plus agréable ces éléments : comment différencier mieux les termes des définitions, comment les placer sur une ligne...
Enfin, ce genre de liste, comme dit précédemment, peut être utilisée pour autre chose que de simples définitions.
Ainsi, un calendrier peut utiliser cette structure : c'est une liste d'items, compsés d'un court en-tête, la date, et d'un texte qui en dépent, le ou les évennements. Comme nous le verssons plus tard, il est alors judicieux d'attribuer une classe différente à ces différentes utilisations de la liste de définitons afin de pouvoir les styler en conséquence.
Une pièce de théatre est peut aussi être rendue à l'aide d'une liste de définition : les termes sont alors les personnages, et les "définitions" sont les répliques !
Voici un exemple de calendrier créé à l'aide d'une liste de définition :
<dl class="calendrier">
<dt>18 février</dt>
<dd>
Journée du libre à Trifouilli les Oies.
</dd>
<dt>1 mars</dt>
<dd>
Anniversaire d'une grande personnalité.
</dd>
</dl>
Styler les listes de définitions »
Avant de voir les liens et les images, il est nécessaire de s'arrêter quelques instants sur la façon de désigner ces fichiers qui sont externes à la page.
Il existe deux façons de décrire une adresse (un chemin d'accès au fichier, que ce soit une autre page ou une image) :
Évidemment, tout site qui se respecte contient des liens, que ce soit vers d'autres pages du site, vers d'autres sites ou vers des fichiers variés que le visiteur pourra télécharger.
C'est un peu spécial, car il n'y a qu'une seule balise pour deux concepts un peu différents :
<a href="adresseCible">Texte du lien</a>
: Lien vers adresseCible (adresse relative ou absolu : Hyper text REFerecne) ; le texte qui sera visible (souligné) dans le navigateur est celui entre les deux balises ouvrante et fermante.<a name="NomDeLAncre"></a>
(ancre) : ceci place une ancre dans la page, qui pourra être atteinte grâce à un lien. Oui, c'est la même balise que pour un lien et on ne met rien entre la balise entrante et fermante : c'est pas très intuitif mais c'est comme ça ! Veillez bien à refermer la balise.Petites explications sur les ancres, tout de même : si vous avez une page assez conséquente, il est assez judicieux d'afficher un sommaire en début de page, avec des liens qui ménreont aux paragraphes les plus importants. Un bon exemple est cette page du tutoriel : elle est assez grande et en début de page il y a une liste des paragraphes. Chaque paragraphe contient une ancre.
Attention : votre ancre doit être placée à l'intérieur d'un paragraphe, d'un titre, d'une ligne, etc... Mais pas directement dans le corp de la page HTML. Exemple de bon code : <h2><a name="finalite"></a>Finalité</h2>
Il faut juste remarquer que l'attribue href est utilisé pour un lien, et que l'attribue name pour une ancre.
Et quand on veut l'utiliser pour faire un lien vers elle on a recours au caractère '#' :
<a href="liens.html#site">Création du site</a>
(le href contient un lien relatif vers le fichier liens.html du même dossier que celui qui contient le index.html) : lors du clic sur ce lien, liens.html sera chargée par le navigateur et celui-ci irra tout de suite à l'ancre dont le nom est donné après le '#' : cela évite au visiteur de devoir scroller pour trouver le paragraphe recherché dans la page,<a href="#site">Création du site</a>
il s'agit d'une ancre qui est sur la page courrante : pratique si l'on a de longues pages : il n'y a qu'à faire une liste en début de page en guise d'index, avec des liens vers les passages concernés pour une navigation plus rapide,<a href="#">Haut de page</a>
permet de revenir en haut de la page courrante.Allez : un court exemple qui résume tout ça :
<ul>
<li><a href="#premier_paragraphe">Aller au premier paragraphe</a></li>
<li><a href="#second_paragraphe">Aller au second paragraphe</a></li>
</ul>
<p>Voici un texte contenant un <a href="une_page.html">lien vers une autre page du site</a>,
puis un autre <a href="http://www.kde.org/">lien vers un site externe</a>,
ainsi qu'un lien pour télécharger <a href="monprog3000_pro.zip">MonProgramme3000 Pro Edition</a>.</p>
<h2><a name="premier_paragraphe"></a>Premier paragraphe</h2>
<p>Avec de l'imagination, on voit ici un paragraphe très long mais très intéressant.</p>
<h2><a name="second_paragraphe"></a>Second paragraphe</h2>
<p>Encore un peu d'imagination...</p>
Voici un texte contenant un lien vers une autre page du site, puis un autre lien vers un site externe, ainsi qu'un lien pour télécharger MonProgramme3000 Pro Edition.
Avec de l'imagination, on voit ici un paragraphe très long mais très intéressant.
Encore un peu d'imagination...
Afin de rendre les pages plus attractives, l'insertion d'images est un bon moyen simple et efficace (attention cependant à ne pas abuser des GIFs animés, vite fatigant et pouvant être assimilés à de la publicité).
Note importante : nous parlons ici de HTML, donc de contenu (oui, je radote !). Il n'est donc pas question ici de parler d'images de fond, ou de bordures et autre objets faisant partie du design du site : ces aspects seront traités par les feuilles de style CSS. Nous parlons ici d'images illustrant un article, des schémas, les photo de vacances, celles d'un produit, le logo du site, etc...
C'est ici assez simple, il n'y a qu'une balise :
<img src="adresseFichierImage" alt="texte alternatif" width="x" height="y">
(Image) : pas de balise fermante car il n'y a rien à mettre dedant (comme le br, et contrairement aux autres balises) : avec le fichier image dans le src (ça marche de la même façon que le href du lien) et un texte explication (alternatif) dans le alt (essayer de toujours en fournir un).Note : La hauteur et largeur dans height et width sont là pour aider le navigateur à mettre en page alors que les images ne sont pas encore chargées (ça évite des pages qui "sautent" à chaque fois que le navigateur a chargé une image car il n'a pas fait assez de place pour celle-ci), c'est facultatif, mais je suis sûr que vous avez déjà visité une page avec un long texte et des images entre deux : vous commencez à lire et le texte se retrouve dix lignes plus bas d'un seul coup à cause d'une image qui s'est chargée au dessus.
Note 2 : le texte alternatif est obligatoire. Il sera affiché pendant le chargement de l'image, ou si elle n'a pas été trouvée. Mais aussi pour les navigateurs textuels ou brailles, histoire que vos visiteurs non-voyants puissent profiter des images aussi. S'il s'agit d'une icônes, d'un logo ou d'une image qui n'a pas d'intérêt à être "lu" plutôt que "vu", spécifiez un texte alternatif vide, comme ceci : <img src="ico32-telecharger.png" alt="">
. Certains navigateurs affichent aussi ce texte dans une info-bulle (tooltip). Si vous souhaitez que le texte apparaisse en info-bulle dans tous les navigateurs, utilisez l'attribue title
.
Note 3 : les images doivent toujours être positionnées dans un bloc, généralement un paragraphe.
Comme si c'était la peine d'ajouter un exemple ;-) :
<p>Une photo du bambin :<br>
<img src="files/mon_bebe.jpg" alt="le petit pinguin que j'ai adopté, il porte
toujours des couches et a toujours sa tétine et son hochet" width="148" height="168"></p>
Une photo du bambin :
Après avoir vu les balises basiques pour tout document (titres et paragraphes), en voici quelques autres qui permettent de donner une signification au texte ! Elles doivent être utilisées au lieu de balises pour mettre en gras, italique, etc...
<sup></sup>
: Exposant, exemples : Nous somme le 1er du mois, et 24 = 16<sub></sub>
: Indice, exemples : H2O est la formule chimique de l'eau et C21H27NO celle du méthadone,<em></em>
: Amphase (EMphasized, en anglais) : pour être plus clair, c'est un morceau de texte (celui entre la balise ouvrante et fermante) que l'on souhaite mêttre en valeur : en italique par défaut (mais, comme le strong, ce sera modifiable par CSS : mettre en gras, couleur, souligner, transformer un texte en majuscules...).<strong></strong>
: Amphase forte pour insister sur quelques mots importants (par exemple, tous les mots en gras dans ce tutoriel),<abbr title="Signification">Abbr.</abbr>
: abréviation : la signification doit être dans le title, et l'abréviation doit être entre la balise ouvrante et fermante : cela donne des informations suplémentaires afin que le visiteur ne soit pas perdu dans les abréviations inconnues,<acronym title="Signification">S.I.G.L.E.</acronym>
: La même chose mais il s'agit là d'un Sigle (innitiales),<dfn></dfn>
: Définition d'un terme, pour expliquer aux lecteur la signification d'un mot ou d'un groupe de mot (par exemple dans un document technique qui se baserait sur cette conaissance pour le reste des pages),<cite></cite>
: Citation d'ouvrage, telle qu'un titre de magazine ou de journal, nom de vaisseau, référence à d'autres sources, ou citations d'auteurs (souvent rendue en italique),<q cite="Personne originale"></q>
: Citation exacte, ie. citation telle quelle, sans ajouter ou retirer du contenu à la phrase de l'auteur original. Doit être entouré par des guillemets par les navigateurs (vu que ce n'est pas le cas pour tous les navigateurs, nous verrons comment remédier à cela avec CSS).<del cite="http://www.site.org/changes.html#1.3" datetime="2004-02-18T00:00:00-05:00" title="Machin est obsolète">En utilisant Machin, vous serez à la pointe de la technologie !</del>
: Partie supprimée (ce peut être un bloc ou un contenu en ligne). Les attribues sont facultatifs : cite indique une page expliquant la raison de la suppression ; title en donnant une courte explication (typiquement rendue dans une info bulle) et datetime indique la date et l'heure de suppression. Une fuille de style peut rendre cet item avec une couleur grise par exemple, le barrer, ou même le cacher,<ins cite="http://www.site.org/changes.html#1.4" datetime="2004-02-18T00:00:00-05:00" title="Truc est meilleur">En utilisant Truc, vous produirez mieux que Machin !</ins>
: Partie insérée : mêmes commentaires que pour del. Peut être rendu en italique, dans une couleur différente (vert ?) ou une intonnation différente,Attention : ce n'est pas parceque par défaut le strong produit un effet gras et que le em produit un texte en italique que vous pouvez les utiliser simplement pour mettre un texte en italique ou en gras : rappelez-vous que vous devez choisir ces balises pour sa signification et non pour son aspect visuel. Rappelez-vous qu'un lecteur en brail, par exemple, ne possède pas la nottion de gras ou d'italique.
C'est volontairement que je ne vous donne pas les balises pour changer la fonte ou le formatage des caractères : ce n'est pas conseillé (même si ces balises existent) et cela sera fait en CSS : vous évitez ainsi d'apprendre comment faire des choses avec deux systèmes différents sachants que le CSS est meilleur (à mon point de vue). C'est aussi pour cela que vous n'avez pas beacoup de balises HTML à connaître...
Allez, soyons fou et donnons un texte d'exemple de tout cela, même si le résultat n'a aucun sens :
<ul>
<li>Nous somme le 1<sup>er</sup> du mois, et 2<sup>4</sup> = 16</li>
<li>L'amphase sert à accentuer sur un mot <em>précis</em> dans un texte</li>
<li>Tandis que l'amphase forte <strong>insiste</strong> lourdement sur un passage</li>
<li>On peut aussi imaginer un texte parlant du <abbr title="Baccalauréat">BAC</abbr>
et des études que l'on peut faire après comme le
<acronym title="Diplôme Universitaire de Technologie">DUT</acronym></li>
<li>Voire même donner la définition de <em>mot</em> : <dfn>c'est une ensemble de lettres</dfn>
<li>Ben oui, je l'ai eu dans <cite>Le dictionnaire à moi, édition 2000</cite></li>
<li>TODO: Et comme disait Machin, <q cite="machin">Être ou ne pas être, telle est la question</q></li>
<li>Puis, pour faire ce tutoriel j'ai butté sur quelques
<del datetime="2004-10-31T21:01:00-02:00" title="'truc' ne se dit pas dans un tutoriel sérieux">trucs</del>
<ins datetime="2004-02-18T00:00:00-05:00" title="'mot' était précisément ce que je voulais dire">mots</ins></li>
</ul>
Être ou ne pas être, telle est la question
Styler les balises abbr et acronym »
Styler les balises em et strong »
Styler les balises ins et del »
Il se peut que vous fassiez un site sur les mathématiques, ou sur la programmation informatique (portail d'aide en PHP, ou tout simplement un tutoriel HTML comme celui-ci). Il est alors intéressant de marquer certaines parties de texte en tant qu'exemples de code source, de résultat obtenu, etc...
Voyons-voir comment faire :
<code></code>
: Code informatique comme un extrait de source C++, ou même HTML (tel que dans ce tutoriel). Peut servir pour de petits morceaux à l'intérieur d'un paragraphe, ou pour encadrer un code source complet,<kbd></kbd>
: Texte à rentrer par l'utilisateur, à utiliser pour donner une chaîne que l'utilisateur doit tapper, ou un raccourci clavier... ,<samp></samp>
: Exemple de sortie pour délimiter un listing ou une sortie d'un programme, qu'il soit en ligne de commande ou dans une fenêtre graphique,<var></var>
: Variable mathématique ou variable dans un language informatique (typiquement rendu en italique mais les feuilles de styles peuvent permettre de le rendre en monospace par exemple),Il est à noter que ces balises sont toutes en ligne, c'est à dire qu'elle doivent être intégrée dans un bloc : un paragraphe (préformaté ou non), une ligne de liste...
Très souvent, les espaces dans un code source doivent être gardés tel quels. Dans ce cas, placez le code dans un paragraphe préformaté (bloc <pre>) : les espaces et retours à la ligne seront gardés sans avoir recours à des lourdes balises HTML : c'est l'une des rares exceptions de l'utilisation de <pre> (dans tous les cas, <code> doit être placé dans un paragraphe ou un autre bloc bloc).
Petits exemples, autant pour les mathématiques que pour des codes sources :
<p>En mathématiques, si 2·<var>x</var> = 8, alors <var>x</var> = 4. Fulgurant, non ?</p>
<p>En C++, pour écrire un texte à l'écran, c'est très simple : <code>printf("Salut, Monde !");</code>.
Remarquez que vous pouvez stoquer le texte dans une variable, nommée <var>texte</var> par exemple !
Et voici un Hello World complet :</p>
<pre><code>int main() {
char *texte = "Salut, Monde !";
printf(texte);
exit(0);
}</code></pre>
<p>Pour compiler, tappez <kbd>gcc exemple.c</kbd> et vous devriez obtenir ceci à l'écran :</p>
<pre><samp>[seb@localhost seb]$ gcc exemple.c
gcc: exemple.c: No such file or directory
gcc: no input files</samp></pre>
En mathématiques, si 2·x = 8, alors x = 4. Fulgurant, non ?
En C++, pour écrire un texte à l'écran, c'est très simple : printf("Salut, Monde !");
. Remarquez que vous pouvez stoquer le texte dans une variable, nommée texte par exemple ! Et voici un Hello World complet :
int main() {
char *texte = "Salut, Monde !";
printf(texte);
exit(0);
}
Pour compiler, tappez gcc exemple.c et vous devriez obtenir ceci à l'écran :
[seb@localhost seb]$ gcc exemple.c gcc: exemple.c: No such file or directory gcc: no input files
Bon, je vous accorde que ces exemples manquent dimagination, mais l'essentiel y est : nous avons utilisé des variables des textes à entrer au clavier ou des petits morceaux de code dans des paragraphes, ou affiché des paragraphes entiers de code ou de sortie écran.
Styler les balises code, kbd, samp et var »
Voici maintenant de nouvelles balises bloc pour structrer et donner une signification du contenu de vos pages. Certaines balises sont les pendants bloc de celles que nous venons de voir :
<hr>
(Ligne horizontale) : sans balise fermante, elle permet de séparer deux blocs de texte par un fillet horizontal... Nous apprendrons plus tard comment lui donner un aspect plus convivial,<blockquote cite="adresse"></blockquote>
: Bloc de citation pour citer tout un paragraphe (la réponse précédente dans un forum, par exemple). Ce n'est qu'un conteneur : vous devez y placer des paragraphes ou d'autres blocs à l'intérieur,<address></address>
: Informations de contact pour y placer les informations relatives à une personnes : nom, adresse, lien vers son site internet...<del></del>
et <ins></ins>
sont aussi des blocs en ligne (c.f. plus haut),Notez bien que <cite> est conçu pour des citations courtes, comme le nom d'un livre, et <blockquote> pour des... blocs, comme son nom l'indique, comme des citations lors de réponses dans un forum ou d'un e-mail...
Quelques exemples d'utilisation réelles, surtout pour blockquote et address, qui peuvent paraître étranges :
<blockquote cite="voir.php?message=precedent">
Oui, moi je dit que le noir c'est mieux<br>
Et je m'y connais.
</blockquote>
<p>Moi, par contre, je suis convaincu que le blanc c'est mieux.</p>
<hr>
<address>
Si vous avez des questions sur l'enregistrement, contactez-nous à
<a href="mailto:webmaster@site.org">webmaster@site.org</a>, ou téléphonez-nous au 09 76 34 67 12.
</address>
Oui, moi je dit que le noir c'est mieux
Et je m'y connais.
Moi, par contre, je suis convaincu que le blanc c'est mieux.
Styler les filets de séparation horizontaux »
Styler les citations »
Il vous faut parfois afficher un eliste de résultats, nombre, et autres données tabulaires... Ceci est généralement fait dans un tableau.
Attention : utilisez un tableau si vous avez plusieures colonnes (et de préférence un titre à mettre à ces colonnes) ou autres >>données tabulaires>>. Dans le cas contraire des puces feront peut-être mieux l'affaire.
Attention : je n'est pas dit que les tableaux c'est mal : mais beacoup de gens s'en servent pour faire une mise en page (les cellules en bord de tableau acceuillent des images décoratives qui forment un cadre...) ou en ayant juste en tête une idée de présentation et la réalisent avec de lourds tableaux. Il est conseillé de peser le pour et le contre avant d'utiliser des tableaux : gardez à l'espris que pour l'instant nous faisont du HTML et que nous nous intéressons au contenu (donc, ne pas raisonner avec "Je veux les mots à gauche et la définition alignée à droite : j'utilise un tableau de deux colonnes").
<table summary="Texte"></table>
, où summary (facultatif) décrit le contenu du tableau (si non présent, veuillez à expliquer la raison du tableau dans un paragraphe),<caption></caption>
: elle apparaîtra en haut du tableau,<thead></thead>
,<tbody></tbody>
juste après un thead : c'est lui qui contiendra les données (les lignes / celulles utiles) du tableau. Notez que vous pouvez avoir plusieurs corps dans votre tableau : cela peut servir à grouper certaines lignes entre elles (ça ne se verra pas dans le navigateur, mais nous pourrons modifier se comportement plus tard (par exemple encadrer les différents corps),<tfoot></tfoot>
.Une fois la structure du tableau en place, voici comment créer des lignes et des celulles :
<tr></tr>
(Table Row en anglais) (plusieures lignes pour un tbody, et (idéalement) une seule pour les thead ou un tfoot),<td></td>
(Table Data en anglais) : les données sont contenues à l'intérieur (enfin !),<tr></tr>
, mais les cellules sont définies à l'aide des balises <th></th>
(Pour Head).Après cette floppée de détails, voici ce que cela donne, c'est long, donc vous pourrez le copier / coller directement :
<table summary="Cette table liste les unités SI (Système Internationnal),
en donnant le nom et le symbol de ces unités.">
<caption>Unitées SI (partiel)</caption>
<thead>
<tr>
<th>Nom</th>
<th>Symbole</th>
</tr>
</thead>
<tbody>
<tr>
<td>mètre</td>
<td>m</td>
</tr>
<tr>
<td>kilograme</td>
<td>kg</td>
</tr>
</tbody>
</table>
Et maintenant, à l'écran :
Nom | Symbole |
---|---|
mètre | m |
kilograme | kg |
Parfois, il peut être interressant de regrouper des celulles. Il faut alors utiliser l'attribue colspan, pour répandre une cellule sur plusieures colonnes, ou rowspan, pour étendre une cellule sur plusieures lignes.
Un exemple valant mieux qu'un long dicours :
<table summary="Exemple de colspan et rowspan" border="1">
<caption>Exemple de colspan et rowspan</caption>
<thead>
<tr>
<th colspan="2">Nom</th>
</tr>
<tr>
<th>Bidule</th>
<th>Machin</th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="2">Cellule sur deux lignes</td>
<td>Voilà...</td>
</tr>
<tr>
<td>Et la dernière ligne</td>
</tr>
</tbody>
</table>
Attention : j'ai ici utilisé l'attribue border de la balise table, mais c'est juste pour montrer que les cellules s'étendent bien sur plusieures colonnes ou lignes. Il s'agit ici d'un élan de fénéantisme de ma part : la bordure d'un tableau peut être beaucoup plus belle en CSS, ce que nous allons voir dans très bientôt. Voici donc le résultat :
Nom | |
---|---|
Bidule | Machin |
Cellule sur deux lignes | Voilà... |
Et la dernière ligne |
Dans les sites plus complexes qu'un enchainement de titres et de paragraphes, il est intéressant de séparer les éléments du site en plusieurs blocs.
C'est là qu'interviennent les balises génériques sans signification particulière, mais qui pourra avoir un style différent plus tard :
<div></div>
(bloc générique) : il a à peu près le même comportement qu'un paragraphe (retour à la ligne avant et après) mais utilisé comme un bloc pour regrouper des informations (et n'a pas de marges comme le paragraphe en a par défaut, mais nous en reparlerons dans la partie CSS).<span></span>
(Contenu "en ligne") : on ne passe pas de ligne avant et après : rendu de la même façon que acronym, abbrev ou em mais par défaut il n'y a pas moyen de le distinguer visuellement : servira à définir ses propres sémentiques.Pour l'instant, vous ne devez pas trop en voir l'intérêt. Nous en reparlerons dans la prochaine partie, car ces balises sont souvent utilisées afin de structurer les pages et de donner un style à cette structure grâce au CSS.
Attribues title... link->image Quelques rudiments en PHP
TODO !
TODO: Caractères spéciaux, etc...
Voilà : c'est tout ce qu'il y a à comprendre sur le HTML (c'est faux : il existe d'autres balises mais elles ne devraient pas être utilisées) !
Avec ces simples balises on fait quasiment tout.