Les TP d'informatique / web S1 se déroulent sur ce logiciel appelé « Moodle ».
Vous y trouverez des explications à lire, des questions à répondre et des exercices plus libres.
Prenez le temps de réfléchir par vous même avant de répondre à chaque question. Le but n'est pas de trouver la bonne réponse, mais de comprendre et apprendre. Ne vous contentez de recopier les réponses de vos voisins.
Ces TP ne sont PAS notés. Les notes affichées par le logiciel ne comptent pas dans votre évaluation.
N'hésitez pas à appeler votre enseignant. Il est là pour vous aider.
Moodle permet à chacun d'évoluer à son propre rythme. Chaque TP est prévu pour durer à peu près 4 heures, mais certains avanceront plus ou moins rapidement. Finissez chaque TP avant de passer au suivant, même si ça vous prend plus d'une séance. Si vous sautez des questions, vous risquez de ne plus comprendre.
Ces TP sont prévus pour Firefox sous Linux, pas pour Chrome, ni Windows.
Travaillez connectés si possible (lien « Connexion » en haut à droite de la page). Vous retrouverez plus facilement l'endroit ou vous en étiez à la séance suivante.
Commençons par un exemple simple.
Dans votre répertoire "public_html" créez un repertoire appelé "tp1".
Dans "tp1" créez un fichier "essai.html" avec le contenu suivant:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>Premiers pas</title>
</head>
<body>
<h1>Bonjour!</h1>
<p>
Ma première page en html.<br/>
<img src="http://moodle.iutv.univ-paris13.fr/img/web/computer-head-bang.gif" alt="informatique"/>
</p>
</body>
</html>
Maintenant, tapez l'adresse suivante dans votre navigateur, en remplaçant "12345" par votre numéro d'utilisateur:
http://aquanux/~12345/tp1/essai.html
Si vous avez un message « Permission non accordée », tapez les commandes suivantes dans votre terminal:
chmod o+x ~
chmod o+rx ~/public_html
N'hésitez pas à demander de l'aide à votre enseignant.
Changez la phrase « Ma première page en html. » dans le fichier essai.html
Pour voir ces changements dans votre navigateur il faut rafraîchir (actualiser) la page.
Pour rafraîchir la page vous pouvez utiliser une de ces méthodes:
Dans certains cas, ce rafraîchissement ne suffit pas (images en cache), essayez alors:
A partir de l’exemple qu'on vient de voir, à quoi servent les balises suivantes:
Écrivez ci-dessous (en une seule ligne) le HTML nécessaire pour un paragraphe affichant le texte suivant « Ceci est du HTML. »
(on demande juste le paragraphe, pas le fichier HTML en entier)
Chaque balise peut contenir des attributs associés à des valeurs. Ils fournissent des informations au navigateur sur la balise.
En s'inspirant de cet exemple, et de la question précédente, écrivez ci-dessous (en une seule ligne) le HTML nécessaire pour créer un paragraphe affichant le texte suivant « Ceci est du HTML. ». Cette fois, la balise « p » aura un attribut appelé « id » dont la valeur sera « introduction ».
(on demande juste le paragraphe, pas le fichier HTML en entier)
Dans l'exemple précédent on a vu comment créer un lien entre deux pages en HTML:
L'URL peut prendre plusieurs formes. Dans les exemples suivants on suppose que le lien se trouve dans un fichier exemple.html
Les formes d'URL les plus courantes sont:
1. chemin relatif vers un fichier, par exemple:
2. une URL complète
Écrivez ci-dessous le HTML nécessaire pour obtenir l'affichage suivant:
« Ceci est un lien vers Google. »
Remarquez que les mots « lien vers » sont un lien vers https://www.google.fr
(ne mettez pas de paragraphe dans votre réponse)
Les balises br, hr et img sont auto-fermantes: elles n'ont pas de contenu.
La balise a (lien) a besoin d'un attribut:
La balise img a besoin de deux attributs:
Essayez de retenir ces balises. A la question suivants, on va voir si vous vous en souvenez!
Est-ce que vous vous souvenez des balises?
Quand on écrit du HTML, on peut se tromper. Le navigateur réussit souvent à afficher quelque chose d'acceptable, même s'il y a une erreur dans le HTML. C'est pratique, mais alors on ne se rend souvent pas compte des erreurs. D'autres personnes, utilisant d'autres navigateurs auront peut-être des problèmes en affichant votre HTML.
Pour éviter ce genre de problème il est très important de valider le HTML qu'on écrit.
Ouvrez le lien suivant dans un autre onglet ou fenêtre:
http://validator.w3.org/#validate_by_input
Maintenant, copiez le HTML suivant et validez-le.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>Premiers pas</title>
</head>
<body>
<h1>Bonjour!</h1>
<p>
Et voila! Une page en HTML.
<img/>
</p>
</body>
</html>
Ce HTML comporte deux erreurs.
Validez cette page puis descendez tout en bas de la page de résultat de validation. Le validateur vous dit ou se trouve le problème.
Essayez de comprendre le problème.
À quel numéro de ligne se trouve le problème?
La méthode de validation des questions précédentes est fastidieuse (copier coller...).
Plusieurs autres méthodes sont possibles:
La première est de loin la plus simple. Allez sur une de vos pages HTML et essayez-la en appuyant tout simplement sur Ctrl+Maj+A
La deuxième est plus longue.
Essayez.
Maintenant, on va mettre tout ça en pratique.
Créez trois pages HTML dans le répertoire ~/public_html/tp1/ :
Utilisez la structure suivante pour chacune des pages:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>...</title>
</head>
<body>
....
</body>
</html>
et ajoutez votre contenu à l'intérieur de <body>...</body>
Les balises a, img, br ne peuvent pas être mises directement dans body. Vous devez les mettre dans un p,h1, h2,...
Pour les URL des images (img) et des liens (a) essayez d'utiliser les noms de fichier (exemple.html) et les URL complètes (http://aquanux/..../exemple.html).
Avertissement: Ce n'est pas parce qu'une image est accessible sur le web qu'il est autorisé de la recopier et de la réutiliser. Il faut forcément l'accord du créateur de l'image (une licence d'utilisation).
Que se passe-t-il quand on visite une page web?
Explication:
Le « langage » (protocole) utilisé par le navigateur pour parler au serveur s'appelle « http ».
Ce schéma est très important. Au cours de ces séances, on y ajoutera de nouveaux concepts et interactions.
Un site web doit s'afficher correctement sur les principaux navigateurs (Firefox, Chrome,...) et formats (bureau, smartphone, tablette,...).
C'est un gros travail de vérification.
Le serveur web est un logiciel qui s’exécute sur un ordinateur (aussi appelé serveur).
Ces ordinateurs sont « hébergés » dans des armoires (baies) qui se trouvent dans des bâtiments spécialisés, très sécurisés, appelés « datacenters ».
Les entreprises ou particuliers qui veulent créer un site web peuvent louer un serveur (OVH, online.net,...).
Les très grosses entreprises ont leurs propres datacenters (voir photos).
Est-ce que vous avez bien retenu?
(interaction très simplifiée pour un fichier HTML simple)
A,B et C sont les « acteurs » de cette « discussion ».
1,2,3,4,5 sont les étapes de la « discussion ».
Le nom de domaine (site.org) est converti en adresse IP (140.186.70.131) par un système appelé le DNS.
Les adresses IP sont une série de numéros identifiant chaque machine connecté au réseau internet.
Question:
Quel est le nom de domaine que vous utilisez quand vous écrivez des pages HTML dans ces TP à l'IUT ?
Quel est le chemin de cette URL ?
https://fr.wikipedia.org/wiki/Tux
Quel est le protocole (schéme) de cette URL ?
https://fr.wikipedia.org/wiki/Tux
Votre navigateur convertit automatiquement un nom de domaine en adresse IP.
Pour obtenir une adresse IP à partir d'un nom de domaine, vous pouvez utiliser la commande « ping »
Quelle est l'adresse IP correspondant au nom de domaine « aquanux » ?
(Ctrl-C pour arrêter l'exécution de la commande ping)
Quelle est l'adresse IP correspondant au nom de domaine « www.univ-paris13.fr » ?
Vous trouverez énormément d'information et de conseils sur le web. Mais attention! De nombreuses informations sont périmées ou bien ne sont pas fiables. Ceci est particulièrement vrai pour le HTML et la programmation web. Donc, comme toujours ... gardez un esprit critique.
Quelques sites utiles:
(Rappel : liens de documentation: http://moodle.iutv.univ-paris13.fr/mod/page/view.php?id=19 )
Cherchez dans la documentation sur le web (ou sur Google) le nom des éléments permettant d'afficher la liste à puce suivante:
HTML:
<XXX>
<YYY>pomme</YYY>
<YYY>poire</YYY>
<YYY>fraise</YYY>
</XXX>
Question:
Que faut-il écrire à la place de XXX ?
HTML:
<XXX>
<YYY>pomme</YYY>
<YYY>poire</YYY>
<YYY>fraise</YYY>
</XXX>
Question:
Ensuite, que faut-il écrire à la place de YYY ?
Liens: http://moodle.iutv.univ-paris13.fr/mod/page/view.php?id=19
Cherchez dans la documentation sur le web comment afficher un tableau en HTML.
Vous aurez besoin des balises suivantes: table, tr, td et th
Écrivez un fichier HTML permettant d'afficher ce qui suit:
<table>
<tr><th>Joueur</th><th>Score</th><th>Temps</th></tr>
<tr><td>Tom </td><td>140 </td><td>15 </td></tr>
<tr><td>Ahmed </td><td>210 </td><td>14 </td></tr>
<tr><td>Joe </td><td>45 </td><td>16 </td></tr>
<tr><td>Li </td><td>190 </td><td>12 </td></tr>
</table>
Pour résumer, à quoi correspondent les balises suivantes?
Par la suite, on va souvent voir les éléments HTML comme un arbre:
Certains éléments sont contenus dans d'autres éléments.
Vous devez prendre le réflexe de visualiser l'arbre quand vous voyez le HTML.
<body>
<p>
Ma première page en html.<br/>
<img src="photo.jpg" alt="photo"/>
</p>
<ul>
<li>pomme</li>
<li>fraise</li>
</ul>
</body>
Remarque: dans ces schémas, on ne tient pas compte du texte.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>Exemple</title>
</head>
<body>
<h1>Bonjour!</h1>
</body>
</html>
Tous les documents HTML ont la même structure 1,2,3,4,5.
Vous devez connaître cette structure.
<head> est l'endroit où on fournit des informations à propos du document qui ne sont pas affichées directement dans le navigateur.
Pour l'instant, on a vu deux exemples:
Il y en a beaucoup d'autres (CSS, javascript, RSS, ...)
Récapitulons quelques balises que vous avez apprises.
On a fini cette partie.
Maintenant, vous savez écrire des documents HTML simples. Vous connaissez les balises essentielles.
Mais vous ne savez pas encore comment les mettre en forme.
Dans la partie suivante, on va apprendre à ajouter des couleurs, changer la présentation, les bordures, la taille des textes ... bref, rendre les documents HTML plus jolis!
Pour mettre en forme (couleurs, décortation...) une page web, on utilise des feuilles de style (CSS : Cascading Style Sheets : feuilles de style en cascade).
Commençons par un exemple:
Regardons cet exemple plus en détail:
Essayez de retenir les noms de ces propriétés.
Quel est le nom (juste le nom) de la propriété permettant de changer la couleur d’arrière plan?
Quel est le nom de la propriété permettant de tracer une ligne autour d'un élément ?
Quel est le nom de la propriété permettant de changer la taille du texte ?
On veut obtenir l'affichage suivant:
en utilisant le HTML suivant.
<!DOCTYPE html>
<html>
<head>
<title>Premiers pas CSS</title>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="essai2.css">
</head>
<body>
<h1>Un essai en CSS</h1>
<p>
Ma première page avec du <strong>CSS</strong>.
</p>
</body>
</html>
Copiez cet HTML dans un fichier, sans le modifier et écrivez le fichier essai2.css pour obtenir EXACTEMENT l'affichage souhaité.
(Remarque: on va faire ce type d'exercice souvent. Il correspond bien à la démarche utilisée en pratique)
Indication: vous pouvez aussi changer le CSS de l'élément <body>
body
{
background-color: black;
color: white;
}
h1
{
font-size: 14px;
}
p
{
margin-left: 4em;
}
strong
{
border: 3px solid #afa;
color: black;
background-color: white;
}
Les couleurs dans une feuille de style sont souvent donnés à l'aide de 6 chiffres hexadécimaux (exemple: AAF3B0). Soit deux pour chacune des 3 composantes, Rouge, Vert et Bleu (RVB) ou Red, Green, Blue (RGB) en anglais.
Le mélange de ces couleurs (de lumière) se fait par "synthèse additive" ce qui est très différent de ce que vous faites si vous mélangez de la peinture:
On va utiliser un logiciel de dessin (gimp) pour expérimenter avec ces mélanges de couleurs.
Lancez le logiciel gimp (par le menu ou sur la ligne de commande : gimp).
Le modèle de boîtes est très important pour la mise en page CSS. Essayez de bien mémoriser ce schéma.
Les espacements (margin, padding) et les bordures peuvent être définis dans différentes directions. Par exemple:
margin-left: 20px;
padding-top: 10px;
border-bottom: 2px solid black;
On peut aussi imposer la taille de certaines boites:
width: 300px;
height: 200px;
Dans ces exemples on utilise le HTML suivant:
<p>bla bla bla bla bla bla </p>
<h3>bla bla bla bla bla bla</h3>
<p>bla bla bla bla bla bla </p>
et le CSS suivant:
p
{
margin: 0;
}
h3
{
background-color: #eff;
margin: 0;
border: 2px solid red;
}
(remarquez le "margin: 0;" qui enlève la marge que les éléments p et h3 ont par défaut)
Ensuite, on va voir plusieurs cas où on ajoute à h3 uniquement une propriété parmi les suivantes: margin, padding, border, width ou height.
A vous de trouver laquelle a été ajoutée... (répondez- ci-dessous)
On veut obtenir l'affichage suivant:
en utilisant le HTML suivant.
<!DOCTYPE html>
<html>
<head>
<title>Premiers pas CSS</title>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="essai3.css">
</head>
<body>
<h1>Un essai avec des styles</h1>
<h2>Titre de la 1ere section</h2>
<p>bla bla bla bla bla</p>
<h2>Titre de la 2eme section</h2>
<p>bli bli bli bli bli</p>
<h2>Titre de la 3eme section</h2>
<p>Qu'est qu'on s'amuse!</p>
<h2>Titre de la 4eme section</h2>
<p>abc def ghi jkl mno</p>
</body>
</html>
Copiez cet HTML dans un fichier, sans le modifier et écrivez le fichier essai3.css pour obtenir EXACTEMENT l'affichage souhaité.
Faites particulièrement attention aux espacements (padding, margin).
Les éléments "block" (h1,h2,p,...) couvrent, par défaut, une ligne horizontale entière. Par défaut, ça ne se voit pas, mais ça devient visible quant vous ajoutez une bordure. Pour les titres h2, imposez une largeur (width) de 20em (20 fois la taille d'une lettre "M").
h1
{
color : white;
background-color: gray;
padding: .5em;
}
h2
{
color : red;
border: 3px solid red;
margin-left: 2em;
width: 20em;
}
p
{
margin-left: 4em;
}
Les mesures de longueur / distance sont très utilisées en CSS.
Les unités les plus utilisées sont : "px" "em" et "%"
Par exemple:
« width: 30px; » veut dire « largeur = 30 pixels. »
« width: 3em; » veut dire « largeur = 3 fois la largeur d'une lettre M majuscule. »
« width: 50%; » veut dire « largeur = la moitié de la largeur du parent. »
« margin-left: 1em; » veut dire « ajouter une marge à gauche de la même largeur qu'une lettre M majuscule »
C'est important de bien "sentir" les longueurs.
Quand vous voulez ajuster une mise en page vous devez avoir une idée de combien de "px" ou de "em" vous voulez déplacer élément.
Dans les pages suivantes, on va faire quelques exercices pour s'habituer.
<!DOCTYPE html>
<html>
<head>
<title>Longueurs</title>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="essai-longueurs.css">
</head>
<body>
<p>
Bonjour !
</p>
</body>
</html>
essai-longueurs.css :
body
{
font-size: 14px;
}
p
{
width: 50px;
border: 1px solid red;
white-space: nowrap; /* evite le passage à la ligne */
}
Visualisez la page dans le navigateur et ouvrez le fichier essai-longueurs.css dans votre éditeur de texte.
Dans ce fichier, ajustez la largeur (width) du paragraphe pour qu'il soit exactement de la taille du texte "Bonjour !"
Combien de pixels mesure "Bonjour !" ?
En reprenant l'essai précédent, quelle est la largeur de "Bonjour !" en unités "em" ?
En reprenant l'essai précédent, quelle est la largeur de "M" en unités "px" ?
En reprenant l'essai précédent, quelle est la largeur de "M" en unités "em" ?
Quelle est approximativement la largeur en px de votre écran à l'IUT ?
Essayez d'estimer la taille verticale, en "px", de la boite ci-dessous où vous tapez votre réponse.
Félicitations, vous avez fini le premier TP!
Maintenant, vous connaissez les bases du HTML et du CSS.
Au TP suivant, on va approfondir ces connaissances.