--- title: Fondamentaux du texte HTML slug: Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals tags: - Apprendre - Débutant - Guide - HTML - Introduction à l'HTML - Listes - Paragraphes - Texte - Titres - sémantique translation_of: Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals original_slug: Apprendre/HTML/Introduction_à_HTML/HTML_text_fundamentals --- {{LearnSidebar}}{{PreviousMenuNext("Learn/HTML/Introduction_to_HTML/The_head_metadata_in_HTML", "Learn/HTML/Introduction_to_HTML/Creating_hyperlinks", "Learn/HTML/Introduction_to_HTML")}} L'un des principaux buts de HTML est de structurer du texte et lui donner du sens (ce que l'on appelle la {{glossary("sémantique")}}) afin que le navigateur puisse l'afficher correctement. Cet article explique comment {{glossary("HTML")}} peut être utilisé pour structurer une page en ajoutant des titres et des paragraphes, en marquant des emphases, en créant des listes, et bien plus encore.
Pré-requis: |
Connaître les bases du langage HTML, telles que traitées à la page Commencer avec le HTML. |
---|---|
Objectif: |
Apprendre comment ajouter des balises dans une page de texte simple pour la structurer et lui donner du sens — en incluant des paragraphes, des titres, des listes, des emphases et des citations. |
Je suis un paragraphe, oh oui je le suis.
``` Chaque titre doit être contenu dans un élément titre : ```htmlpar Chris Mills
Il faisait nuit noire. Quelque part une chouette ululait. La pluie tombait sur ...
Notre protagoniste ne pouvait même pas murmurer à l'ombre de la silhouette...
Plusieurs heures s'étaient écoulées, quand soudain le spectre assis se releva et s'exclama : « S'il vous plaît, ayez pitié de mon âme ! »...
``` C'est vous qui décidez ce que représentent les éléments utilisés tant que la hiérarchie a du sens. Vous devez cependant garder à l'esprit quelques bonnes pratiques lorsque vous créez de telles structures : - Il est préférable de n'utiliser qu'un seul `Pressez Esc pour sortir le focus de la zone de code (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 = 'Je suis une policière et mon nom est Trish.
\nMes jambes sont en carton et je suis mariée à un poisson.
'; var solutionEntry = htmlSolution; textarea.addEventListener('input', updateCode); window.addEventListener('load', updateCode); // bloquer le déplacement du focus hors de la zone texte avec la touche Tab // faire en sorte que la touche Tab mette une tabulation à la position du curseur 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; } // Mettre à jour le code utilisateur enregistré chaque fois que l'utilisateur // met à jour le texte du code textarea.onkeyup = function(){ // nous souhaitons uniquement enregistrer l'état quand le code utilisateur est montré, // non la solution, donc elle n'est pas enregistrée sur le code utilisateur if(solution.value === 'Voir la solution') { userEntry = textarea.value; } else { solutionEntry = textarea.value; } updateCode(); }; ``` {{ EmbedLiveSample('Apprentissage_actif_structurer_le_contenu', 700, 370) }} ### Pourquoi a-t-on besoin de sémantique ? La sémantique est utilisée partout autour de nous — on se fie à nos précédentes experiences pour savoir à quoi servent les objets du quotidien; quand on voit quelque chose, on sait à quoi cela sert. Par exemple, on s'attend à ce qu'un feu rouge de signalisation signifie « Stop » et qu'un feu vert signifie « Avancez ». Les choses peuvent vite devenir plus compliquées si de mauvaises sémantiques sont appliquées (existe-t-il un pays dans lequel un feu rouge signifie que l'on peut passer ? Je ne l'espère pas.) Dans la même optique, il faut s'assurer que l'on utilise les bons élements et que l'on donne la bonne signification, la bonne fonction et la bonne apparence à notre contenu. Dans ce contexte, l'élément {{htmlelement("h1")}} est aussi un élement sémantique. Il donne au texte auquel il s'applique la fonction (ou la signification) de « titre principal de la page ». ```htmlPressez Esc pour sortir le focus de la zone de code (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 = 'Pressez Esc pour sortir le focus de la zone de code (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 = 'Pressez Esc pour sortir le focus de la zone de code (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 = 'Cette recette permet d\'obtenir rapidement un houmous savoureux, sans complications. C\'est une adaptation de plusieurs recettes différentes que j\'ai essayées au fil des ans.
\n\nL\'houmous est une délicieuse pâte épaisse utilisée dans les plats en Grèce et au moyen-orient. Il s\'accorde très bien avec la salade, les viandes grillées et du pain calabrais.
\n\nPour des saveurs différentes, vous pouvez essayer d\'y mettre un peu de jus de citron et de coriandre, du tabasco, de la limette et du chipotle, de la harissa et de la menthe ou des épinards et de la feta. Essayez et voyez ce qui vous va.
\n\nMettez l\'houmous fini au réfrigérateur dans un récipient fermé. Vous le garderez ainsi pendant environ une semaine. S\'il se met à fermenter, jettez‑le sans hésiter.
\n\nL\'houmous peut être congelé ; consommez‑le dans les deux mois qui suivent sa congélation.
'; var solutionEntry = htmlSolution; textarea.addEventListener('input', updateCode); window.addEventListener('load', updateCode); // bloquer le déplacement du focus hors de la zone texte avec la touche Tab // faire en sorte que la touche Tab mette une tabulation à la position du curseur 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; } // Mettre à jour le code utilisateur enregistré chaque fois que l'utilisateur // met à jour le texte du code textarea.onkeyup = function(){ // nous souhaitons uniquement enregistrer l'état quand le code utilisateur est montré, // non la solution, donc elle n'est pas enregistrée sur le code utilisateur if(solution.value === 'Voir la solution') { userEntry = textarea.value; } else { solutionEntry = textarea.value; } updateCode(); }; ``` {{ EmbedLiveSample('Apprentissage_actif_mettre_des_balises_pour_une_recette_de_cuisine', 700, 500) }} Si vous êtes bloqué, vous pouvez cliquer sur le bouton _Voir la solution_, ou alors regarder l'exemple [text-complete.html](https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/html-text-formatting/text-complete.html) sur le dépôt GitHub. ### Imbriquer des listes Il est parfaitement possible d'imbriquer une liste dans une autre. Il se peut que vous vouliez insérer une liste à puces derrière une même puce de niveau supérieur. Prenons par exemple la deuxième liste de la recette : ```htmlJe suis content que vous n'ayez pas été en retard.
``` ### Grande importance Pour mettre l'accent sur des mots très importants, nous les soulignons d'un ton particulier dans la langue parlée et nous les mettons en caractères gras dans la langue écrite. Par exemple : Ce liquide est **hautement toxique**. Je compte sur vous. **Ne soyez pas en retard** ! En HTML, nous utilisons l'élément {{htmlelement("strong")}} (forte importance) comme balise de telles circonstances. En plus de rendre le document plus lisible, ces balises sont reconnues par les lecteurs d'écran et énoncées avec des intonations différentes. Par défaut, les navigateurs mettent le texte marqué en gras, mais il ne faut pas utiliser cette balise pour mettre en gras. Pour cela, utilisez un élément {{htmlelement("span")}}} et du CSS, ou plus simplement un élément {{htmlelement("b")}} (voir ci-dessous). ```htmlCe liquide est hautement toxique.
Je compte sur vous. Ne soyez pas en retard !
``` Il est possible d'imbriquer `strong` et `em` : ```htmlCe liquide est hautement toxique — si vous en buvez, vous pourriez en mourir.
``` ### Apprentissage actif : soulignez l'important Dans ce paragraphe d'apprentissage actif, nous avons donné un exemple modifiable. À l'intérieur, nous aimerions que vous essayiez d'ajouter de l'emphase et de l'importance aux mots quand vous pensez qu'ils en ont besoin, juste pour une bonne pratique. ```html hiddenPressez Esc pour sortir le focus de la zone de code (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 = "Le dimanche 9 janvier 2010, une bande de barbares a été repérée en train de voler plusieurs nains de jardin dans un centre commercial du centre-ville de Milwaukee. Ils portaient tous des combinaisons vertes et des chapeaux ridicules et semblaient s'amuser comme des fous. Si quelqu'un a une quelconque information sur cet incident, veuillez contacter la police immédiatement.
"; var solutionEntry = htmlSolution; textarea.addEventListener('input', updateCode); window.addEventListener('load', updateCode); // bloquer le déplacement du focus hors de la zone texte avec la touche Tab // faire en sorte que la touche Tab mette une tabulation à la position du curseur 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; } // Mettre à jour le code utilisateur enregistré chaque fois que l'utilisateur // met à jour le texte du code textarea.onkeyup = function(){ // nous souhaitons uniquement enregistrer l'état quand le code utilisateur est montré, // non la solution, donc elle n'est pas enregistrée sur le code utilisateur if(solution.value === 'Voir la solution') { userEntry = textarea.value; } else { solutionEntry = textarea.value; } updateCode(); }; ``` {{ EmbedLiveSample("Apprentissage_actif_soulignez_l'important", 700, 500) }} ### Italique, gras, soulignement… Les éléments dont nous avons discuté jusqu'à présent ont une sémantique bien définie. La situation avec {{htmlelement("b")}}, {{htmlelement("i")}} et {{htmlelement("u")}} est un peu plus complexe. Ils sont apparus pour que les personnes puissent écrire du texte en gras, en italique ou souligné à une époque où le CSS était encore mal ou pas du tout pris en charge. De tels éléments, qui n'affectent que la présentation et non la sémantique, sont appelés **éléments de présentation** et ne devraient plus être utilisés, car comme nous l'avons vu précédemment, la sémantique a la plus grande importance pour l'accessibilité, le référencement, etc. HTML5 a redéfini ``, `` et `` avec de nouveaux rôles sémantiques quelques peu déroutants. Voici la meilleure règle d'or : il est probablement approprié d'utiliser ``, ``, ou `` pour communiquer le sens traditionnellement associé aux caractères gras, italiques ou soulignés, à condition qu'il n'y ait pas d'élément plus approprié. Toutefois, il demeure toujours essentiel de garder présent à l'esprit le concept d'accessibilité. L'écriture en italique n'est pas très utile aux personnes utilisant des lecteurs d'écran ou un système d'écriture autre que l'alphabet latin. - {{HTMLElement('i')}} s'utilise pour transmettre un sens traditionnellement véhiculé avec l'italique : des mots étrangers, une désignation taxonomique, des termes techniques, une pensée… - {{HTMLElement('b')}} s'utilise pour transmettre un sens traditionnellement véhiculé avec les caractères en gras : des mots‑clés, des noms de produits, une phrase liminaire… - {{HTMLElement('u')}} s'utilise pour transmettre un sens traditionnellement véhiculé avec le soulignement : noms propres, mauvaise orthographe... > **Note :** Un petit avertissement à propos du soulignement : **les gens associent fortement soulignement et hyperliens**. Par conséquent, sur le Web, il est préférable de ne souligner que les liens. N'utilisez l'élément `` que s'il est sémantiquement approprié, mais envisagez d'utiliser les CSS pour remplacer le soulignement par défaut par quelque chose de plus approprié sur le Web. L'exemple ci-dessous illustre comment cela peut être fait. ```htmlLe colibri à gorge rouge (Archilochus colubris) est le colibri le plus courant dans l'ouest de l'Amérique du Nord.
Le menu était un océan de mots exotiques comme vatrushka, nasi goreng et porridge.
Un jour, j'apprendrai comment mieux épeler.