du -b
)
Une page web est un simple fichier texte, très léger, que le navigateur interprète pour l'afficher joliment démo sur sandbox?
Les informations contenues sur le web sont accessibles de plusieurs façons différentes : navigateurs visuels, mais aussi textuels ou audio, robots…
le fichier texte ne doit pas décrire à quoi doit ressembler la page, mais quelle est la nature de chacun de ses éléments : on parle de sémantique
Exemple d'une page wikipédia
demander de citer des types d'éléments, puis ajouter * { border: 1px solid black; padding: .1em; }
dans l'éditeur de style
background-color: rgba(200,0,0,0.1) !important; padding: 1rem !important;
pour voir la hiérarchie…la structure d'une page web est arborescente
De nos jours le HTML ne sert pas qu'à représenter des documents textuels
les pages web incluent des images, des vidéos, des sons
une page web n'est plus forcément un document : elle peut être une application
Mais les principes de base sont toujours les mêmes.
<
» et
« >
». Exemple:
<h1>Mon avis sur le langage HTML</h1>
Le HTML, c'est <em>génial</em> !
h1
et em
), mais la balise fermante a un slash au début.h1
(un titre)
et un élément de type em
(du texte mis en valeur).
<p>Il est <strong>interdit</strong> de manger de la choucroute ici.</p>
Ici on a un élément p
(un paragraphe) qui contient du texte et un élément strong
(du texte mis fortement en valeur).<em><strong>ceci est mal balisé</em></strong>
… sinon on ne sait pas quel élément contient l'autre !
a
) :
<a href="http://example.com">un lien vers un site</a>
Ici l'attribut sert à indiquer l'URL vers lequel pointe le lien.
href
), le signe =
,
et une valeur entre guillemets.<img src="toto.jpg" alt="Une photo de Toto" />
>
»,
mais ce n'est pas obligatoire.Une page HTML correcte a une certaine structure de base.
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8" />
<title>Hello HTML</title>
</head>
<body>
<h1>Hello HTML</h1>
<p>Bye now.</p>
</body>
</html>
RésultatLa figure de droite représente l'arbre DOM (Document Object Model) : c'est la façon dont le navigateur « voit » le HTML.
<!DOCTYPE html>
html
, qui représente le document HTML.<head>
) : informations de « service » sur le document, permettant notamment aux navigateurs de le présenter et aux robots de l'indexer<body>
) : contenu proprement dit, qui apparaît sur la page elle-mêmehead
<head>
<title>Titre significatif (pour les moteurs de recherche)</title>
<meta charset="UTF-8" />
<meta name="ROBOTS" content="INDEX, FOLLOW" />
<meta name="keywords" content="cours, HTML, licence" />
<link rel="stylesheet" media="screen" href="diapos.css" />
</head>
Le navigateur ne se contente pas d'interpréter les balises quand il met en forme du HTML
Le contenu d'un fichier HTML ne se retrouve pas tel quel à l'écran
En particulier, toute suite de caractères d'espacement (espace, saut de ligne, tabulation) est considérée comme un seul caractère espace par le navigateur
Si on veut vraiment sauter une ligne au milieu d'une phrase, il faut utiliser la balise <br />
Mais attention : il est très rare d'avoir vraiment besoin de sauter une ligne, en général
l'utilisation de paragraphes (élément p
) suffit et est plus propre
main
: le contenu principal de la page ; doit être uniquenav
: navigation globale (site) ou locale (dans la page)figure
: une figure séparée du texte, typiquement avec une légende (élément figcaption
)header
: un « en-tête ». Peut être une bannière, mais aussi un en-tête d'article, etc.footer
: un « pied ». Peut être un pied de page, mais aussi un pied d'article, etc.aside
: non indispensable pour la compréhensionarticle
: a du sens indépendamment du reste de la pagesection
: découpage logique, unité thématique à laquelle il serait envisageable d'ajouter un titre (même si en pratique il n'y en a pas forcément).
section
dans des article
, mais aussi des article
dans des section
!div
générique !Aide à la décision (PDF)
Les navigateurs sont très « permissifs » : ils font tout ce qu'ils peuvent pour interpréter le HTML qu'on leur donne, même s'il est mal formé
Ça ne veut pas dire qu'on peut se permettre d'écrire du HTML n'importe comment : ce n'est pas parce que ça a l'air de fonctionner dans son navigateur que ça fonctionnera dans les autres !
il vaut mieux écrire des pages propres, en respectant les normes, pour s'assurer qu'elles seront interprétées de la même façon par tous les navigateurs
Le W3C met à disposition un validateur, qui permet de vérifier si une page HTML est valide, c'est-à-dire qu'elle respecte la norme HTML5 : http://validator.w3.org
Quand on est dev web, il est fondamental de savoir se documenter en ligne
Les technologies évoluent assez vite : ce qui était vrai il y a 5 ans ne l'est plus forcément
Il faut apprendre à vérifier la pertinence des informations trouvées
évaluer si telle documentation est toujours d'actualité, notamment en fonction de la date de parution
reconnaître les signes : par exemple, si les balises sont en majuscules dans les exemples, la page a probablement une quinzaine d'années ⇒ il est peu probable qu'elle apporte une réponse pertinente à votre question…
À droite de chaque page de cours, je mets une boîte avec de nombreux liens. Certains visent à approfondir un sujet, d'autres sont des tutoriels que j'ai trouvés bien faits. A priori, commencer par regarder à cet endroit (plutôt que chercher aléatoirement sur le web) peut être une bonne idée.