--- title: Formatage avancé du texte slug: Learn/HTML/Introduction_to_HTML/Advanced_text_formatting tags: - Apprendre - Citation - Codage - Débutant - Guide - HTML - Texte - abréviation - listes descriptives - sémantique translation_of: Learn/HTML/Introduction_to_HTML/Advanced_text_formatting original_slug: Apprendre/HTML/Introduction_à_HTML/Advanced_text_formatting --- {{LearnSidebar}}{{PreviousMenuNext("Apprendre/HTML/Introduction_à_HTML/Creating_hyperlinks", "Apprendre/HTML/Introduction_à_HTML/Document_and_website_structure", "Apprendre/HTML/Introduction_à_HTML")}} Il y a de nombreux autres éléments HTML pour mettre en forme un texte qui n'ont pas été mentionnés dans l'article [Les concepts fondamentaux du HTML liés au texte](/fr/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals). Les éléments abordés ici sont moins connus mais tout aussi utiles (et ce n'est aucunement une liste complète). Nous voyons ici comment marquer des citations, des listes de description, du code informatique et autres choses relatives au texte : indices et exposants, informations de contact, etc.
Prérequis : | Être familiarisé avec les bases du HTML, traitées à la page Commencer avec le HTML et du formatage de texte HTML, décrit dans les Fondamentaux du texte HTML. |
---|---|
Objectifs : | Apprendre comment utiliser des éléments HTML moins connus pour baliser des fonctions sémantiques avancées. |
Pressez Esc pour sortir le focus de la Zone de saisie (Tab insère une tabulation).
``` ```css hidden html { font-family: sans-serif; } h2 { font-size: 16px; } .a11y-label { margin: 0; text-align: right; font-size: 0.7rem; width: 98%; } body { margin: 10px; background: #f5f9fa; } ``` ```js hidden var textarea = document.getElementById('code'); var reset = document.getElementById('reset'); var solution = document.getElementById('solution'); var output = document.querySelector('.output'); var code = textarea.value; var userEntry = textarea.value; function updateCode() { output.innerHTML = textarea.value; } reset.addEventListener('click', function() { textarea.value = code; userEntry = textarea.value; solutionEntry = htmlSolution; solution.value = 'Voir la solution'; updateCode(); }); solution.addEventListener('click', function() { if(solution.value === 'Voir la solution') { textarea.value = solutionEntry; solution.value = 'Cacher la solution'; } else { textarea.value = userEntry; solution.value = 'Voir la solution'; } updateCode(); }); var htmlSolution = '` : ```htmlL'Élément HTML
``` #### Exemple de bloc de citation Pour le changer en bloc de citation, on ferait simplement ceci : ```html<blockquote>
(ou Élément HTML bloc de citation) indique que le bloc de texte inclus est une citation étendue.``` Le navigateur l'affichera par défaut sous forme d'un paragraphe indenté, avec l'indication qu'il s'agit d'une citation ; MDN agit de même et y ajoute un style personnalisé : {{EmbedLiveSample("Blocs_de_citation")}} ### Citations en ligne Les citations en ligne fonctionnent exactement de la même manière, sauf que l'on utilise l'élément {{htmlelement("q")}}. Par exemple, le balisage suivant contient une citation de la page MDN `L'Élément HTML
<blockquote>
(ou Élément HTML bloc de citation) indique que le bloc de texte inclus est une citation étendue.` : #### Exemple de citation en ligne ```htmlL'élément citation —
``` Le navigateur l'affichera par défaut comme du texte normal entre guillemets pour indiquer une citation, comme ceci : {{EmbedLiveSample("Exemple_de_citation_en_ligne")}} ### Citations Le contenu de l'attribut {{htmlattrxref("cite","blockquote")}} semble utile, malheureusement les navigateurs, lecteurs d'écran, etc. n'en font pas grand chose. Il n'y a pas possibilité de faire afficher différemment au navigateur le contenu d'un `cite` sans utiliser votre propre JavaScript ou style CSS. Si vous souhaitez rendre disponible la source de la citation sur votre page, la meilleure façon de le faire est d'inclure l'élément {{htmlelement("cite")}} à coté de l'élément citation. Cet élément est vraiment destiné à contenir le nom de la source de la citation — c'est-à-dire le nom du livre ou de la personne auteur de la citation — mais il n'y a aucune raison pour laquelle vous n'avez pas pu lier le texte à l'intérieur de `` à la source de la citation d'une manière ou d'une autre : ```html<q>
— estprévu pour de courtes citations ne nécessitant pas un nouvel alinéa.Selon la page blockquote du MDN:
L'Élément HTML
<blockquote>
(ou Élément HTML bloc de citation) indique que le bloc de texte inclus est une citation étendue.L'élément citation —
— page q du MDN. ``` Les citations sont affichées avec un police italique par défaut. Vous pouvez voir l'affichage de ce code dans l'exemple [quotations.html](https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/advanced-text-formatting/quotations.html). ### Apprentissage actif : Qui a dit quoi ? Il est temps de faire un autre apprentissage actif ! Dans cet exemple, nous souhaiterions que : 1. vous marquiez le paragraphe central comme étant une citation comprenant un attribut `cite`. 2. une partie du troisième paragraphe soit balisée en tant que citation en ligne, comprenant aussi un attribut `cite`. 3. vous incorporiez un élément `` pour chaque citation L'origine des citations dont vous aurez besoin se trouvent aux pages : - http\://www\.brainyquote.com/quotes/authors/c/confucius.html pour la citation de Confucius, - http\://www\.affirmationsforpositivethinking.com/index.html pour « The Need To Eliminate Negative Self Talk » (_De la nécessité d'éliminer un discours négatif sur soi‑même_). Si vous faites une erreur, vous pourrez toujours tout réinitialiser en pressant le bouton de même nom. Si vous êtes vraiment bloqué, pressez le bouton _Voir la solution_ pour obtenir la réponse. ```html hidden<q>
— estprévu pour de courtes citations ne nécessitant pas un nouvel alinéa.Zone de rendu
Code modifiable
Pressez Esc pour sortir le focus de la Zone de saisie (Tab insère une tabulation).
``` ```css hidden html { font-family: sans-serif; } h2 { font-size: 16px; } .a11y-label { margin: 0; text-align: right; font-size: 0.7rem; width: 98%; } body { margin: 10px; background: #f5f9fa; } ``` ```js hidden var textarea = document.getElementById('code'); var reset = document.getElementById('reset'); var solution = document.getElementById('solution'); var output = document.querySelector('.output'); var code = textarea.value; var userEntry = textarea.value; function updateCode() { output.innerHTML = textarea.value; } reset.addEventListener('click', function() { textarea.value = code; userEntry = textarea.value; solutionEntry = htmlSolution; solution.value = 'Show solution'; updateCode(); }); solution.addEventListener('click', function() { if(solution.value === 'Voir la solution') { textarea.value = solutionEntry; solution.value = 'Cacher la solution'; } else { textarea.value = userEntry; solution.value = 'Voir la solution'; } updateCode(); }); var htmlSolution = 'Salut et bienvenue sur ma page de motivation. Comme Confucius a dit en son temps :
\n\n\n\n\nLa lenteur avec laquelle vous allez n\'a pas d\'importance tant que vous ne vous arrêtez pas.
\nJ\'aime aussi le concept de pensée positive
'; var solutionEntry = htmlSolution; textarea.addEventListener('input', updateCode); window.addEventListener('load', updateCode); // stop tab key tabbing out of textarea and // make it write a tab at the caret position instead textarea.onkeydown = function(e){ if (e.keyCode === 9) { e.preventDefault(); insertAtCaret('\t'); } if (e.keyCode === 27) { textarea.blur(); } }; function insertAtCaret(text) { var scrollPos = textarea.scrollTop; var caretPos = textarea.selectionStart; var front = (textarea.value).substring(0, caretPos); var back = (textarea.value).substring(textarea.selectionEnd, textarea.value.length); textarea.value = front + text + back; caretPos = caretPos + text.length; textarea.selectionStart = caretPos; textarea.selectionEnd = caretPos; textarea.focus(); textarea.scrollTop = scrollPos; } // Update the saved userCode every time the user updates the text area code textarea.onkeyup = function(){ // We only want to save the state when the user code is being shown, // not the solution, so that solution is not saved over the user code if(solution.value === 'Voir la solution') { userEntry = textarea.value; } else { solutionEntry = textarea.value; } updateCode(); }; ``` {{ EmbedLiveSample('Apprentissage_actif_Qui_a_dit_quoi_', 700, 450, "", "", "hide-codepen-jsfiddle") }} ## Abréviations Un autre élément assez commun rencontré en se promenant dans le Web est l'élément {{htmlelement("abbr")}}}}. Il s'utilise pour entourer une abréviation ou un acronyme et donner le développement complet du terme (inclus dans un attribut {{htmlattrxref("title")}}}. Voyons quelques exemples :Il est nécessaire d\'éliminer le discours négatif sur soi-même(comme dit dans Affirmations for Positive Thinking.)Nous utilisons l'HTML pour structurer nos documents web.
Je pense que le R. Green l'a fait dans la cuisine avec une tronçonneuse.
Leur affichage correspond aux deux phrases suivantes (le développement de l'abréviation apparaît dans une infobulle quand le pointeur de souris passe sur le terme) : Nous utilisons l'HTML pour structurer nos documents web. Je pense que le R. Green l'a fait dans la cuisine avec une tronçonneuse. > **Note :** Il existe un autre élément, {{htmlelement("acronym")}}, faisant fondamentalement la même chose que ``, destiné spécifiquement aux acronymes plutôt qu'aux abréviations. Il est cependant tombé en désuétude — il n'était pas aussi bien pris en charge dans les navigateurs que \ et sa fonction était si ressemblante qu'on a considéré inutile d'avoir les deux. Il suffit d'utiliser \ à la place. ### Apprentissage actif : marquer une abréviation Pour cet apprentissage actif, nous aimerions que vous balisiez simplement une abréviation. Vous pouvez utiliser notre élément ci-après ou le remplacer par un de votre cru. ```html hiddenZone de rendu
Code modifiable
Pressez Esc pour sortir le focus de la Zone de saisie (Tab insère une tabulation).
``` ```css hidden html { font-family: sans-serif; } h2 { font-size: 16px; } .a11y-label { margin: 0; text-align: right; font-size: 0.7rem; width: 98%; } body { margin: 10px; background: #f5f9fa; } ``` ```js hidden var textarea = document.getElementById('code'); var reset = document.getElementById('reset'); var solution = document.getElementById('solution'); var output = document.querySelector('.output'); var code = textarea.value; var userEntry = textarea.value; function updateCode() { output.innerHTML = textarea.value; } reset.addEventListener('click', function() { textarea.value = code; userEntry = textarea.value; solutionEntry = htmlSolution; solution.value = 'Voir la solution'; updateCode(); }); solution.addEventListener('click', function() { if(solution.value === 'Voir la solution') { textarea.value = solutionEntry; solution.value = 'Cacher la solution'; } else { textarea.value = userEntry; solution.value = 'Voir la solution'; } updateCode(); }); var htmlSolution = 'La NASA fait assurément des tâches passionnantes.
'; var solutionEntry = htmlSolution; textarea.addEventListener('input', updateCode); window.addEventListener('load', updateCode); // stop tab key tabbing out of textarea and // make it write a tab at the caret position instead textarea.onkeydown = function(e){ if (e.keyCode === 9) { e.preventDefault(); insertAtCaret('\t'); } if (e.keyCode === 27) { textarea.blur(); } }; function insertAtCaret(text) { var scrollPos = textarea.scrollTop; var caretPos = textarea.selectionStart; var front = (textarea.value).substring(0, caretPos); var back = (textarea.value).substring(textarea.selectionEnd, textarea.value.length); textarea.value = front + text + back; caretPos = caretPos + text.length; textarea.selectionStart = caretPos; textarea.selectionEnd = caretPos; textarea.focus(); textarea.scrollTop = scrollPos; } // Update the saved userCode every time the user updates the text area code textarea.onkeyup = function(){ // We only want to save the state when the user code is being shown, // not the solution, so that solution is not saved over the user code if(solution.value === 'Voir la solution') { userEntry = textarea.value; } else { solutionEntry = textarea.value; } updateCode(); }; ``` {{ EmbedLiveSample('Apprentissage_actif_marquer_une_abréviation', 700, 300, "", "", "hide-codepen-jsfiddle") }} ## Balisage des détails de contact HTML possède l'élément {{htmlelement("address")}} pour baliser des détails de contact. Enveloppez simplement vos coordonnées, par exemple : ```htmlChris Mills, Manchester, The Grim North, UK
``` Une chose à retenir cependant : l'élément {{htmlelement("address")}} est destiné à marquer les coordonnées de la personne ayant écrit le document HTML et non pas _n'importe quelle_ adresse. Donc, ce qui précède ne serait acceptable que si Chris avait écrit le document sur lequel ce balisage apparaît. Notez que serait également acceptable ce qui suit : ```htmlPage écrite par Chris Mills.
``` ## Exposants et indices Vous devrez parfois utiliser exposants et indices pour marquer des éléments comme dates, formules chimiques et équations mathématiques de façon à ce qu'ils aient une bonne signification. On effectue ce travail à l'aide des éléments {{htmlelement("sup")}} et {{htmlelement("sub")}}. Par exemple : ```htmlMa date de naissance est le 1er mai 2001.
La formule chimique de la caféine est C8H10N4O2.
Si x2 égale 9, x doit valoir 3 ou -3.
``` Les sorties produites par ces lignes de code se présentent comme suit : Ma date de naissance est le 1er mai 2001. La formule chimique de la caféine est C8H10N4O2. Si x^2 égale 9, x doit valoir 3 ou -3. ## Représentation du code informatique HTML met à votre dispositon un certain nombre d'éléments pour marquer du code informatique : - {{htmlelement("code")}} : pour marquer des parties génériques de code. - {{htmlelement("pre")}} : pour conserver les blancs (généralement dans les blocs de code) — si vous indentez ou mettez des blancs en excès dans votre texte, les navigateurs les ignoreront et vous ne les verrez plus dans le rendu de la page. Par contre si vous enveloppez le texte dans des balises \\, les blancs seront rendus tels qu'il se présentent dans votre éditeur de texte. - {{htmlelement("var")}} : pour marquer spécifiquement les noms de variables. - {{htmlelement("kbd")}} : pour marquer les touches de clavier (et autres types d'entrées) à presser sur l'ordinateur. - {{htmlelement("samp")}} : pour marquer une sortie de programme. Voyons quelques exemples. Essayez de jouer avec cela (faites une copie de notre fichier exemple [other-semantics.html](https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/advanced-text-formatting/other-semantics.html)) : ```htmlvar para = document.querySelector('p'); para.onclick = function() { alert('Owww, arrête de me toucher !'); }
N'utilisez pas d'éléments de présentation comme
<font>
et<center>
.Dans l'exemple JavaScript ci‑dessus, para représente un élément paragraphe.
Sélectionnez la totalité du texte avec Ctrl/Cmd + A.
$ ping mozilla.org PING mozilla.org (63.245.208.195) 56(84) bytes of data. 64 bytes from mozilla.org (63.245.208.195): icmp_seq=1 ttl=46 time=191 ms``` Ce code se présente ainsi : {{ EmbedLiveSample('Représentation_du_code_informatique','100%',300) }} ## Balisage des heures et dates HTML fournit également l'élément {{htmlelement("time")}}} pour marquer les heures et les dates dans un format lisible par machine. Par exemple : ```html ``` En quoi est-ce utile ? Eh bien, il y a beaucoup de façons différentes dont les humains écrivent les dates. La date ci-dessus pourrait s'écrire comme suit : - 20 Janvier 2016 - 20th January 2016 - Jan 20 2016 - 20/01/16 - 01/20/16 - Le 20 du mois prochain - 20e Janvier 2016 - 2016 年 1 月 20 日 - etc. Mais ces différents formes ne sont pas facilement reconnaissables par les ordinateurs — que se passerait‑il si vous vouliez saisir automatiquement les dates de tous les événements dans une page et les insérer dans un calendrier ? L'élément {{htmlelement("time")}}} vous permettra d'attacher un horodatage non ambigu lisible par machine à cette fin. L'exemple de base ci-dessus ne fournit qu'une simple date lisible par machine, mais il y a beaucoup d'autres options possibles, par exemple : ```html ``` ## Résumé Nous voici arrivés à la fin de notre étude de la sémantique des textes en HTML. N'oubliez pas que ce qui précède ne constitue pas la liste exhaustive des éléments texte en HTML — nous avons essayé de couvrir essentiellement les plus courants dans la nature ou du moins ceux que nous avons pensé intéressants. Pour en voir plus, jetez un coup d'oeil à notre [Référence des éléments HTML](/fr/docs/Web/HTML/Element) (la section [sémantique de texte en ligne](/fr/docs/Web/HTML/Element#inline_text_semantics) serait un bon point de départ.) Dans l'article suivant, nous examinerons les éléments HTML à utiliser pour structurer les diverses parties d'un document HTML. {{PreviousMenuNext("Apprendre/HTML/Introduction_à_HTML/Creating_hyperlinks", "Apprendre/HTML/Introduction_à_HTML/Document_and_website_structure", "Apprendre/HTML/Introduction_à_HTML")}} ## Dans ce module - [Commencer avec le HTML](/fr/docs/Apprendre/HTML/Introduction_%C3%A0_HTML/Getting_started) - [Qu'y-a-t-il dans l'en-tête ? Métadonnées en HTML](/fr/docs/Learn/HTML/Introduction_to_HTML/The_head_metadata_in_HTML) - [Fondamentaux du texte HTML](/fr/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals) - [Création d'hyperliens](/fr/docs/Learn/HTML/Introduction_to_HTML/Creating_hyperlinks) - Formatage avancé du texte - [Structure de Site Web et de document](/fr/docs/Learn/HTML/Introduction_to_HTML/Document_and_website_structure) - [Déboguer de l'HTML](/fr/docs/Learn/HTML/Introduction_to_HTML/Debugging_HTML) - [Faire une lettre](/fr/docs/Learn/HTML/Introduction_to_HTML/Marking_up_a_letter) - [Structurer une page de contenu](/fr/docs/Learn/HTML/Introduction_to_HTML/Structuring_a_page_of_content)