Fabien ROZAR
Développeur web chevronné
Quelles sont les interfaces hommes/machines que vous connaissez ?
Quelle est la plus vieille interface homme/machine pour le grand public ?
Le HyperText Markup Language, généralement abrégé HTML ou, dans sa dernière version, HTML5, est le langage de balisage conçu pour représenter les pages web.
Ce langage permet d’écrire de l’hypertexte (d’où son nom), de structurer sémantiquement une page web, de mettre en forme du contenu, de créer des formulaires de saisie ou encore d’inclure des ressources multimédias dont des images, des vidéos, et des programmes informatiques. L'HTML offre également la possibilité de créer des documents interopérables avec des équipements très variés et conformément aux exigences de l’accessibilité du web.
Il est souvent utilisé conjointement avec le langage de programmation JavaScript et des feuilles de style en cascade (CSS). HTML est inspiré du Standard Generalized Markup Language (SGML). Il s'agit d'un format ouvert.
Wikipedia
L'HTML est un langage de programmation :
-> C'est du texte
Le navigateur permet d'interpréter l'HTML :
-> C'est l'environnement d'exécution
Les outils nécessaires pour développer en HTML/CSS3
L'HTML est consistitué de balises. Exemple
<h1>Salut toi.</h1>
balise "h1" : titre de page (gros titre)
Les balises marchent par paires : balise ouvrante et fermante
<h1> : balise ouvrante
</h1> : balise femante
Les < et > sont appelés les chevrons de balise. On peut dire :
"les chevrons de la balise h1"
2ième type de balise : auto-fermante
<h1>Salut toi.</h1>
<br />
<h1>Comment ça va ?</h1>
Les balises auto-fermantes s'utilisent de façon isolée, pas par paire.
<br /> : balise auto-fermante
La balise br
permet de sauter une ligne.
Consigne :
<h1>Salut toi.</h1>
<br />
<h1>Comment ça va ?</h1>
Il y a des règles pour l'écriture de fichier HTML.
Spécification du standard HTML
Consigne :
W3C : World Wide Web Consortium, est une organisation internationale qui développe et promeut des normes ouvertes pour le Web. Il a été créé en 1994 par Tim Berners-Lee, l'inventeur du Web, et vise à assurer l'interopérabilité et l'accessibilité du Web pour tous.
Toutes les pages HTML respectent la structure suivante :
<!DOCTYPE html>
<html lang="en">
<head>
...
</head>
<body>
...
</body>
</html>
L'ordre des balises compte. Le document se lit de haut en bas, comme d'habitude.
Les balises s'imbriquent les unes dans les autres !
<!DOCTYPE html>
DOCTYPE est une instruction spéciale qui indique au navigateur Web quelle version de HTML ou de XHTML est utilisée dans une page Web. Cette instruction doit figurer au tout début de la page HTML, avant même la balise <html>.
<html lang="en">
...
</html>
html : englobe l'ensemble du document. On dit que c'est la racine du document.
Dans la balise html, on voit lang="en". On dit que lang est un attribut de la balise html.
L'attribut lang sert aux outils vocaux qui "lisent" les pages web pour ajuster la prononciation.
<head>
...
</head>
head : contient des informations qui ne sont pas directement visibles pour les utilisateurs, mais qui sont importantes pour la structuration et l'affichage de la page.
La balise head peut contenir les balises :
- <title> : le titre de la page, visible dans le nom de l'onglet
- <meta> : des informations sur la page, telles que la description, les mots-clés, le jeu de caractères utilisé, etc.
- <link> : relie la page à des fichiers externes, tels que des feuilles de style CSS ou des fichiers JavaScript.
<!DOCTYPE HTML>
<HTML LANG="EN">
<HEAD>
<META CHARSET="UTF-8">
<BASE HREF="https://www.example.com/">
<TITLE>An application with a long head</TITLE>
<LINK REL="STYLESHEET" HREF="default.css">
<LINK REL="STYLESHEET ALTERNATE" HREF="big.css" TITLE="Big Text">
<SCRIPT src="support.js"></SCRIPT>
<META NAME="APPLICATION-NAME" CONTENT="Long headed application">
</HEAD>
<BODY>
...
Exemple de balise <head> plus complète.
<body>
...
</body>
body : définit le corps principal d'une page Web. Elle contient le contenu visible de la page, tel que le texte, les images, les liens, les formulaires, les tableaux, etc. Tout ce qui est inclus entre les balises <body> et </body> est affiché dans la fenêtre du navigateur Web.
Consigne :
A l'aide de la structure HTML, corriger les erreurs donner par le validateur HTML W3C sur le fichier index.html de l'activité 1.
Les balises populaires :
<p> : paragraphe
<h1> - <h6> : titres
<ul>, <ol> : listes
<img> : image
<a> : lien
<form> : formulaire
<table> : tableau
La balise <a> est l'une des balises les plus importantes du web. C'est elle qui permet de faire des hyperliens.
Consigne :
Consulter la documentation MDN de la balise <a>.
MDN : Mozilla Developer Network est une ressource en ligne gratuite qui fournit des informations, des outils et des ressources pour les développeurs Web. Elle est gérée par Mozilla, l'organisation à but non lucratif qui développe le navigateur Web Firefox, et est maintenue par une communauté de contributeurs.
La MDN propose une documentation complète sur les technologies Web, telles que HTML, CSS, JavaScript, Web APIs, etc. Elle fournit des guides, des tutoriels, des exemples de code et des références techniques pour aider les développeurs à apprendre, à comprendre et à utiliser ces technologies de manière efficace
Consigne :
Pour chaque balise populaire, créer un exemple d'utilisation à l'aide de la documentation MDN.
Si vous connaissez la réponse, levez juste la main.
Quels sont les raccourcis que vous connaissez ?
Quels sont les raccourcis que vous utilisez ?
Ctrl + S : Enregistrer
Ctrl + C : Copier
Ctrl + V : Coller
Ctrl + X : Couper
Ctrl + A : Sélectionner tout
Ctrl + Z : Undo
Ctrl + F : Chercher
"!" au début d'un fichier vierge pour générer le squelette d'une page HTML dans VSCode avec l'extension Emmet.
HTML5 Introduit de nouvelles fonctionnalités :
<video> : intègre un contenu vidéo dans un document
<audio> : intègre un contenu sonore dans un document
<canvas> : pour dessiner des graphiques et des animations
Ces fonctionnalités ont permis à YouTube de proposer des vidéos de haute qualité et des interfaces plus interactives.
Consigne :
Lorsque vous partagez une vidéo youtube, il y a une option pour "embarqué" une vidéo youtube dans une page web arbitraire.
Consigne :
Ce site est réputé pour avoir été le premier site du monde. Il a été créé au CERN.
Consigne :
Reproduire le 1er site web du monde. Pour les liens, utiliser "#" comme valeur pour l'attribut "href".
Le site http://info.cern.ch/hypertext/WWW/TheProject.html a été créé le 13 novembre 1990 par Tim Berners-Lee au CERN, l'Organisation Européenne pour la Recherche Nucléaire en Suisse. Il s'agit du premier site Web jamais créé.
CERN : Organisation européenne pour la recherche nucléaire, aussi appelée laboratoire européen pour la physique des particules [...] est le plus grand centre de physique des particules du monde.
Il se situe à quelques kilomètres de Genève, en Suisse, à cheval sur la frontière franco-suisse, sur les communes de Meyrin, Prévessin-Moëns et Saint-Genis-Pouilly. Les anneaux des accélérateurs s'étendent notamment sous les communes françaises de Saint-Genis-Pouilly et Ferney-Voltaire (département de l'Ain).
L'inspecteur, ou kit de développement, ou débugeur, est intégré aux navigateurs. Il permet de :
L'outil d'inspection est un outil essentiel pour les développeurs web, car il leur permet de travailler efficacement et d'optimiser leur code en temps réel, ce qui permet de gagner du temps et de minimiser les erreurs.
Consigne :
Ouvrir l'outil d'inspection sur le 1er site web du monde.
Question 1 :
Si je peux modifier le 1er site du monde, est-ce que je suis en train de dégrader un patrimoine de l'humanité ?
Question 2 :
Ma banque a un site web que je peux modifier dans l'inspecteur : est-ce que je peux rajouter un zéro ou deux sur mon compte ?
HTML : HyperText Markup Language, décrit le contenu des pages
HTTP : HyperText Transfer Protocol, protocole de communication entre machine. Sert à assurer le transport des données.
URL : Uniform Resource Locator, associe une adresse unique à une ressource. Une ressource pouvant être une page, une image, une feuille CSS, une vidéo, un son, du code JavaScript.
Analogie de l'enveloppe.
Consigne :
Inspecter les communications réseaux sur le 1er site web du monde.
Comme dans la plupart des langages de programmation, on peut mettre des commentaires dans du code HTML. Exemple :
...
<body>
<h1>Salut toi.</h1>
<br />
<!-- <h1>Comment ça va ?</h1> -->
</body>
</html>
Le contenu "Comment ça va ?" ne s'affichera pas.
Les commentaires sont très utiles pour "désactiver" du code.
Raccourci VSCode : CTRL + /
Date | Évènement |
---|---|
1990 | Invention du web par Tim Berners-Lee, première page web en ligne, HTML 1 |
1993 | Navigateur NCSA Mosaic (développé alors que le web ne contenait que 200 sites), balise img |
1994 | Netscape Navigator (navigateur dominant dans les années 1990, supplanté par Internet Explorer), nombre de sites explose, annuaire web/moteur de recherche Yahoo!, création du World Wide Web Consurtium (W3C) |
1995 | balise table, naissance de JavaScript |
1997 | HTML 4.0 |
1998 | le W3C crée le standard XML pour remplacer à terme le HTML, création du CSS, XmlHttpRequest, Google, Netscape ouvre ses sources |
2000/2006 | Évolutions du HTML, explosion de la bulle Internet |
2001 | Lancement de Wikipédia |
2004 | Création du WHATWG, première version de Firefox |
2004/2006 | Web 2.0: AJAX, apparition de géants comme Amazon, Facebook, Youtube et autres réseaux sociaux |
2010 | HTML5, abandon XHTML2, frameworks front-end, CSS Grids, Responsive web design |
2014 | Le milliard de sites dépassé |
Les feuilles de style en cascade, généralement appelées CSS de l'anglais Cascading Style Sheets, forment un langage informatique qui décrit la présentation des documents HTML et XML. Les standards définissant CSS sont publiés par le World Wide Web Consortium (W3C). Introduit au milieu des années 1990, CSS devient couramment utilisé dans la conception de sites web et bien pris en charge par les navigateurs web dans les années 2000.
Wikipedia
L'attribut style est disponible sur toutes les balises HTML :
Dans la balise <style> à l'intérieur du <head> :
<p style="color: red">Comment ça va ?</p>
<html>
<head>
<style>
p {
font-size: 20px;
margin-left: 100px;
}
</style>
</head>
<body>
<p>Comment ça va ?</p>
</body>
</html>
La façon la plus normal de faire, c'est la feuille de style.
L'ajout d'une feuille de style se fait avec la balise <link> à l'intérieur de <head> :
<head>
<link rel="stylesheet" href="index.css">
</head>
index.css :
p {
font-family: monospace;
background: beige;
}
Si une propriété CSS est renseigné à plusieurs endroit, il y a des règle de priorité :
feuille de style < balise style < attribut style
p {
font-family: monospace;
background: beige;
}
Ici p désigne le sélecteur CSS.
-> Cela veut dire que toutes les balise p seront affectées par les propriétés CSS renseignées.
On dit que font-family et background sont des propriétés CSS.
Consigne :
Modifier la taille des textes de titre de type h1 à l'aide d'une feuille CSS.
L'attribut id est attaché à un élément HTML pour pouvoir ajouter du style spécifiquement à ce dernier :
<p id="question">Comment ça va ?</p>
Dans le fichier CSS, on style un identifiant avec #nom_identifiant. Noter l'utilisation du "#" devant le nom de l'identifiant. Dans notre cas :
#question {
font-family: monospace;
background: beige;
}
Consigne :
Utiliser l'attribut id pour styliser une balise <p>.
Si vous connaissez la réponse, levez juste la main.
Consigne :
Lire le texte The Hacker Manifesto (1986)
Consigne :
Pour ouvrir l'inspecteur, soit :
L'attribut class est attaché à un élément HTML pour pouvoir ajouter du style spécifiquement à un ensemble de balise choisi arbitrairement :
<p class="question">Comment ça va ?</p>
Dans le fichier CSS, on style une classe avec .nom_class. Dans notre cas :
.question {
font-family: monospace;
background: beige;
}
Consigne :
Il y a des sélecteur qui s'appuie sur :
Consigne :
Lire la page de référence W3schools sur les sélecteurs.
Consigne :
Les couleurs sont cruciales pour le rendu d'un site.
C'est la propriété color qui contrôle la couleur.
Les valeurs possibles :
N.B.: Il est aussi possible de spécifier l'opacité des couleurs.
Consigne :
Autre ressource :
Si vous connaissez la réponse, levez juste la main.
Pratique de rendre les sites web, les applications et les contenus en ligne accessibles à tous, y compris aux personnes ayant des handicaps ou des limitations physiques, mentales, auditives, visuelles ou cognitives.
Exemples techniques :
structuration correcte du contenu avec des balises HTML,
description appropriée des images avec des attributs alt,
la prise en compte du contraste des couleurs,
etc...
Consigne :
Vérifier et corriger vos couleurs avec le Contrast Checker de coolors.
Le W3C maintient et définit les normes WCAG, APA et ARIA pour permettre aux développeurs d'avoir des critères quatifiable d'accessibilité.
Le W3C fournit aussi une liste d'outil de vérification en ligne.
Cette liste contient le site https://www.accessibilitychecker.org.
La sélection par rapport à des "états" de balises est particulièrement intéressante à combiner avec de la capacité de transition du CSS.
Consigne :
Lire la page CSS Transitions du W3schools.
Consigne :
Utiliser les transitions pour changer la couleur de fond d'un paragraphe avec la propriété :hover.
En HTML, l'utilisation de différentes balises permet d'associer de la sémantique à du contenu, comme on l'a vu avec les balises populaire (<p>, <h1> - <h6>, <ul>, <ol>, <img>, <a>, <form>, <table>).
En fonction de la sémantique, un style par défaut est associé à une balise.
A travers l'inspecter, on peut voir les styles par défaut des balises. En regardant le style par défaut de la balise <a>, on voit les propriétés suivantes qui sont affectées :
Sous google chrome, le style par défaut est inséré par "user agent stylesheet".
Consigne :
Les balises <div> et <span> définissent des zones de contenu, ce qui permet d'appliquer des styles à ces zones. Mais elles ont des utilisations différentes :
La balise <div> est un élément de bloc utilisé pour regrouper du contenu en blocs logiques. Elle est généralement utilisée pour diviser une page Web en sections distinctes ou pour regrouper des éléments de contenu connexes, tels que des paragraphes, des images et des formulaires.
La balise <span> est un élément en ligne utilisé pour regrouper du contenu en ligne. Elle est généralement utilisée pour appliquer des styles à des parties spécifiques de texte, telles que des mots ou des phrases, ou pour ajouter des éléments en ligne tels que des liens ou des icônes.
Utilisation de <div> :
Si vous avait besoin d'avoir des marges régulières sur tout le document, vous souhaitez avoir une balise <div> qui va servir de container. Avec cette balise, vous pourrez ajuster les marges.
Utilisation de <span> :
Si vous avez besoin de mettre des mots en gras, en italique, ou mettre des phrases en fluo, vous avez besoin d'une balise <span>. Cette balise s'utilise dans le corps du texte.
Les différences entre <div> et <span> :
Principalement, les balises <div> délimitent des regroupement en bloc logique dans la page, alors <span> s'utilise sur une ligne dans le corps d'un texte.
De plus, les <div> peuvent s'imbriquer les unes, les autres. Alors qu'il n'est pas recommandé d'imbriquer des balises <span>.
Bien sûr, ces différences sont visibles dans les propriétés CSS par défaut.
Consigne :
La propriété display, c'est LA PROPRIÉTÉ la plus importante du CSS.
Consigne :
La propriété position est la deuxième propriété la plus importante pour maîtriser l'agencement sur une page.
Consigne :
Si vous connaissez la réponse, lever juste la main.
La gestion de l'espace autour des élémentes HTML est gérée par trois paramètres/aspects du CSS :
Consigne :
Comme vu précédemment dans le Box model, chaque élément HTML a une bordure. Le CSS permet de styliser la bordure. Lors du développement, il est pratique de pouvoir visualiser la bordure des éléments pour voir quelle est la place qu'il occupe sur une page.
Consigne :
Lire la page CSS Borders de W3schools.
La largeur et la hauteur des éléments HTML sont des éléments aussi essentiels pour maîtriser la rendu de la page.
Consigne :
Consigne :
Reproduire la disposition de cette page. Vous avez besoin de CSS Layout - float.
Pour préciser les espaces que prennent les margins, padding, border, etc... on a besoin de donner des distances. Les distances peuvent être exprimées en plusieurs unités. Vous connaissez certainement l'unité px pour pixel. Mais ce n'est pas la seule.
Consigne :
Consigne :
Spécifier des margins avec des unités de distance que vous venez de découvrir.
Plus de balises :
<main> : le contenu principal du site,
<header> : l'entête du site,
<footer> : le pied de page du site,
<aside> : menu latéral,
<nav> : menu de navigation,
<section> : "compartiment" du contenu principal,
<article> : forme spécialisée de section.
Consigne :
Lire l'article d'Aurone qui présente les nouveautés de l'HTML5.
Consigne :
Sur un des exemples précédents, utilisez des balises sémantiques décrites précédemment.
La référence dans le domaine : Dribbble
Consigne :
Le CSS3 a été publié en 2011 et inclut plusieurs nouvelles fonctionnalités. On peut citer :
Bonus :
Lire l'article de gafish sur les nouveautés du CSS3.
Permet de créer des pages qui s'adaptent automatiquement à la taille de l'écran de l'utilisateur. S'implémente principalement grâce :
Le Web Responsive est devenu une norme de facto dans la conception de sites web modernes, car il offre une solution pratique et économique pour atteindre un public plus large, quel que soit le dispositif utilisé.
Consigne :
Faire le tutoriel de W3schools sur les Media Query.
Bonus :
Article de CSS Trick sur le sujet.
Consigne :
Il y a d'autre tutoriel comme :
Consigne :
Consigne :
A partir de l'activité ci-dessus, adapter le code HTML/CSS pour que affichage de la page s'adapte en fonction de la largeur de l'écran. Pour y parvenir, vous aurez principalement besoin de :
Tous les éléments doivent s'afficher correctement lors que la fénêtre est ouverte en grand et lorsqu'on demande un affichage en mode tablette ou mobile.
La finalité du développement web, c'est d'avoir quelque chose en ligne.
Les hébergeurs sont des prestataires qui permettent de mettre un site en ligne. Il existe de nombreux prestataires, certains avec une offre gratuite, d'autres uniquement payant.
Il existe de - nombreuses - comparaisons des différents hébergeur en ligne.
Consigne :
Reprenez un des exemples précédents et mettez le en ligne grâce à l'hébergeur 000webhost qui propose une solution gratuite.
Aujourd'hui, une grande partie des logiciels utilisent l'HTML/CSS pour programmer leur insterface. On peut citer :
Les logiciels construits avec electronjs utilise HTML/CSS pour leur interface graphique.
Lorsqu'on fait du développement web, on a souvent besoin d'image pour travailler, faire des propositions, voir à quoi ça peut ressembler.
Des banques d'images gratuites existent :
Par exemple : FontAwesome
Site pour chercher des alternatives :
Méthode de développement logiciel qui permet aux utilisateurs de créer des applications sans avoir à écrire du code. Se concentre sur l'utilisation d'outils visuels tels que :
WordPress est le logiciel le plus connu dans ce domaine. Du la forte attractivité de cette approche, il y a de plus en plus de concurrent comme Webflow, Glide, et bien d'autre.
IA : Intelligence artificielle
Vous pouvez demander plein de chose à ChatGPT.
Certains disent même que c'est le nouveau meilleur ami des développeurs Frontend.
Consigne :
Lire l'article du site awwwards qui présentent la tendance des jeux vidéos en HTML5
Google, vous connaissez ?
Consigne :
1. Examiner la page d'accueil de google à l'aide de l'inspecteur
2. Recréer la page d'accueil de google à partir d'un projet vierge.
MDN : documentation de référence avec exemple
Can I Use : vérification de compatibilité
Khan Academy : apprentissage du projet par projet
Codecademy : apprentissage du projet par projet
W3School : documentation et tutorial avec exemple
freeCodeCamp : apprentissage exhaustif par thèmatique
CSS-tricks : article de discussion sur les pratiques CSS
Dribbble : vitrine des meilleurs web designer
Frontend Mentor : apprentissage par résolution de challenge
HTML Standard : spécification du langage HTML
By Fabien ROZAR
Introduction à la programmation web HTML/CSS3