Académique Documents
Professionnel Documents
Culture Documents
Tout d’abord, un site Web est un ensemble de fichiers de code et de médias (images,
vidéos, etc.) liés entre eux et disponibles à tout moment via l’Internet. L’hébergement d’un site
Web sur un serveur permet d’accéder aux différentes ressources constituant ce site Web.
Un serveur est un ordinateur accessible via le réseau et qui stocke les différentes
ressources de plusieurs sites Web. En plus de ses performances et de sa connectivité, un serveur
possède une panoplie de logiciels lui permettant de répondre aux requetés des clients.
Ainsi, suite à l’exécution d’une URL dans la barre d’adresses d’un navigateur, une
requête est transmise à un serveur Web via le réseau qui la traite et renvoie une réponse sous la
forme d’un flux HTML au navigateur. Il existe actuellement plusieurs protocoles de
transmission des flux depuis un serveur vers un navigateur en fonction des natures des données
transmises.
Généralement, les sites Web sont classés en deux types à savoir les sites Web statiques
et les sites Web dynamiques.
Les sites statiques construits à base des pages HTML strictes interprétables par les
navigateurs. L’architecture simplifiée de ce cas est illustrée par la figure 1.
En revanche, une page Web dynamique est une page Web dont le contenu HTML est
généré automatiquement à l’aide d’un programme écrit avec un langage spécifique. Parmi les
langages permettant de coder de telles pages, on trouve PHP, Java, Python et ASP.NET.
L’exploitation de telle architecture est nécessaire lorsque le contenu de la page n’est pas connu
à l’avance. À titre d’exemple, les pages Web obtenues via un moteur de recherche sont générées
automatiquement en fonction des mots-clés saisis dans la barre de recherche. Le principe
général de fonctionnement est illustré par la figure 2.
Le traitement d’une requête d’une page Web dans le cadre d’un site dynamique peut
être déroulé généralement de la manière suivante :
1. Le client envoie une requête pour demander au serveur d’interpréter un programme écrit
en PHP en saisissant une adresse dont le fichier finit par l’extension .php. à titre
d’exemple, lorsqu’on saisit l’adresse « http://www.est-umi.ac.ma/actualite.php ».
HTML1 a été conçu par Tim Berners-Lee en 1991 en se basant sur le SGML (Standard
Generalized Markup Language) dont l’objectif est d’octroyer l’aptitude d’afficher un contenu
aux équipements informatiques que ce soit des ordinateurs ou des appareils mobiles moins
puissants (PDA : Personnal Digital Assistant, Smartphones, etc.) tout en assurant une
dégradation minimale.
1. HTML 1 en 1991,
2. HTML 2 en 1994,
3. HTML 3 en 1996,
4. HTML 4 en 1998,
5. En 2000, le W3C lance la version XHTML qui est une variante plus rigoureuse du
langage,
6. En 2009, la version HTML 5 est adoptée par le W3C (World Wide Web Consortium) et le
WhatWG (Web Hypertext Application Technology Working Group).
La majeure partie du contenu du Web est exprimé avec le langage HTML. HTML est
un langage de description de document. Sa syntaxe provient du SGML (Standard Generalized
Markup Language) et fait appel à des balises pour structurer un document.
Il est interprété par les navigateurs (Internet Explorer, Firefox, Chrome ...) pour
permettre une représentation visuelle intelligible à l’être humain. En fait, il ne permet pas
d’effectuer des calculs ou des traitements. Son rôle se résume en deux types d'actions
essentielles :
La définition des zones de contenus qui sont semblables à des boites emboitables les
unes dans les autres comme les « poupées russes ».
L’encrage des liens à des parties du contenu d’une page permettant de naviguer sur le
Web.
Une page Web est un fichier de type texte qu’on peut éditer avec un éditeur de texte et
consulter en utilisant un navigateur. En effet, la constitution structurelle des différentes parties
d’une page Web est exprimée à l’aide des balises HTML.
1. LES BALISES
Les balises HTML structurent le contenu du document en délimitant les blocs qui seront
amenés à contenir des paragraphes, des titres, différents types de médias (images, sons, vidéos),
des contrôles de formulaires ou encore des liens hypertextes.
En fait, les balises correspondent à des commandes à l’intention du navigateur pour le
rendu du contenu de chacun des éléments constituant le code source d’un document HTML.
En tant qu’un langage de balisage, les composants du contenu d’un fichier HTML sont
renfermés dans des balises définies au travers d’une DTD (Document Type Definition) qui
décrit les spécifications du langage formalisées par l’organisme de normalisation du domaine
du Web le W3C (World Wide Web Consortium). En conséquence, les éléments d’un contenu,
que ce soit du texte, d’images ou tout autre type multimédia doivent être enfermés par une
balise. Les éléments HTML possèdent un nom déterminé et sont énumérés dans une liste définie
dans la spécification du langage. La structure générale d’un élément HTML est la suivant :
.
Ainsi, le contenu d’un élément est systématiquement précédé par une balise d’ouverture
constituée d’un chevron "<", du nom de l’élément considéré et du chevron fermant ">".
Toute balise de fermeture suit la même règle en plus du signe slash "/" devant le non de
l’élément considéré.
Notez bien qu’il y a des exceptions à cette structure. En effet, il existe des éléments en
HTML qui se constituent d’une seule balise appelée balise orpheline. C’est le cas pour des
éléments dépourvus d’un contenu textuel à l’instar de l’élément retour à la ligne exprimé en
HTML à l’ide de la balise "br" comme il est illustré sur la figure suivante :
Sachant qu’il existe une syntaxe un peu différente pour les balises orphelines qui utilise
un slash après le nom de l’élément tel que : <br />.
C’est une syntaxe ancienne qui était acceptée il y a des années. Aujourd’hui, cette
syntaxe est dépréciée en HTML. En conséquence, il est déconseillé de l’utiliser en HTML étant
donné qu’elle risque de ne plus être reconnue par les navigateurs dans le futur. Il est à noter que
l’espace figurant devant le slash de fermeture est important pour des raisons de compatibilité
avec les (très) anciens navigateurs.
La définition des attributs d’un élément se précise dans la balise d’ouverture et sont
séparés par au moins d’un espace. Généralement, chaque attribut prend une seule et unique
valeur. Pour certains éléments particuliers, la présence de certains attributs est obligatoire. En
revanche, les attributs d’un élément sont souvent facultatifs et en conséquence le programmeur
a le libre choix de déterminer leur définition. Nombreux sont les attributs qui possèdent une
valeur par défaut. En conséquence, le navigateur utilise la valeur par défaut lors de l’omission
de la définition d’un attribut dans un élément.
Pour définir la valeur d’un attribut il faut la spécifier entre guillemets conformément à
la syntaxe suivante :
Considérons pour exemple l’élément a servant à définir des liens hypertextes vers
d’autres pages ou parties d’autres pages.
Pour le fonctionnement correct d’un tel élément, il faut spécifier la valeur de l’attribut
href (Hypertext REFerence) de la balise < a >.
En effet, c’est l’attribut href qui permet de spécifier la cible du lien considéré. La valeur
de cet attribut pointe vers la page de destination de l’élément lien hypertexte en précisant
l’adresse de la page cible ou la partie cible d’un page.
D’autres éléments HTML fonctionnent de la même approche. Par exemple, l’élément
img permettant d’insérer une image dans une page HTML nécessite la spécification de son
attribut src (source). L’attribut src permet de spécifier l’adresse de l’image à insérer.
L’attribut src (pour « source ») va prendre comme valeur l’adresse de l’image. Il est à
noter que l’élément img est constitué d’une balise orpheline à l’instar de l’élément br.
C’est l’organisme W3C (World Wide Web Consortium) qui se charge de l’élaboration
des normes relatives au domaine du Web. W3C définit des standards pour les différents aspects
de la mise en place des sites Web. Actuellement, les navigateurs se précipitent pour l’intégration
des spécifications définies par les standards élaborées par W3C.
En effet, le schéma de base d’une page HTML suit une structure standard appelée «
structure minimale d’une page HTML valide ». Cette structure oblige l’existence de certains
éléments tout en suivant un schéma précis défini par W3C.
Pour éviter qu’un document HTML ne soit correctement interprété par les navigateurs,
son code source doit être valide conformément aux spécifications de standardisation élaborée
par W3C. Dans le cas inverse, les navigateurs risque de mal interpréter ce document voire de
ne pas l’interpréter et en conséquence n’afficher aucun résultat.
En plus, une page HTML valide favorisera son analyse par les moteurs en conséquence
la valoriser dans leurs bases d’indexation, c’est-à-dire améliorer son référencement et ainsi la
proposer aux utilisateurs recherchant une information relative à cette page. La figure suivante
montre la structure minimale d’une page HTML valide :
Le DOCTYPE
L’une des caractéristiques d’un document est son type. Précisément, c’est l’élément
‘DOCTYPE’ (Document Type) qui permet de spécifier le type d’un document HTML 5. Il est
obligatoire de commencer un document HTML 5 par cet élément. Il faut faire attention à ne pas
oublier le point d’exclamation de la balise servant à l’intégration de cet élément. À l’aide de la
balise de cet élément, nous précisons le langage utilisé, en l’occurrence le langage HTML 5
dans notre cas.
Pour les anciennes versions du langage HTML, cette balise avait une syntaxe assez
complexe pour la déclaration du doctype. En effet, pour la déclaration du doctype d’un
document de type HTML 4, la syntaxe est la suivante :
L’ÉLÉMENT HTML
Après l’élément doctype vient l’élément HTML. Cet élément représente le document
HTML en soi. La déclaration de cet élément se fait avec la balise ouvrante <HTML> et la balise
fermante </HTML>. En fait, cet élément délimite tous les autres éléments d’un document
HTML.
En effet, cet élément constitue la racine d’un document HTML et qui prend en charge
la liste des attributs universels (voir la documentation MDN pour la liste de ces attributs en plus
d’amble informations : https://developer.mozilla.org/fr/docs/Learn/HTML).
Le document est subdivisé en deux éléments : l’en-tête (head) et le corps (body). Ces
deux éléments sont obligatoires ayant chacun un rôle différent.
En effet, l’élément head sert à déclarer des éléments qui fournissent des informations au
navigateur sur le document considéré. Parmi ces informations se trouve le titre du document
ainsi que son encodage. L’encodage permet la représentation correcte des caractères textuels
de différentes langues. En fait, le contenu de l’élément head est invisible lors de la consultation
du document HTML considéré avec un navigateur.
En revanche, l’élément body sert à définir les autres éléments du contenu visible du
document HTML considéré. En fait, l’élément englobe les autres éléments destinés à produire
un résultat visuel, en l’occurrence des paragraphes, des images, des tableaux, des listes, etc.
Dans le cadre de la définition d’une structure minimale d’un document HTML valide,
il faut déclarer les deux éléments title et meta. Ces deux éléments permettent de fournir au
navigateur des informations essentielles sur le document en question.
L’élément title (titre) permet de spécifier le titre du document, à ne pas confondre avec
les différents titres définis dans la partie visible du document encadrée par l’élément body. Ce
titre s’affiche tout en haut de l’onglet du navigateur correspondant au document considéré. La
figure suivante illustre un exemple :
En revanche, l’élément meta sert à fournir au navigateur beaucoup plus d’informations
sur un document HTML. Cependant, le type de l’information transmise dépend
fondamentalement de l’attribut précisé au niveau de la balise de déclaration (<meta
attribut="valeur">).
La valeur utf-8 est la valeur de référence pour tous les alphabets latins permettant aux
navigateurs d’afficher correctement les différents caractères du texte. En revanche, sur la figure
le document ne contient pas un contenu destiné à être visible étant donné qu’on n’a pas défini
de contenu au niveau de l’élément <body>. En conséquence, le navigateur affiche une page
blanche.
Les éléments qui constituent un document HTML5 peuvent s’organiser de deux façons :
soit se succéder les uns après les autres soit s’imbriquer les uns dans les autres. Sachant que les
imbrications des éléments d’un document HTML5 doivent respecter des spécifications
rigoureuses. Sur la figure ci-après, on montre un exemple d’un document HTML5 comprenant
un titre, un tableau, un paragraphe et une image. Sur cette figure en remarque que le titre, codé
au moyen des balises <h1> (<h1>Un très grand titre</h1>), est imbriqué dans un span
(<span> …) qui est imbriqué dans un div (<div id="div_entete"> …). Le tableau, codé au
moyen de la balise <table> (<table> …), le paragraphe, codés au moyen des balises <p>
(<p>Lorem ipsum …</p>) et l’image, codée au moyen de la balise <img> (<img …>), sont
imbriqués dans un autre div qui succède le premier div. Le résultat de ce code HTML5 est
présenté sur la figure ci-après.
En effet, l’organisation d’un document HTML5 peut être représentée sous la forme d’un
arbre généalogique des balises. Dans cet arbre chacune des balises peut être un parent ou un
enfant d’une autre balise. Cette représentation confère une structure hiérarchique au document
considéré.
Néanmoins, l’imbrication des balises doit répondre à des critères stricts qui définissent
quels éléments peuvent en contenir d’autres, et quelles sont les conséquences en termes
d’affichage ou de sémantique. La règle la plus triviale : ajoutez une balise de fin à l’intérieur
d’un conteneur fils avant la balise de fin du conteneur (le parent). Si on écrit une balise à
l’intérieur d’un autre conteneur (le parent) de balise, il faut s’assurer de la fermeture du
conteneur interne (le fils) avant de fermer le conteneur externe (le parent). Autrement dit, le
premier élément déclaré doit toujours être le dernier refermé, tandis que le dernier ouvert doit
toujours être le premier fermé. Par exemple, le premier élément déclaré dans un document
HTML5 est l’élément HTML, qui contient les éléments head et body, il devra donc être le
dernier élément refermé.
Ainsi, les différents éléments composant un fichier HTML (titres, paragraphes, listes,
liens, images…) s’organisent sous la forme d’un arbre, que l’on nomme également « arbre du
document » (ou DOM pour Document Object Model). Cet arbre généalogique est composé de
fratries et de degrés de parenté qui sont exploités par les sélecteurs CSS pour cibler les différents
éléments du document.
1- DEFINITION
Les éléments en bloc sont des éléments qui se placent automatiquement les uns en
dessous des autres. Le rendu de ces balises occupe par défaut toute la largeur de la page (tout
l’espace disponible). Généralement, le navigateur insère automatiquement un espace au-dessus
et en dessous du contenu de la balise. Les blocs distinguent des sections entières de la page
comme des titres, des paragraphes, des listes, des citations, etc.
Les blocs peuvent contenir d’autres blocs et des éléments en ligne, à l’exception des
paragraphes <p> et des titres <h1>, <h2>,...<h6> qui ne peuvent inclure d’autres éléments de
type bloc.
Balise Commentaires
<blockquote> Introduit des citations longues. Par défaut, certains navigateurs prévoient
une marge gauche aux blocs de citation, qu’on pourra bien sûr modifier en
CSS.
<div> Conteneur générique de type bloc. Cette balise n’apporte pas de sens
spécifique, à l’instar de son équivalent en ligne <span>. Elle sert à
regrouper d’autres balises bloc ou en ligne.
<dl> Liste de définitions, utile pour structurer les éléments associant des
définitions ou contenus à des termes ou à des titres. Ces listes distinguent
les titres (<dt>) des éléments de définition (<dd>).
<h1>, <h2>, HTML prévoit six niveaux de titres, hiérarchiquement placés sous le titre
principal (<h1>). Rappel : ces éléments constituent une exception à la
… <h6> règle des blocs ; ils ne peuvent pas contenir d’autres blocs.
<ol>, <ul> Ces deux balises désignent des listes ordonnées (<ol>) ou à puces simples
(<ul>). Elles comportent exclusivement les éléments d’objet de liste
(<li>).
<table> Tableau contenant des données. Les cellules du tableau dont d’abord
rassemblées sous forme de rangées ou lignes (<tr>).
1- DÉFINITION
Les balises en ligne se placent toujours les unes à côté des autres à l’inverse des balises
en bloc qui se placent les unes après les autres. Ces balises permettent de créer des éléments
HTML5 sans forcer un retour à la ligne. Les éléments en ligne sont prévus pour enrichir
localement des portions de texte (lien hypertexte, emphase, renforcement, etc.).
Les éléments de type inline vont posséder les caractéristiques suivantes qui vont les
différencier des éléments de type block :
Un élément de type inline ne va occuper que la largeur nécessaire à l’affichage de son
contenu par défaut ;
Les éléments de type inline vont venir essayer de se placer en ligne, c’est-à-dire à côté
(sur la même ligne) de l’élément qui les précède dans le code HTML ;
Un élément de type inline peut contenir d’autres éléments de type inline, mais ne
devrait pas contenir d’éléments de type block.
De plus, notez que général on ne va pas pouvoir appliquer de propriété width ou height
à un élément de type inline puisque la caractéristique principale de ce type d’éléments est de
n’occuper que la place nécessaire à l’affichage de leur contenu. Néanmoins, on peut classifier
d’éléments en ligne en deux sortes de catégories : « remplacés » et « non remplacés ».
Essentiellement, un élément remplacé est un élément HTML ayant une largeur et une
hauteur prédéterminées en l’absence de CSS précis. Le contenu de tel élément est remplacé par
une source extérieure dont la représentation sera indépendante de CSS.
Seuls les éléments remplacés peuvent être redimensionnés. Ils acceptent des attributs
de dimensions tels que : height, width. Il s’agit entre autres des éléments <img>,
<input>, <textarea>, <select> et <object>.
Les autres n’ont pas de dimension, et n’occupent que la place nécessaire à leur
contenu. C’est le cas des éléments <strong>, <em>, <a>, <span>, etc.
Balise Commentaires
<em> Met en emphase une portion de texte. Quand la police utilisée est droite, la
plupart des navigateurs graphiques la traduisent comme une mise en
italique.
<img> Inclut une image dans le document. Cette balise s’accompagne des attributs
alt (texte alternatif pour malvoyants ou navigateurs en mode texte) et src
(qui indique le chemin vers l’image). Le format de fichier de l’image, en
théorie libre, est souvent limité à ce que comprennent les navigateurs –
c’est-à-dire GIF, JPEG, et PNG. Remarquons que <img> est une balise sans
contenu (« autofermante », ou encore « balise vide »). Ceci se traduit par
son /> final.
<span> Conteneur en ligne générique, dépourvu d’un sens précis, mais qui peut
servir à regrouper d’autres éléments au fil du texte. Son équivalent est
l’élément <div>.
L’élément HTML table représente le tableau en soi. La création de cet élément se fait
au moyen d’une paire de balises ouvrante <table> et fermante </table>. Entre ces deux balises,
on place les différents autres éléments d’un tableau. Les éléments tr et td sont également
représentés sous la forme d’une paire de balises ouvrantes et fermantes avec leur contenu entre
les balises.
2- TABLEAU SIMPLE
Pour créer un tableau en HTML, il faut savoir que les tableaux HTML se créent ligne
par ligne. Pour ajouter un élément de type ligne dans un tableau, on utilise la balise <tr>.
Ensuite, pour ajouter un élément de type cellule dans une ligne dans un tableau, il faut utiliser
la balise <td>. On peut ajouter autant de cellules au travers de la balise <td> dans une ligne
d’un tableau.
Il faut retenir la syntaxe et l’ordre d’imbrication des éléments. Les éléments td se situent
à l’intérieur des éléments tr : on utilise un nouvel élément td à chaque fois qu’on veut ajouter
une cellule au sein d’une même ligne.
Comme guise d’exemple, pour créer un tableau en HTML contenant 3 lignes contenant
chacune 4 cellules (c’est-à-dire un tableau de 3 lignes, 4 colonnes), on utilise un élément table
qui va contenir 3 éléments tr et chaque élément tr va contenir 4 éléments td comme ceci (la
mise en forme sera abordée plus tard) :
3- LIGNE D’EN-TETE
L’en-tête est une ligne particulière d’un tableau. Elle renseigne des informations au
lecteur sur les données des différentes colonnes d’un tableau. Chacune des cellules de l’en-tête
correspond à une colonne d’un tableau. Pour la création d’un en-tête de tableau, il suffit
d’utiliser l’élément <th></th> à la place de l’élément <td></td> dans la première ligne du
tableau. En général, le contenu de l’élément <th></th> apparaît en gras. On obtient la syntaxe
et le résultat suivants :
Pour la création d’un titre d’un tableau, aussi appelé une légende, il suffit d’utiliser la
balise <caption>. Le titre du tableau se positionne en haute et au centre du tableau concerné.
On obtient la syntaxe et le résultat suivants :
5- TABLEAU STRUCTURE
Pour définir chacune des parties d’un tableau structuré, il existe trois éléments HTML
spécifiques à cet effet :
<table>
<caption>Chiffre d'affaires (CA) des clients</caption>
<thead>
<tr><th>Nom Prénom</th><th>CA 2020</th><th>CA 2021</th><th>Total</th></tr>
</thead>
<tfoot>
<tr><th>Total</th><th>420 000</th><th>130 000</th><th>550 000</th></tr>
</tfoot>
<tbody>
<tr><td>Nom_1 Prénom_1</td><td>120 000</td><td>80 000</td><td>200 000</td></tr>
<tr><td>Nom_2 Prénom_2</td><td>300 000</td><td>50 000</td><td>350 000</td></tr>
</tbody>
</table>
La fusion des cellules consiste à les regrouper pour produire une seule cellule en
remplacement des cellules considérées. Cette fusion est établie à l’aide des attributs colspan et
rowspan de la balise ˂td˃. L’attribut colspan permet de fusionner plusieurs cellules adjacentes
d’une même ligne. Tandis que l’attribut rowspan permet de fusionner plusieurs cellules
adjacentes d’une même colonne.
Ces attributs prennent comme valeur le nombre de colonnes ou de lignes qu’une cellule
doit couvrir, c’est-à-dire le nombre de colonnes ou de lignes qu’une cellule doit occuper ou
encore sur lesquelles elle doit s’étendre.
a. FUSION DE LIGNES
Pour fusionner des lignes, on utilise l’attribut rowspan=x dans la balise ˂td˃ de la cellule
fusionnée ; où x représente le nombre de lignes à fusionner verticalement. On obtient la syntaxe
et le résultat suivants :
b. FUSION DE COLONNES
Pour fusionnes plusieurs colonnes, on utilise l’attribut colspan=x dans la balise ˂td˃ de
la cellule fusionnée ; où x est le nombre de colonnes à fusionner horizontalement. On obtient la
syntaxe et le résultat suivants :
7- MISE EN FORME D’UN TABLEAU
Certes, le HTML permet de structurer le contenu et à lui donner un sens, néanmoins les
sites Web sont créés pour des visiteurs humains. En conséquence, ces sites doivent être
compréhensibles et agréablement consultables.
Dans le cadre du HTML5, ces attributs sont tous dépréciés et ne doivent jamais êtes
utilisés en vue de mettre en forme les tableaux HTML. En lieux et place, il faut utiliser le CSS
pour la mise en forme, vu qu’il constitue une très bonne alternative et un bon support pour la
mise en forme des tableaux.
Ainsi, pour ajouter des bordures autour de chacune des cellules d’un tableau, on définit
la propriété CSS border aux éléments td et on fusionne les différentes bordures en une seule
bordure en définissant la propriété border-collapse avec la valeur collapse de l’élément table.
CSS nous offre la possibilité pour spécifier plusieurs propriétés d’un tableau et de ces
éléments constitutifs. Parmi d’autres propriétés, figurent les propriétés CSS suivantes liées aux
tableaux :
border-collapse ;
border-spacing ;
caption-side ;
empty-cells ;
table-layout ;
vertical-align.
Pour insérer une image au sein d’un document HTML on exploite l’élément HTML img.
Pour définir l’insertion d’une image dans un fichier HTML, on utilise à la balise orpheline
<img>.
Les images peuvent êtes enregistrées sous différents formats. La liste suivante regroupe
les formats d’image les plus répondus :
Le format GIF : utilisé pour les petits éléments graphiques, les icônes, les petites
images animées avec un seul niveau de transparence.
Le format JPEG : utilisé pour les photographies. Il ne supporte pas la transparence.
Le format PNG : utilisé pour les images de haute qualité avec plusieurs niveaux de
transparence.
L’insertion d’images en HTML se fait au moyen de l’élément HTML img. Cet élément
est représenté par une balise orpheline <img>. Au sein de l’élément img, il faut obligatoirement
préciser l’attribut src. Il est aussi préférable de définir l’attribut alt.
L’attribut src (pour source) prend comme valeur l’adresse de l’image (adresse relative
ou absolue) tandis que l’attribut alt (pour alternative) contient un texte alternatif décrivant
l’image. Dans le cas où l’image ne peut pas être affichée, le texte attribué à l’attribut alt s’affiche
en lieu et place de l’image concernée. En plus, l’attribut alt améliore l’accessibilité pour les
non-voyants ou les malvoyants qui vont pouvoir « lire » ce texte grâce à leurs lecteurs
particuliers.
Un élément de type image dispose d’une dimension constituée d’une largeur (width) et
d’une hauteur (height). Ainsi, pour redimensionner une image, il faut utiliser le CSS ou spécifier
les attributs width et height dans l’élément img en HTML.
Fichier
HTML/CSS ,
JavaScript, etc.
Formulaire Serveur Web
PHP, JAVA, .Net, etc.
@ Email
Comme on peut le constater sur le schéma ci-dessus, l’échange entre le serveur Web et
l’utilisateur se fait avec les langages « côté client » tels que HTML/CSS, JavaScript. Tandis
que les transactions entre le serveur Web et les serveurs de fichiers, de bases de données ou de
messagerie se font avec les langages « côté serveur » tels que PHP, JAVA, DOTNET, etc.
Pour créer un formulaire, il suffit d’utiliser la balise HTML <form>. Pour pouvoir
fonctionner correctement, un élément form a besoin de deux attributs : les attributs method et
action.
L’attribut method sert à indiquer comment doivent être envoyées les données saisies par
l’utilisateur. Cet attribut peut prendre deux valeurs : get et post.
Que signifient ces deux valeurs et laquelle choisir ? Les valeurs get et post déterminent
la méthode de transit des données du formulaire. En choisissant get, on indique que les données
doivent transiter via l’URL (sous forme de paramètres) tandis qu’en choisissant la valeur post
on indique qu’on veut envoyer les données du formulaire via transaction post HTTP.
Concrètement, si l’on choisit l’envoi via l’URL (avec la valeur get), nous serons limités
dans la quantité de données pouvant être envoyées et surtout les données vont être envoyées en
clair. En conséquence, il faut absolument éviter l’utilisation de cette méthode pour toute
information sensible dans un formulaire.
La méthode de transit vis l’URL est généralement utilisée lors de l’affichage de produits
triés sur un site e-commerce (car oui, les options de tris sont des éléments de formulaires avant
tout !). Regardez bien les URL la prochaine fois que vous allez sur un site e-commerce après
avoir fait un tri : si vous retrouvez des éléments de votre tri dedans c’est qu’un get a été utilisé.
En revanche, la méthode l’envoi de données via post transaction HTTP (avec la valeur
post pour l’attribut method) permet d’envoyer les données sans limites de quantité de données.
En plus les données envoyées ne sont pas visibles dans l’URL. De manière générale, on préfère
l’utilisation de cette méthode dans le cas de l’envoi des données désignées au stockage dans
une base de données.
Tandis que l’attribut action permet de spécifier l’URL de la page qui va recevoir le
formulaire et ainsi traiter les données. Il faut se rappeler que le langage HTML ne permet pas
la manipulation les données des formulaires et qu’il faut utiliser un autre langage comme le
PHP pour le faire.
En plus de ces deux attributs, la balise <form> dispose de l’attribut Enctype permettant
de définir la manière dont les données du formulaire seront encodées lors de l’envoi des données
au serveur. Néanmoins, cet attribut ne peut être utilisé que lorsque la valeur de l’attribut method
est « post ». Le tableau suivant donne des valeurs possibles de cet attribut et leur signification :
Valeur Description
application/x-www-form-urlencoded Par défaut. Tous les caractères sont encodés avant
l’envoi (les espaces sont convertis en symboles ‘+’
et les caractères spéciaux en valeurs hexadécimales
du code ASCII).
multipart/form-data Aucun caractère n’est encodé. Cette valeur est
utilisée dans les cas où le formulaire contient un
champ d’envoi de fichier au serveur.
text/plain ou text/HTML Elles sont utilisées dans les cas d’envoi des données
par email. Elles indiquent si les données seront
envoyées sous forme de texte ou de code.
En général, pour créer un champ dans un formulaire, on utilise la balise <input /> dont
les principaux attributs sont les suivants :
Ainsi, on obtient la syntaxe générale suivante pour la création d’un champ d’un
formulaire HTML :
En plus, pour organiser le formulaire en regroupant les champs ayant trait au même
sujet, on utilise les balises <fieldset></fieldset> pour encadrer les éléments à regrouper.
Dans une zone de saisie monoligne, le texte s’écrit sur une seule ligne sans aller à la
ligne. Pour créer ce type de champ, on définit la valeur de l’attribut type à "text".
2. LE CHAMP DE SAISIE DE MOT DE PASSE
Il suffit de donne la valeur "password" à l’attribut type pour créer un champ de saisie de
mot de passe. Ainsi, on pourra par exemple définir le formulaire suivant :
Il suffit de définir l’attribut type de la balise <input> à "file" pour créer un champ
d’envoi de fichier. Dans ce cas, un bouton Parcourir ou Browse apparaît à droite de la zone.
Pour utiliser un champ d’envoi de fichier dans un formulaire, la balise <form> doit avoir
les attributs method et enctype avec les valeurs respectives post et multipart/form-data.
Exemple :
Pour restreindre les fichiers à envoyer à des types précis, on utilise l’attribut accept dont
la valeur est la liste des types MIME acceptés.
Exemple :
Exemple complet :
Il suffit de définir la valeur de l’attribut type à "radio" pour créer une liste d’options à
choix unique. Chacune des options appartenant au même groupe doit avoir la même valeur de
l’attribut name.
En revanche, la valeur qui sera envoyée au serveur est celle définie dans l’attribut value
de l’option choisie par l’utilisateur.
Exemple :
<fieldset>
<legend>Qualité du produit</legend>
<label><input type="radio" name="info" value="Excellent" />Excellent</label><br />
<label><input type="radio" name="info" value="Bon" checked="checked" />Bon</label><br/>
<label><input type="radio" name="info" value="Moyen" />Moyen</label><br />
<label><input type="radio" name="info" value="Mauvais" />Mauvais</label><br />
<label><input type="radio" name="info" value="Mauvais" />Indifférent</label>
</fieldset>
Notez bien que dans cet exemple l’option "Bon" est l’option choisie par défaut.
Ils permettent de faire plusieurs choix dans un même groupe de cases à cocher. Ils ont
les mêmes arguments que les boutons radio. Néanmoins, l’attribut type doit prendre la valeur
"checkbox". La syntaxe est la suivante :
Exemple :
<fieldset>
<legend>Menu du jour</legend>
<input type="checkbox" name="repas" value="Couscous" />
<label>Le Couscous</label><br />
<input type="checkbox" name="repas" value="TajineBoeuf" checked="checked" />
<label>Tajine de viande de bœuf</label><br />
<input type="checkbox" name="repas" value="Pastilla" />
<label>La Pastilla</label><br />
<input type="checkbox" name="repas" value="TajinePoisson" />
<label>Tajine de poissons</label><br />
<input type="checkbox" name="repas" value="Tanjia" />
<label>La Tanjia</label>
</fieldset>
On utilise les boutons d’envoi pour envoyer les données du formulaire au serveur.
L’appui sur ce bouton exécute, généralement, le script inscrit dans la valeur de l’attribut action
de la balise <form>. On utilise la syntaxe suivante :
Il suffit de donner la valeur "image" à l’attribut type d’un élément <input> pour utiliser
une image sous forme de bouton d’envoi. Autrement dit, le bouton d'envoi aura la forme d'une
image plutôt que de contenir un texte. Dans ce cas, on utilise la syntaxe suivante :
Exemple :
<input name="valider" type="image" src="acheter.jpg"
width="103" height="54" alt="Envoyer" />
Il s’agit de listes déroulantes ou de listes simples. Pour créer une liste déroulante on
utilise les balises <select></select> avec à l’intérieur des balises <option></option> pour
chaque élément de la liste. Les attributs de <option> sont :
<select name="nomliste">
<option value="valeur1"></option>
-----
<option value="valeurN"></option>
</select>
Pour autoriser le choix multiple de que plusieurs éléments en même temps d’une liste
de choix, il suffit de donner la valeur "multiple" à l’attribut "multiple" (multiple="multiple") de
la balise <select>.
Exemples :
<label>Lieu de livraison :</label>
<select name="lieu">
<option value="0">Aucune</option>
<option value="rabat">Rabat</option>
<option value="casablanca">Casablanca</option>
<option value="meknes">Meknès</option>
<option value="fes">Fès</option>
<option value="merrakech">Merrakech</option>
<option value="khouribga">Khouribga</option>
<option value="tanger">Tanger</option>
</select>
<label>Lieu de livraison multiple :</label>
<select name="lieu" size="8" multiple="multiple">
<option value="0">Aucune</option>
<option value="rabat">Rabat</option>
<option value="casablanca">Casablanca</option>
<option value="meknes">Meknès</option>
<option value="fes">Fès</option>
<option value="merrakech">Merrakech</option>
<option value="khouribga">Khouribga</option>
<option value="tanger">Tanger</option>
</select>
Pour créer un champ de saisie d’un long texte de plusieurs linges, tels que les
commentaires, les descriptions, les contenus des messages des emails, etc., il faut utiliser la
balise <textarea></textarea>. Les attributs généralement exploités de cette balise sont :
Pour définir une valeur par défaut pour la zone de saisie, il suffit de placer le texte entre
les balises <textarea> et </textarea>. On utilise la syntaxe suivante :
Exemple :
Un lien hypertexte (hyperlien) est un élément HTML qui renvoie le visiteur à partir
d’une page à une autre page, à un emplacement de la page du même site ou d’un autre site Web.
Un élément hypertexte est délimité par la balise <a>. On utilise la syntaxe générale suivante :
Valeur Description
_self Affichage dans le cadre courant (par défaut).
_blank Ouvre le lien dans une nouvelle fenêtre.
_top Affichage dans la totalité de la fenêtre courante.
_parent Affichage dans le cadre qui enveloppe la structure courante.
Pour créer un lien vers un autre site Web, il suffit de préciser dans l’attribut href
l’adresse URL absolue du site Web de destination.
Exemples de liens vers le site Web www.google.com et vers la page HTML5 du site
https://fr.wikipedia.org :
monsite
|--index.html
|---Contenu
|---inscription.html
|---produit.html
Exemple : Un lien dans la page produit.html vers la page inscription.html du site Web :
Exemple : Pour créer un lien dans la page index.html vers la page inscription.html, il
suffit d’écrire :
Dans le cas où la page cible se trouve dans le dossier parent du dossier courant, la valeur
de l’attribut href s’écrira : ../pagecible.
Exemple : Pour créer un lien dans la page inscription.html vers la page index.html, on
écrira :
Une ancre est une sorte de point de repère que l’on place sur une page Web pour faire
référence à une portion de cette page. Elle est très souvent utilisée pour créer un lien permettant
d’aller directement au bas ou en haut de la page.
Pour créer une ancre, on ajoute l’attribut id dans une balise qui servira de repère sur la
page. La syntaxe de création d’une ancre :
Dans ce cas, le lien pointe vers un emplacement (ancre) situé sur la même page. La
Syntaxe d’une ancre interne :
Exemple :
Dans ce cas, le lien pointe vers un emplacement (ancre) situé sur une page différente de
la page courante. La Syntaxe est la suivante :
Exemple :
c. CAS D’UNE ANCRE SITUÉE SUR UNE PAGE D’UN AUTRE SITE
Dans ce cas, le lien pointe vers un emplacement (ancre) situé sur une page d’un autre
site. La Syntaxe est la suivante :
Exemple :
<a href="https://fr.wikipedia.org/wiki/HTML5#Doctype">HTML5 et Doctype</a>
Les balises de liste permettent de créer des listes, d’énumérer des éléments, de créer des
sommaires, des menus, etc. Il existe 4 différents types de listes :
- Les listes non ordonnées (à puces).
- Les listes ordonnées (numérotées).
- Les listes imbriquées.
- Les listes de définitions.
1- LES LISTES NON ORDONNES OU LISTES A PUCES
Les listes non ordonnées sont définies par la balise <ul> et chaque item (élément) est
défini par la balise <li>. La Syntaxe est la suivante :
<ul type="type_puce">
<li>Item 1</li>
<li>Item 2</li>
…
<li>Item n</li>
</ul>
Il existe plusieurs types de puces. Le type est précisé par l’attribut type. Les principaux
types de puces utilisés sont :
- Disc
- Circle
- Square
Exemples :
<table>
<tr><th>Circle</th><th>Square</th><th>Disc</th></tr>
<tr>
<td>
<ul type="circle">
<li>Algorithmique</li>
<li>Langage de programmation</li>
<li>Merise</li>
<li>Développement Web</li>
</ul>
</td>
<td>
<ul type="square">
<li>Algorithmique</li>
<li>Langage de programmation</li>
<li>Merise</li>
<li>Développement Web</li>
</ul>
</td>
<td>
<ul type="disc">
<li>Algorithmique</li>
<li>Langage de programmation</li>
<li>Merise</li>
<li>Développement Web</li>
</ul>
</td>
</tr>
</table>
Pour créer des listes ordonnées, il suffit d’utiliser la balise <ol>. Et pour créer chaque
élément d’une liste, il suffit d’utiliser la balise <li>. L’attribut start permet de définir le début
de la numérotation. Pour inverser la numérotation, on ajoute l’attribut reversed dans la balise
<ol>. La syntaxe est la suivante :
<ol>
<li>Item 1</li>
<li>Item 2</li>
…
<li>Item n</li>
</ol>
Exemples :
<table>
<tr><th>Simple</th><th>Avec start</th><th>Inversée</th></tr>
<tr>
<td>
<ol>
<li>Introduction</li>
<li>Les causes</li>
<li>Les conséquences</li>
<li>Les perspectives</li>
<li>Conclusion</li>
</ol>
</td>
<td>
<ol start="2">
<li>Introduction</li>
<li>Les causes</li>
<li>Les conséquences</li>
<li>Les perspectives</li>
<li>Conclusion</li>
</ol>
</td>
<td>
<ol reversed>
<li>Introduction</li>
<li>Les causes</li>
<li>Les conséquences</li>
<li>Les perspectives</li>
<li>Conclusion</li>
</ol>
</td>
</tr>
</table>
Exemple :
<ol>
<li>Introduction</li>
<li>Les causes
<ul>
<li>Les causes lointaines</li>
<li>Les causes immédiates</li>
<li>Les causes internes</li>
</ul>
</li>
<li>Les conséquences</li>
<li>Les perspectives</li>
<li>Conclusion</li>
</ol>
Ce type de liste permet d’associer un terme avec sa description. Elle est utile pour la
création de glossaire ou de dictionnaire par exemple. On la définit en utilisant la balise <dl>.
Ensuite, on indique chaque terme de la liste avec la balise <dt> et sa description avec la balise
<dd>. La Syntaxe générale est la suivante :
<dl>
<dt>Terme 1</dt>
<dd>Description terme 1</dd>
<dt>Terme 2</dt>
<dd>Description terme 2</dd>
…
<dt>Terme N</dt>
<dd>Description terme N</dd>
</dl>
Exemple :
<dl>
<dt>HTML</dt>
<dd>HyperText Markup Language</dd>
<dt>URL</dt>
<dd>Uniform Resource Location</dd>
<dt>Internet</dt>
<dd>Réseau mondial d'ordinateurs</dd>
<dt>HTTP</dt>
<dd>HyperText Transfert Protocol</dd>
</dl>