Élément HTML
En informatique, un élément HTML (appelé également « balise HTML » ou tag en anglais) est un élément de base utilisé pour définir la structure d'un document écrit en HTML.
Ce langage informatique est constitué d'une suite de caractères textuels définissant le nom de l'élément ainsi que ses éventuels attributs.
Le langage HTML est utilisé dans la création de sites web, additionné d'autres langages de mise en forme dynamique comme le CSS. Le langage HTML est le corps des sites web d'aujourd'hui.
Structure
modifierJusqu'à la version HTML4, la structure d'un document HTML s'inspire de la méthode de modélisation SGML, conçue pour structurer les documents bureautiques classiques. La version 4 de la définition de type de document (DTD) définit 91 éléments HTML[1]. Néanmoins la version HTML5 ne s'appuie pas sur SGML et ne définit pas de DTD[2].
Les éléments HTML permettent de définir des en-têtes, des paragraphes, des liens hypertextes, des listes, des séquences audio ou des séquences vidéo. Au début d'une zone de code on parle alors de balise HTML "ouvrante", et en fin de zone se trouve une balise HTML "fermante"). Une balise HTML ouvrante est constituée par un signe « < », suivi par le nom de la balise, par les éventuels attributs sous la forme attribut=valeur, et par un signe « > » (exemple : <img src="hello jpg">
). Une balise HTML fermante est constituée par un signe « < », suivi par un signe « / », puis par le nom de la balise, et par un signe « > » (exemple : </img>
). Une balise peut être à la fois ouvrante et fermante lorsqu'elle n'a pas de contenu : dans ce cas, elle est constituée par un signe « < », suivi par le nom de la balise, par les éventuels attributs sous la forme attribut=valeur, par un signe « / » et par un signe « > » (exemple : <img src="hello jpg"/>
).
Catégories bloc et texte
modifierLes éléments HTML sont répartis en deux catégories : bloc (block) ou texte (inline).
Éléments de catégorie bloc
modifierCe sont des structures qui contiennent d'autres blocs, des éléments de catégorie texte, ou seulement du texte. En général, ils sont affichés comme des blocs et séparés des autres blocs par des espaces traduits par des tabulations tels que les titres de section, les paragraphes, les listes, les tableaux et autres.
Éléments de catégorie texte
modifierCes éléments représentent ou décrivent du texte ou des données. Ils peuvent contenir seulement du texte ou d'autres éléments de catégorie texte, et sont habituellement affichés l'un après l'autre sur une ligne à l'intérieur du bloc qui les contient, tels que les hyperliens, les citations, les images et autres.
Éléments racines
modifierLes éléments racines sont des éléments qui contiennent d'autres éléments HTML.
<html>…</html>
Ces balises délimitent un document HTML (à la place d'un document XML ou d'une classe). La langue primaire du document HTML peut être définie avec l'attribut lang
(avec par ex. en
pour anglais). Le seul contenu autorisé est soit un élément <head>
et un élément <body>
, soit un élément <head>
et un élément <frameset>
.
<head>…</head>
Ces balises délimitent la section d'en-tête du document. Cet élément contient les informations sur la page web. L'élément <head>
contient principalement les métadonnées du document comme le titre, l'encodage des caractères, etc. Il y a sept éléments d'en-tête possibles qui incluent un élément meta
pour une spécification extensible des métadonnées.
<body>…</body>
Ces balises délimitent le corps du document. D'après les recommandations de la version 5 (HTML 5), tout ce qui doit être visible sur la page et qui décrit son fonctionnement doit se trouver à l'intérieur de cet élément.
Les éléments racines sont organisés comme suit :
<html>
<head>
<!-- Cette section peut contenir n'importe quels éléments d'en-tête qui peuvent être organisé de n'importe quelle façon et apparaître autant de fois que souhaité, à l'exception de <base> et <title> qui ne peuvent apparaître qu'une seule fois chacun. Le seul élément obligatoire de l'en-tête (délimitée entre les balises <head> et </head>) est : <title>. -->
</head>
<body>
<!-- Ne peut avoir comme enfants directs que des éléments de type ''%block'' en HTML strict, mais admet également des éléments de type ''%inline'' ou du texte anonyme en HTML transitionnel. -->
</body>
</html>
Éléments d'en-tête
modifierTitre
modifierLa balise <title>…</title>
est utilisée pour définir le titre du document HTML, généralement affiché dans la barre de titre de la fenêtre du navigateur ou dans les onglets du navigateur lorsqu'une page web est ouverte.
L'élément <title>
ne peut apparaitre qu'une seule fois dans le document HTML et est le seul élément obligatoire, bien que la plupart des navigateurs les plus populaires ne réagiront pas à son absence. Il est placé entre les balises <head>
</head>
. Le contenu de cet élément sera utilisé par le navigateur de l'usager pour désigner la page (par exemple sur l'onglet ou dans les favoris), ainsi que par les moteurs de recherche. Cette balise sert généralement à identifier sommairement le contenu de la page, comme une propriété de celle-ci, sans faire partie du contenu. Il n'y a pas de limite au nombre de caractères que peut contenir <title>
, cependant les navigateurs en limitent généralement l'affichage. De même, aucune autre balise HTML n'y sera interprétée.
Base
modifierLa balise <base>
permet d'indiquer depuis quel site ou répertoire vous souhaitez partir. Pour cela il est nécessaire d'indiquer le chemin absolu vers le répertoire cible. Par exemple, si vous êtes dans le dossier www et que vous indiquez dans votre code un chemin vers le fichier index.html, sans base, vous serez dirigé vers le chemin http://votre-site.com/index.html
.
Cependant si vous avez indiqué une base, par exemple http://votre-site.com/pages/
, ce même lien va alors pointer surhttp://votre-site.com/pages/index.html
.
Syntaxe : <base href="votre_chemin"/>
Liaisons
modifierLa balise <link>
spécifie les liens vers d'autres documents, comme les liens previous (précédent) et next (suivant), ou des versions alternatives. Un en-tête HTML peut contenir un nombre quelconque d'éléments <link>
. L'élément <link>
a des attributs, mais pas de contenu. On l'utilise couramment pour créer des liens avec des feuilles de style externes, en utilisant la formulation suivante : <link rel="stylesheet" type="text/css" href="url">
.
Inclusion de scripts
modifierLa balise <script>…</script>
permet d'inclure du code de script (le plus souvent en JavaScript), souvent pour rendre la page interactive. Dans le cas où le navigateur d'un visiteur ne reconnaît pas la balise, le W3C recommande de mettre le code en commentaire :
<script>
//<!--
Code du script
//-->
</script>
<noscript>…</noscript>
Ces balises permettent d'insérer dans la page des éléments qui seront affichés uniquement si le navigateur n'est pas capable d'interpréter des scripts.
Style
modifierLa balise <style>…</style>
permet d'inclure des informations de style au format CSS.
Objets
modifierLa balise <object>…</object>
permet l'insertion d'un objet en précisant sa nature par l'attribut type
. Il peut s'agir d'un Applet Java, d'une application Flash, d'une vidéo, d'un son…
Métadonnées
modifierLa balise <meta>
peut être utilisée pour spécifier l’auteur, la date de publication, la date d’expiration, la description de page, les mots-clés et toute autre métadonnée qui n’est pas fournie à travers les autres éléments et attributs d’en-tête (head
). En raison de leur caractère générique, les éléments meta spécifient des
[3]. Dans un formulaire, les éléments meta peuvent spécifier les en-têtes HTTP qui doivent être envoyés avant le contenu réel quand la page HTML est servie d’un serveur web au client. Par exemple :
<meta http-equiv="foo" content="bar">
Cet exemple spécifie que la page doit être servie avec un en-tête HTTP appelé « foo » qui a une valeur « bar ».
Dans le formulaire général, un méta-élément spécifie le nom (name
) et les attributs de contenu (content
) associés qui décrivent des aspects de la page HTML. Afin d’éviter d’éventuelles ambiguïtés, un troisième attribut optionnel scheme
peut être fourni pour spécifier un cadre sémantique qui définit la signification de la clé et sa valeur. Par exemple: <meta name="foo" content="bar" scheme="DC">
Dans cet exemple, la métadonnée s'appelle « foo » ; a la valeur « bar » ; est relative au resource description framework DC ou Dublin Core.
Bloc
modifierBeaucoup d'éléments HTML sont conçus pour modifier la structure sémantique ou la signification d'un document. Certains sont au niveau bloc, mais la plupart sont au niveau ligne et peuvent être incluse dans le corps de texte normal.
Éléments bloc généraux
modifier<p>…</p>
: Balise de type block, elle correspond à la création d'un nouveau paragraphe.
Syntaxe :
<p>Mon texte…</p>
La balise de fermeture n'est pas nécessaire en HTML. Elle est cependant obligatoire en xHTML.
La balise <div>...</div>
est une balise générique de cette catégorie qui est souvent utilisée pour réaliser la mise en forme du site sans une signification sémantique particulière.
Niveau ligne
modifier<br>
cette balise indique au navigateur un retour à la ligne forcé
Liens
modifierLes liens, ou hyperliens, sont l'un des éléments les plus basiques et importants.
La balise <a>
est utilisée pour insérer un hyperlien :
<a href="Votre lien">Ceci est un lien</a>
La balise ouvrante est <a href="">
, la balise fermante est </a>
. L'URL complète du lien doit être spécifiée à l'aide de l'attribut href
lorsqu'il s'agit d'un lien externe vers un site web. En revanche, il n'est pas nécessaire d'indiquer l'URL complète pour les liens internes ou les ressources dans le même dossier.
Exemple d'utilisation avec l'URL "http://fr.wikipedia.org/wiki/Hypertext_Markup_Language" :
<a href="http://fr.wikipedia.org/wiki/Hypertext_Markup_Language">L’article de Wikipédia sur le html</a>
L'option target
permet d'indiquer si la cible est ouverte dans la même fenêtre ou dans une nouvelle fenêtre du navigateur[4].
Exemple :
<a href="http://fr.wikipedia.org/wiki/Hypertext_Markup_Language" target="_blank">L'article dans une nouvelle fenêtre</a>
Images et objets
modifierBalise image
modifier
La balise<img>
permet d'afficher des images en utilisant l'attribut src
pour indiquer l'emplacement (URL) de l'image :
<img src="votre_image.jpg">
D'autres attributs tels que title
, width
et height
peuvent être utilisés afin de contribuer à la mise en page et à l'accessibilité :
-
width="150"
- Règle la largeur de l'image sur 150 pixels.
height="150"
- Règle la hauteur de l'image sur 150 pixels.
title="Message"
- Insère un message qui est affiché lorsque le curseur reste immobile au-dessus de l'image.
Une balise pixel est une petite image invisible (de 1x1 pixel) incorporée dans une page web pour suivre et collecter des données sur les activités des utilisateurs en ligne. Celle-ci peut être associée aux cookies sur le disque dur des visiteurs.
Balise span
modifierLa balise <span>
n'a pas de signification particulière. Elle est utilisée pour appliquer des styles ou des attributs spécifiques à une partie du texte au sein d'un autre élément.
Par exemple, le code suivant :
La voiture <span style="color:red">rouge</span>.
Affiche : La voiture rouge.
Elle est généralement utilisée pour décorer une phrase ou un groupe de mots. Elle va de pair avec la balise <div>…</div>
qui elle est de type block.
Formulaires
modifierEn HTML les formulaires sont entre les balises
<form></form>
Il existe plusieurs balises permettant de faire un formulaire, mais la principale est la balise
<input>
Elle possède plusieurs types, chacun adapté à un type spécifique d'entrée :
<input type="button" value="Appuyez" onclick="maFonction()">
<!-- Un bouton affichant le texte spécifié dans l'attribut "value" et éxecutant l'action (une fonction en JavaScript le plus souvent) spécifiée dans l'attribut "onclick" lorsqu'un utilisateur clique dessus -->
<input type="text">
<!-- Une zone de texte d'une seule ligne -->
<input type="password">
<!-- Une zone de texte dont les caractères saisis seront masqués -->
<input type="number">
<!-- Une zone de texte permettant à l'utilisateur de saisir que des nombres -->
<input type="submit">
<!-- Un bouton qui soumet un formulaire lorsque l'utilisateur clique dessus -->
Il est possible de créer un champ de texte à plusieurs lignes avec la balise :
<textarea></textarea>
Voici un exemple de formulaire en HTML qui pourrait être utilisé dans une page d'authentification sur un site web :
<form action="" method='get'>
<input type="text" placeholder="Entrez votre identifient" name='id'>
<input type="password" placeholder="Entrez votre mot de passe" name="password">
<input type="submit" name="envoyer" value="Connexion">
</form>
Jeu de cadres
modifierLe système des cadres regroupe quatre balises HTML :
<frameset>
(obsolète en HTML 5)
modifier
Conteneur de cadres d'un document. Un document HTML contient soit un élément body
, soit un élément frameset
[5]. Ce dernier définit alors l'étendue de la fenêtre d'affichage où vont apparaître les cadres (éléments frame
) qu'il contient. Chaque cadre contient un document HTML à part entière. Leur mise en page est définie par des listes séparées par des virgules, des attributs HTML rows
et cols
.
Les jeux de cadre permettent de partager des données en employant un élément OBJECT
dans l'élément HEAD
d'un document frameset[6]
<frame>
(obsolète en HTML 5)
modifier
Cet élément définit un seul cadre ou une région du frameset
. Un document séparé peut être affiché avec l'attribut frame
nommé src
.
Il est aussi possible de prendre un frame pour cible d'autres documents HTML. Pour cela, il suffit d'assigner un nom au frame via l'attribut "name", il sera alors considéré par les "authors" comme la cible ("target") de liens définis par d'autres documents. L'attribut TARGET
peut être placé pour des éléments qui créent des liens (A, LINK), des image maps (AREA), et des forms (FORM)[7].
<noframes>
(obsolète en HTML 5)
modifier
L'élément noframes
permet de définir un contenu HTML alternatif pour les agents utilisateurs qui n'implémentent pas la technologie des cadres.
Exemple
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<title>A simple frameset document</title>
</head>
<frameset cols="20%, 80%">
<frameset rows="100, 200">
<frame src="contents_of_frame1.html">
<frame src="contents_of_frame2.gif">
</frameset>
<frame src="contents_of_frame3.html">
<noframes>
<p>This frameset document contains:</p>
<ul>
<li><a href="contents_of_frame1.html">Some neat contents</a></li>
<li><img src="contents_of_frame2.gif" alt="A neat image"></li>
<li><a href="contents_of_frame3.html">Some other neat contents</a></li>
</ul>
</noframes>
</frameset>
</html>
<iframe>
(obsolète en HTML 5)
modifier
Introduite en 1997 par Microsoft Internet Explorer, la balise iframe
signifie inline frame (cadre en ligne). Elle affiche un autre document HTML dans une frame. Mais contrairement à l'élément object
, elle peut être la cible de liens définis par d'autres éléments, et peut être sélectionnée par l'agent utilisateur pour imprimer, afficher la source, etc.
Le contenu de l’élément est utilisé comme texte alternatif pour les navigateurs qui ne prennent pas en charge les iframes.
Exemple :
<!DOCTYPE html>
<html>
<head>
<title>Document avec une iframe</title>
</head>
<body>
<iframe src="http://www.w3schools.com">Impossible d'afficher l'iframe</iframe>
</body>
</html>
Les sites Facebook et Twitter utilisent des iframes pour afficher directement les contenus de sites web tiers. Google AdSense quant à lui s'en sert pour que ses bannières publicitaires apparaissent sur d'autres sites.
Voir aussi
modifierNotes et références
modifier- (en) « HTML 4 Document Type Definition », sur w3.org (consulté le ).
- « HTML5 Differences from HTML4 », sur www.w3.org (consulté le )
- (en) « The global structure of an HTML document », sur W3C (consulté le )
- (en) Adam Roberts, « Target (HTML attribute) - SitePoint », sur sitepoint.com, (consulté le ).
- (en) « Frames in HTML documents », sur w3.org (consulté le ).
- Sharing data among frames
- (en) « Frames in HTML documents », sur w3.org (consulté le ).
- (en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « HTML element » (voir la liste des auteurs).