From 30b7a8888bad930899e34fd8a18fae2b608c5468 Mon Sep 17 00:00:00 2001 From: Denis Monnerat Date: Tue, 18 Nov 2025 10:58:20 +0100 Subject: [PATCH] tp2 --- R1.02/tp/tp2/README.md | 130 +++++++++++++++++++++++++++ R1.02/tp/tp2/img/systeme_solaire.png | Bin 0 -> 30351 bytes R1.02/tp/tp2/img/table.png | Bin 0 -> 1212 bytes R1.02/tp/tp2/src/cartoon_laws.html | 91 +++++++++++++++++++ 4 files changed, 221 insertions(+) create mode 100644 R1.02/tp/tp2/README.md create mode 100644 R1.02/tp/tp2/img/systeme_solaire.png create mode 100644 R1.02/tp/tp2/img/table.png create mode 100644 R1.02/tp/tp2/src/cartoon_laws.html diff --git a/R1.02/tp/tp2/README.md b/R1.02/tp/tp2/README.md new file mode 100644 index 0000000..63d346f --- /dev/null +++ b/R1.02/tp/tp2/README.md @@ -0,0 +1,130 @@ +> Vous trouverez une correction du tp1 [ici](../tp1/correction). + +# TP HTML/CSS + +- partie 1 : [html](#liens) +- partie 2 : [css](#texte) + + + +## Liens + +### Exercice 1 + +Dans le fichier [cartoon_laws.html](./src/cartoon_laws.html), ajoutez un +sommaire composé de liens vers chaque élément h2 sous la forme d'une liste à +puces. Puis ajoutez un lien au niveau de chaque titre de niveau 2 permettant de +revenir en haut de la page. + + +## Formulaire + +> Un formulaire est déclaré à l'aide de la balise `
`. +> +> ```html +> +> +>
+> ``` +> 1. l'attribut `method` précise le "mode d'envoi" des données : get ou post. +> 2. l'attribut `action` précise l'url destinatrice des données. +> 3. l'attribut `enctype` précise la façon d'encoder les données. Par défaut, `application/x-www-form-urlencoded`. Les autres valeurs possibles sont `multipart/form-data` et `text/plain`. +> +> - Les différents zones d'entrées (input) [ici](http://www.w3schools.com/html/html_form_input_types.asp).
+> - Utilisez l'attribut `name` pour donner un nom aux "variables" du formulaire transmises au serveur.
+> - Utilisez les **types html5** dédiés.
+> - Regardez aussi les attributs placeholder, pattern, et les balises `fieldset` et `label`.
+ + +### Exercice 2 + +Écrivez une page contenant un formulaire qui demande diverses informations à l'aide de contrôles variés : + + +| Champ | Type | +| --- | --- | +| Nom | type text | +| Prénom | type text | +| Date de naissance | type date | +| Email | type email | +| Code postal | type number | +| Téléphone portable | type tel | +| Sexe | boutons radio | +| Semestre | liste déroulante S1, S2, S3, S4. | +| Niveau en html | type range, entre 0 et 10 avec un pas de 1 | +| Message | zone de texte | + + +Tous les champs sont requis !
+Le formulaire contiendra un bouton reset, et submit.
+ +La formulaire sera soumis par la méthode `POST` au script générique + +```url +https://dwarves.iut-fbleau.fr/requete.php +``` + +### Exercice 3 + +Rajoutez (sans utiliser Javascript), les contrôles suivants au formulaire précédent : +- Tous les champs sont obligatoires. +- Le nom et le prénom ne contiennent que des lettres, majuscules ou minuscules. +- L'adresse de courriel doit être valide. +- Le semestre S2 est sélectionné par défaut. +- Le code postal a 5 chiffres au maximum. +- Le niveau en html par défaut est 5. +- Le numéro de portable est un numéro français valide (10 chiffres commençant par 06 ou 07). + +> L'attribut [pattern](https://www.w3schools.com/tags/att_input_pattern.asp) +> de l'élément `input` permet de donner une [expression rationnelle](https://fr.wikipedia.org/wiki/Expression_r%C3%A9guli%C3%A8re) que +> doit vérifier la valeur du champ texte. Le site [http://www.html5pattern.com](https://www.html5pattern.com/) regorge d'exemples utiles. + +## Texte +### Exercice 4 + +On reprend l'exercice 2 du [tp1](../tp1) dont voici une [correction](../tp1/correction/exercice2.html). Appliquez au fichier la feuille de style suivante : + +``` +body { + font-family:sans-serif; +} + +h1 { + font-variant:small-caps; + text-decoration : underline; +} + +h2 { + background-color:#aaaaaa; + padding : 10px; + font-style:italic; +} + +span { + font-family: monospace; + font-weight:bold; + color : #aa4512; +} +``` + +Expliquez les changements. + +## Tableaux + + +### Exercice 5 +> Vous aurez sans doute besoin d'utiliser les propriétés `border`, `border-collapse`, `width`, `height`. + +On reprend l'exercice 4 du [tp1](../tp1), dont voici une [correction](../tp1/correction/exercice4.html). Ajoutez une feuille de style pour obtenir +le rendu conforme à cela : + +![systeme_solaire](./img/systeme_solaire.png ':-:') + +### Exercice 6 +> Vous aurez sans doute besoin d'utiliser les attributs `colspan` et `rowspan`. + + +À l'aide d'un tableau, reproduire la figure suivante : + + +![tableau](./img/table.png ':-:') diff --git a/R1.02/tp/tp2/img/systeme_solaire.png b/R1.02/tp/tp2/img/systeme_solaire.png new file mode 100644 index 0000000000000000000000000000000000000000..7fe76ae7cd1e7516d8f300c3d9f6108dff5b9a9f GIT binary patch literal 30351 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 XOtqMVFvArL3=9mOu6{1-oD!M + + + + Laws of Cartoon Physics + + + +

+ Laws of Cartoon Physics + by Mark O'Donnell +

+ +

Cartoon Law I

+

+ Any body suspended in space will remain suspended in space until made aware of + its situation. A character steps off a cliff but remains in midair until looking + down, then the familiar principle of 16 feet per second squared takes over. +

+ +

Cartoon Law II

+

+ A body passing through solid matter will leave a perforation conforming to its + perimeter called the silhouette of passage. +

+ +

Cartoon Law III

+

+ The time required for an object to fall 20 stories is greater than or equal to + the time it takes for whoever knocked it off the ledge to spiral down 20 flights + to attempt to capture it unbroken. Such an object is inevitably priceless; the + attempt to capture it, inevitably unsuccessful. +

+ +

Cartoon Law IV

+

+ All principles of gravity are negated by fear. +

+ +

Cartoon Law V

+

+ Psychic forces are sufficient in most bodies for a shock to propel them directly + away from the ground. A spooky noise or an adversary's signature sound will + introduce motion upward, usually to the cradle of a chandelier, a treetop or the + crest of a flagpole. +

+ +

Cartoon Law VI

+

+ The feet of a running character or the wheels of a speeding auto need never + touch the ground, ergo fleeing turns to flight. +

+ +

Cartoon Law VII

+

+ As speed increases, objects can be in several places at once. +

+ +

Cartoon Law VIII

+

+ A painted tunnel entrance may or may not be traversable +

+ +

Cartoon Law IX

+

+ Certain bodies can pass through a solid wall painted to resemble tunnel + entrances; others cannot. ... Whoever paints an entrance on a wall's surface to + trick an opponent will be unable to pursue him into this theoretical space. The + painter is flattened against the wall when he attempts to follow into the + painting. This is ultimately a problem of art, not science. +

+ +

Cartoon Law X

+

+ Any violent rearrangement of feline matter is impermanent. Cartoon cats can be + sliced, splayed, accordion-pleated, spindled or disassembled, but they cannot be + destroyed. After a few moments of blinking self-pity, they reinflate, elongate, + snap back or solidify. +

+ +

Cartoon Law XI

+

+ Everything falls faster than an anvil. +

+ +