Exercice 1. La structure minimale d'une page HTML

Documents pareils
Formation HTML / CSS. ar dionoea

.. CSS. Damien Nouvel. Damien Nouvel (Inalco) CSS 1 / 15

JOOMLA 1.5 avancé SUPPORT DE COURS + annexe

Tutoriel : Feuille de style externe

HTML, CSS, JS et CGI. Elanore Elessar Dimar

LES GRANDES ETAPES DE CREATION D UN WEB DESIGN

Introduction à Expression Web 2

Initiation à html et à la création d'un site web

Guide pour la réalisation d'un document avec Open Office Writer 2.2

KompoZer. Composition du site : _ une page d'accueil : index.html. _ une page pour la théorie : theorie.html. _ une page pour les photos : photos.

MAILING KOMPOZER... 2 CREEZ UNE PAGE... 2 FORMAT DE LA PAGE... 2 AJOUTER DU TEXTE SUR UNE PAGE... 4

Freeway 7. Nouvelles fonctionnalités

Utilisation de l éditeur.

Traitement de texte : Quelques rappels de quelques notions de base

SOMMAIRE 1 INTRODUCTION 4 2 GUIDE D UTILISATION ET TUTORIAUX VIDEOS EN LIGNE 4 3 CONTACTER VOTRE SUPPORT 4 4 RACCOURCIS CLAVIER 5

Formation > Développement > Internet > Réseaux > Matériel > Maintenance

3. RÉALISATION ET QUALIFICATION D UN PROTOTYPE 3.1 Réalisation d un prototype CRÉATION D UNE PAGE WEB STATIQUE AU FORMAT HTML

GUIDE D UTILISATION DU BACKOFFICE

Comment mettre en page votre livre

Qlik Sense Cloud. Qlik Sense Copyright QlikTech International AB. Tous droits réservés.

CREER UN PETIT SITE WEB EN COMPOSANT DES PAGES HTML

Climat Scolaire - Manuel utilisateur - Chapitre 2 : «Créer, Editer et suivi d un texte»

Manuel de mise en page de l intérieur de votre ouvrage

Apprendre à manipuler le clavier Médiathèque de Bussy Saint-Georges APPRENDRE A MANIPULER LE CLAVIER

Cours Excel : les bases (bases, texte)

Les outils de création de sites web

Bernard Lecomte. Débuter avec HTML

Votre site Internet avec FrontPage Express en 1 heure chrono

Pluridisciplinarité. Classe de BTS DATR

RESPONSIVE WEB DESIGN

AGASC / BUREAU INFORMATION JEUNESSE Saint Laurent du Var Tel : bij@agasc.fr Word: Les tableaux.

Guide de réalisation d une campagne marketing

Manuel utilisateur logiciel Salles. Version 1.1

FrontPage Support d apprentissage septembre 2000

TP JAVASCRIPT OMI4 TP5 SRC

Publier dans la Base Documentaire

RACCOURCIS CLAVIERS. DEFINITION : Une «combinaison de touches» est un appui simultané sur plusieurs touches.

Comment Utiliser les Versions, les Modification, les Comparaisons, Dans les Documents

Saisissez le login et le mot de passe (attention aux minuscules et majuscules) qui vous ont

PLAN. Qui peut faire quoi? Présentation. L'internaute Consulte le site public

GUIDE D UTILISATION CRÉER SON SITE WEB - PROJET RESCOL

Automatisation d'une Facture 4. Liste Déroulante Remises Case à cocher Calculs

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Débuter avec Excel. Excel

Editeur html Guide de l'utilisateur

Uniformiser la mise en forme du document. Accélère les mises à jour. Permets de générer des tables de matières automatiquement.

SOS Info: Traitement de textes. 1. Structurer un document. 2. Enregistrer un document

HTML5 et CSS3 pour des sites Responsive Web Design

Chapitre 2 Créer son site et ses pages avec Google Site

Comment utiliser sa messagerie laposte.net

Soyez accessible. Manuel d utilisation du CMS

Éditeur WordPress. Illustration 1. Kerniolen Pluneret Tel : Mob : info@formation-auray.fr

Guide d'utilisation. OpenOffice Calc. AUTEUR INITIAL : VINCENT MEUNIER Publié sous licence Creative Commons

Comment formater votre ebook avec Open Office

Parcours guidé : créer des pages simples au format html avec Nvu 28/1/10

CMS Made Simple Version 1.4 Jamaica. Tutoriel utilisateur Récapitulatif Administration

Publipostage avec Open Office Writer et Open Office Calc

Responsive Design. Technologies du web. Stéphane Bouvry, 2014

Tutoriel TYPO3 pour les rédacteurs

7.0 Guide de la solution Portable sans fil

Le logiciel de création de site internet IZISPOT est un outil très puissant et qui est assez simple après quelques temps d utilisation.

TP 5 Les CMS, la forme et le fond Internet et Outils (IO2)

Rapidolect Les Productions de la Columelle ( ) Page 1

Google Drive, le cloud de Google

Tutoriel BLOGGER. Pour vous donner une idée, voici un exemple de blog :

Intégrateur Web HTML5 CSS3

OneDrive, le cloud de Microsoft

Découvrir OpenOffice Comment optimiser et formater votre ebook avec OpenOffice

Utilisation de l'outil «Open Office TEXTE»

ING & NEWSLETTER NEWSLETTER RESPONSIVE

Utilisation de XnView

STID 2ème année : TP Web/PHP

Publier un Carnet Blanc

Troisième projet Scribus

Groupe Eyrolles, 2003, ISBN : X

TABLEAU CROISE DYNAMIQUE

Un mini-site internet en une après-midi

Atelier Formation Pages sur ipad Pages sur ipad

Media queries : gérer différentes zones de visualisation

Le service de création de site Internet : Mode d emploi. La Création de Site Internet

Normes techniques 2011

1 CRÉER UN TABLEAU. IADE Outils et Méthodes de gestion de l information

Mon aide mémoire traitement de texte (Microsoft Word)

Créer une base de données

Pack Fifty+ Normes Techniques 2013

GUIDE Excel (version débutante) Version 2013

Le générateur d'activités

Cours pratique Excel. Dans chacune des feuilles, les donnés sont déjà entrées afin de gagner du temps.

Licence de Biologie, 1ère année. Aide. [Aide 1] Comment utiliser l'explorateur Windows? Comment créer des dossiers?

l'ordinateur les bases

Parcours FOAD Formation EXCEL 2010

MEDIAplus elearning. version 6.6

Navigation dans Windows

Comment utiliser la feuille de style «CMLF2010.dot»

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

PowerPoint offre trois modes d affichage principaux : le mode Normal, le mode Trieuse de diapositives et le mode Diaporama

TRAVAILLER SUR LES ORDINATEURS DU LYCEE

INFORM :: DEMARRAGE RAPIDE A service by KIS

Transcription:

Exercice 1. La structure minimale d'une page HTML 1. Créez un répertoire tp-html puis un fichier base.html dans le répertoire /EnvSystemeReseau/ avec le contenu suivant (sans les numéros de lignes) : Ce fichier, qui contient la structure minimale d'une page HTML, vous servira de base de départ à chaque fois que vous créerez une nouvelle page HTML. 2. Analyse : Un document HTML commence et se termine avec les balises <html> et </html>. Ces balises indiquent au navigateur que le document est entièrement composé en HTML. Tout document HTML contient deux parties principales : un en-tête, défini dans la balise <head> et qui contient les informations concernant le document et un corps, défini dans la balise <body> et qui contient le contenu à afficher dans le navigateur L'élément d'en-tête le plus important, et le seul obligatoire, est le titre, spécifié à l'aide de la balise <title>. Les navigateurs ne mettent pas en forme le texte du titre et ignorent tout élément autre que du texte. Le contenu du titre s'affiche en haut de la fenêtre du navigateur. 3. Pour afficher ce fichier dans un navigateur Web, vous pouvez : soit cliquer sur le fichier avec le bouton droit de la souris et choisir Ouvrir avec/navigateur Web, soit ouvrir un navigateur Web et ouvrir le fichier à partir du menu Fichier/Ouvrir un fichier. 4. Remarque : Les accents ne sont pas correctement affichés par le navigateur. Afin de remédier à ce problème : On indique au navigateur la table de caractères (charset) qu'il doit utiliser pour afficher le contenu de la page (les tables de caractères sont associées à la notion de claviers nationaux). On utilise pour cela la balise <meta charset=>. Pour l'affichage de caractères issus de la majorité des langues (français, anglais, espagnol, italien, etc.), on utilise la table ISO-8859-1 (http://fr.wikipedia.org/wiki/iso_8859_1). Si la page contient des caractères issus de familles de langues différentes (par exemple, du français et du russe), on utilise la table UTF-8 (http://fr.wikipedia.org/utf_8). La liste officielle de toutes les tables de caractères existantes se trouve à l'adresse suivante : http://www.iana.org/assignments/character-sets. Pour s'assurer que les caractères accentués s'affichent correctement dans tous les navigateurs du monde, on les remplace par leur nom d'entité ou par leur code d'entité. Un code d'entité est composé du caractère & (esperluette), du code HTML du caractère concerné et du caractère ; (point-virgule) : &code_html; Un nom d'entité est composé de la séquence &# (esperluette cad ampersand en anglais et croisillon, du code ASCII du caractère concerné et du caractère ; (point-virgule) : &#code_ascii; Exemple : représentation du caractère 'é' (e avec accent aigu) par son entité - son code HTML est eacute, son code d'entité est é - son code ASCII est 233, son nom d'entité est é Vous trouverez à l'adresse http://www.w3schools.com/tags/ref_entities.asp la liste complète des noms d'entités (colonne 'Entity name') et des codes d'entités (colonne 'Entity numbers'). Complétez le fichier base.html (voir le code suivant) et sauvegardez-le. Puis, dans le navigateur, rechargez la page, en cliquant sur la touche <F5> de votre clavier ou sur l'icône de votre navigateur. Observez le résultat. 1

Exercice 2. Ma première page HTML 1. Ouvrez un nouveau fichier et enregistrez-le sous le nom page1.html dans le répertoire /EnvSystemeReseau/tp-html. Puis, copiez et collez le contenu de base.html dans ce nouveau fichier. 2. Créez un répertoire images dans le répertoire /EnvSystemeReseau/tp-html. Recherchez le logo de l'université Paris-Est sur le Web et enregistrez l'image dans votre répertoire images sous le nom logoupe.jpg. Placez ensuite votre photo préférée de vous-même dans le répertoire images sous le nom moi.jpg. 3. Complétez le fichier page1.html de manière à obtenir le document suivant : 4. Analyse : Tout d'abord, les lignes 7, 11, 18 et 25 sont des commentaires. Il est possible d'ajouter, dans une page HTML, des éléments d'information à destination des programmeurs. Il peut s'agir, par exemple, de mentions internes sur l'auteur et la date de création du fichier, ou de remarques concernant le code qui permettront à toute personne ou au programmeur lui-même de lire ou relire aisément le code HTML. Les commentaires sont placés entre les séquences <!-- (marqueur de début) et --> (marqueur de fin). Tout ce qui se trouve entre ces deux marqueurs est ignoré par le navigateur lors de l'affichage. La balise <h1> (ligne 8) permet d'introduire un titre de premier niveau. Le langage HTML possède six niveaux de titres : les balises <h1>, <h2>,... jusqu'à <h6>, affichées par les navigateurs dans une taille décroissante de caractères. La balise <h3> (ligne 14) introduit donc un titre de niveau 3. Dans la plupart des navigateurs, les titres <h1>, <h2> et <h3> sont affichés avec une police plus grosse que le 2

texte normal, <h4> est affiché avec une police de même taille que le texte normal, et <h5> et <h6> sont plus petits. La balise <hr> (lignes 9 et 16) permet d'introduire une ligne horizontale dans la page. Elle peut être utilisée pour séparer les différentes sections d'un document, en l'occurrence, le titre, le sous-titre, le contenu et la signature. La balise <img> (lignes 12 et 15) permet d'introduire une image à partir d'un fichier dont le chemin est spécifié par l'attribut src. L'attribut alt permet de spécifier un texte alternatif au cas où l'image ne s'afficherait pas. L'attribut title spécifie le contenu de l'infobulle qui s'affiche lors du survol de l'image avec la souris. D'autres attributs de la balise <img> (que nous verrons plus en détail au cours d'un prochain TP) permettent de formater l'image et de la positionner dans la page. La balise <p> (lignes 19 et 26) marque le début d'un paragraphe. Lorsque le navigateur rencontre cette balise, il insère un saut de ligne et un espace vertical avant l'élément suivant. On peut également insérer un saut de ligne simple à l'intérieur d'un paragraphe avec la balise <br> (ligne 24). Les balises <b> (texte en gras) et <i> (texte en italiques) sont des balises de style physique. Ces balises sont utilisées lorsqu'on veut que le texte s'affiche d'une certaine manière (en gras, en italiques, etc.). La balise <a> (ligne 23) est un lien hypertexte qui renvoie à la première balise <a> (ligne 8), qu'on appelle une ancre. En cliquant sur le texte Retour au début de la page de la seconde balise <a>, vous pouvez revenir en haut de page plus rapidement qu'avec les barres de défilement lorsque la page est longue. Enfin, la balise <cite> est une balise de style de contenu. Elle indique que le texte inclus est une citation bibliographique. Par convention, son contenu est affiché en italiques. Les balises de style de contenu indiquent au navigateur que leur contenu présente une signification, un usage particulier. Le navigateur met alors ce contenu en forme en fonction de cette signification. Les balises de style de contenu sont essentielles pour le traitement automatique du contenu d'une page HTML. La balise <cite> peut, par exemple, permettre d'extraire automatiquement une bibliographie depuis un fichier HTML. 5. Téléchargez sur le Web une image de taille moyenne. Enregistrez-la dans votre répertoire images. Puis insérez-la dans la page, avant le paragraphe qui commence à la ligne 19. Utilisez ensuite les barres de défilement pour descendre au bas de la page. Puis retournez en haut de page avec le lien Retour au début de la page. Exercice 3. Les balises HTML 1. HTML est un langage imbriqué : les balises sont des instructions qui, insérées dans le document, indiquent au navigateur comment afficher leur contenu. Les balises sont donc interprétées par le navigateur, elles ne sont pas affichées à l'écran. Formellement, une balise HTML est un nom encadré par les caractères < (inférieur) et > (supérieur). Par exemple, <html>. On distingue deux types de balises : La plupart des balises HTML sont des balises doubles : elles nécessitent deux balises, une ouvrante (<html>) et une fermante (</html>). La balise fermante est identique à la balise ouvrante, elle contient en plus un caractère / avant le nom. La zone de contenu délimitée par ces deux balises constitue le contenu de la balise (du texte et/ou d'autres balises) qui, ainsi délimité, peut être traité de manière exclusive, pour la mise en forme par exemple. Exemple : <i>du texte en italiques</i> Il existe également quelques balises simples (ou vides). Ce sont des balises qui ne peuvent contenir d'autres balises HTML, elles n'ont donc pas besoin d'être fermées, car elles sont auto-fermantes et le caractère / marquant la fin de l'élément se place à la fin de la balise ouvrante. Exemple : <img src="images/moi.jpg" alt="toto" title="c&apos;est moi!" /> Recherchez dans la page http://creer-un-site.fr/liste-des-balises-html-xhtml-28.php la liste des balises simples du HTML. 1. Un document HTML est composé de balises imbriquées de manière hiérarchique. On distingue alors les ancêtres, les parents, les enfants et les frères. Exemple : <strong>du texte <i>en italiques <u>et souligné</u></i></strong> La balise <strong> est parent de la balise <i>, qui est elle-même parent de la balise <u>. La balise 3

<strong> est ancêtre de la balise <u>. Inversement, <u> est enfant de <i>, qui est elle-même enfant de <strong>. - Complétez les phrases a à g à partir du code qui suit : a. <h4> est de <p>. b. Les deux <p> sont. c. <h5> est de <p>. d. <p> est de <h5>. e. <i> est de <b>. f. <p> est de <i> et de <b>. g. <h5> est de <i>. L'imbrication de balises permet de cumuler les propriétés à appliquer à une portion de contenu. Dans l'exemple <strong>du texte <i>en italiques <u>et souligné</u></i></strong> : la portion de texte 'Du texte' sera affichée en gras car elle est contenue dans la balise <strong> la portion 'en italiques' sera affichée à la fois en gras et en italiques, car elle est contenue dans la balise <i> qui est elle-même imbriquée dans la balise <strong> et la portion 'en souligné' sera affichée à la fois en gras, en italiques et soulignée, car elle est contenue dans la balise <u>, qui est imbriquée dans la balise <i>, qui est imbriquée dans la balise <strong>. Le chevauchement des balises est une erreur qui empêche l'affichage correct du contenu. Exemple : <i>les balises <u>ne sont pas imbriquées</i> correctement</i> - Trouvez les erreurs qui se sont glissées dans le code suivant et corrigez-les. 1. La balise ouvrante peut contenir des attributs qui précisent ou modifient leur comportement. Ces attributs sont placés après le nom de la balise, chacun séparé par un ou plusieurs espaces, tabulations ou retours chariot. Leur ordre n'a aucune importance. Les attributs sont notés sous la forme nom_attribut="valeur". Par exemple, l'attribut style permet de spéficier la mise en forme du contenu d'un élément (positionnement des éléments qu'il contient, couleur du texte, couleur d'arrière-plan, tailles, etc.) à l'aide des propriétés de style du CSS. Sa notation est : style="propriété1:valeur; propriété2:valeur;...; propriétén:valeur". Exemple : IMPORTANT : Les noms des balises et des attributs ne sont pas sensibles à la casse (<head>, <HEAD> et <Head> sont équivalents). En revanche, les valeurs assignées à un attributs sont sensibles à la casse. En particulier, les noms de fichiers et de répertoires (URL). 4

Exercice 4. Mise en page 1. Ouvrez un nouveau fichier et enregistrez-le sous le nom page2.html dans le répertoire /EnvSystemeReseau/tp-html. Puis, copiez-y le contenu du fichier base.html. 2. Dans la balise <body>, insérez des éléments <div> de la manière suivante : 3. Explications : La balise <div> permet de diviser l'espace en zones d'affichage indépendantes. Chaque zone (ou 'boîte') peut être dotée de barres de défilement, d'une image d'arrière-plan, de styles indépendants, et peut être positionnée de façon précise sur la page. Les principales propriétés CSS de la balise <div> sont : width (largeur), height (hauteur), margin (marge extérieure), padding (marge intérieure), border-color (couleur de la bordure), borderwidth (épaisseur de la bordure), border-style (style de trait de la bordure), background-color (couleur d'arrière-plan). 1. La propriété background-image permet de définir l'image d'arrière-plan d'une boîte. Elle est fixée par l'url de l'image : background-image:url(image), où image est l'adresse de l'image, par exemple images/logo-upe.jpg. Insérez, à la suite de la seconde boîte <div>, une balise <div> de 50% de largeur (width) et 10% de hauteur (height) avec un arrière-plan de couleur orange (background-color). Le contenu de cette boîte est Ce texte est affiché au-dessus de l'image d'arrière-plan. Ajoutez comme image d'arrière-plan de cette boîte l'image logo-upe.jpg de l'exercice 2. 2. Par défaut, l'image d'arrière-plan se répète horizontalement et verticalement. Utilisez la propriété background-repeat avec la valeur appropriée afin d'empêcher l'arrière-plan de se répéter. 3. Par défaut, l'image d'arrière-plan se place en haut à gauche dans la boîte. Utilisez la propriété backgroundposition (background-position: horizontale verticale;), où horizontale et verticale sont la position horizontale et verticale, afin de positionner l'image en bas et au centre de la boîte. Exercice 5. Le flux HTML La disposition des éléments d'une page HTML se fait par défaut selon le flux courant : le navigateur parcourt le code HTML et affiche au fur et à mesure les balises qu'il rencontre. Par conséquent, chaque élément est dépendant des éléments qui l'entourent. Boîtes bloc et en-ligne 1. Généralement, on distingue deux types d'éléments HTML : les éléments de type inline (en-ligne) et les éléments de type block (bloc). Cette distinction a diverses implications sur les éléments concernés. Elle a des implications sur le positionnement des éléments dans le flux courant : les boîtes de type block : - sont en flux vertical : elles se placent l'une en-dessous de l'autre - occupent automatiquement toute la largeur disponible de leur conteneur (élément parent) 5

- exemples : <div>, <h1> à <h6>, <p>, <ul>, <ol>, <li>, etc. les boîtes de type inline : - sont en flux horizontal : elles se placent l'une à côté de l'autre, sur la même ligne - n'occupent que la place nécessaire à leur contenu - exemples : <span>, <a>, <img>, <em>, <strong>, <cite>, etc. toute boîte peut être reclassée dans un type différent grâce à la propriété CSS display. http://htmlhelp.com/reference/html40/block.html : les balises block http://htmlhelp.com/reference/html40/inline.html : les balises inline Elle a des implications concernant les styles des éléments concernés : les balises block peuvent être positionnées et dimensionnées à l'aide des propriétés CSS width et height (largeur et hauteur), min-width et min-height (largeur et hauteur minimales), etc. les balises inline ne sont pas prévues pour l'être. Elle a des implications sur les règles d'imbrication des éléments : les balises block peuvent contenir une (ou plusieurs) autres balises block et/ou inline (sauf quelques exceptions) les balises inline ne peuvent contenir qu'une (ou plusieurs) balises inline. 1. Créez un nouveau fichier page3.html dans le répertoire /EnvSystemeReseau/tp-html et copiez-y le contenu de base.html. Au cours de cet exercice, vous utiliserez l'élément <p> (que nous avons vu au cours de l'exercice 2) et l'élément <span>. Ce dernier permet de mettre en forme des portions de texte. Vous utiliserez également les propriétés width (largeur), background-color (couleur d'arrière-plan), padding (marge intérieure) et margin (marge extérieure). Insérez dans <body>, successivement : un <p> de 200 px de largeur, d'arrière-plan jaune et dont le contenu est le texte une boîte jaune, un <p> d'arrière-plan vert et dont le contenu est une boîte verte et un <p> de 400 px de largeur, 5 px de marge intérieure et d'arrière-plan gris, avec à l'intérieur : un <span> d'arrière-plan jaune et dont le contenu est une boîte jaune et un <span> d'arrière-plan bleu et dont le contenu est une boîte bleue. Que constatez-vous concernant le positionnement dans le flux courant et la largeur des boîtes? Attribuez une marge extérieure de 20 px au premier <p> et de 0 px au second <p>. Que constatez-vous concernant l'étendue des marges par rapport aux bordures de l'élément parent <body>? Attribuez à <body> une marge intérieure de 0 px. Observez le résultat. Puis remplacez padding par margin et observez le résultat. Exceptionnellement, avec l'élément <body>, la propriété margin spécifie non pas les marges extérieures mais les marges intérieures. Par défaut, la marge intérieure de <body> est de 8 px. Attribuez aux deux premiers <p> la propriété display:inline. Quelle est la conséquence? Attribuez au premier <span> la propriété display:block. Quelles sont les conséquences? Positionnement des éléments dans le flux 1. La propriété CSS position permet de modifier le positionnement par défaut des éléments dans le flux. Le positionnement relatif (position:relative;) : maintient l'élément dans le flux courant, permet de le décaler par rapport à sa position par défaut dans le flux et le décalage n'influence en rien les éléments qui le précèdent ou le suivent : ces derniers se positionnement par rapport à sa position par défaut. Le positionnement absolu (position:absolute;) : retire l'élément du flux courant, permet de le positionner par rapport aux bordures de son parent et a une influence sur les éléments qui le précèdent ou le suivent : ces derniers considèrent qu'il n'existe plus (par exemple, l'élément qui le suit dans le flux se positionne non plus par rapport à l'élément concerné mais par rapport à l'élément qui le précède). 6

Le positionnement fixe (position:fixed;) : s'apparente au positionnement absolu et l'élément reste toujours dans la même position par rapport à la fenêtre du navigateur, même lorsque l'utilisateur fait défiler le contenu de la page avec les barres de défilement. Le positionnement par défaut (position:static;) : l'élément se trouve à sa position par défaut dans le flux et les propriétés top, bottom, left et right ne s'y appliquent pas. Un élément est positionné quand la valeur de sa position n'est pas static. Le positionnement d'un tel élément est réalisé à l'aide des propriétés : top : décalage du bord haut de l'élément par rapport au bord haut de son parent bottom : décalage du bord bas de l'élément par rapport au bord bas de son parent left : décalage du bord gauche de l'élément par rapport au bord gauche de son parent right : décalage du bord droit de l'élément par rapport au bord droit de son parent 1. Insérez l'élément suivant dans page3.html : Décalez l'élément <span> de 10 px à gauche et de 5 px en bas. Quelles sont les conséquences? 2. Positionnez le premier <span> de la question 2 en absolu. Quelles sont les conséquences? Où se trouve la boîte bleue, à présent, et par rapport à quoi se place-t-elle? 3. Créez un nouveau fichier nommé page4.html dans le répertoire /EnvSystemeReseau/tp-html et copiez-y le contenu du fichier base.html. Insérez dans l'élément <body>, successivement : un élément <div> dont le contenu est : «Iam summus Pater architectus Deus Hanc quam videmus mundanam domum, divinitatis templum augustissimum, archanae legibus sapientiae fabrefecerat. Supercaelestem regionem mentibus decorarat ; aethereos globos aeternis animis vagetarat ; excrementarias ac feculentas inferioris mundi partes amnigena animalium turba complera. [...]» puis un élément <div> dont le contenu est : Lien 1 <br> Lien 2 <br> Lien 3 <br> Par rapport à quel élément les deux <div> seraient-ils positionnés si on les sortait du flux courant? Attribuez au premier <div> les propriétés suivantes : un positionnement absolu ; à 10 % du bord gauche et 5% du bord haut de la fenêtre ; une largeur de 30% et une hauteur de 100% ; une marge intérieure de 15 px ; une bordure de couleur noire, d'une épaisseur de 1 px et de style solid. Attribuez au second <div> : un positionnement fixe ; à 2% du bord haut et 2% du bord droit de la fenêtre ; une largeur de 10% ; une marge intérieure de 15 px ; un arrière-plan de couleur gris. Faites défiler la page vers le haut et vers le bas avec les barres de défilement et observez le comportement des deux éléments <div>. 7

Exercice 6 Les tableaux 1. Créez un fichier mon-cv.html dans le répertoire /EnvSystemeReseau/tp-html. Copiez-y le contenu du fichier base.html. 2. Complétez le contenu de la balise <title> imbriquée dans <head> avec le titre suivant : Curriculum Vitae de Nom Prénom. 3. Souvent, pour présenter des informations structurées en lignes et en colonnes, on utilise les tableaux. La balise <table> permet d'insérer un tableau dans une page Web. Un tableau est défini de la manière suivante : Le tableau commence par la balise ouvrante <table> et se termine par la balise fermante </table>. On utilise la balise <tr> (table row) pour insérer une nouvelle ligne. On utilise la balise <td> (table data) pour insérer une nouvelle cellule dans une ligne. On utilise la balise <th> (table head) pour insérer un titre de ligne ou de colonne Voici un exemple de tableau et le résutlat de son affichage : 1. Dans cet exemple, tous les élément <th> ont un attribut style de même valeur, et tous les éléments <td> 8

ont un attribut style de même valeur. Afin d'appliquer les mêmes styles à plusieurs balises sans les répéter dans chacune des balises concernées, on peut définir une feuille de style interne. Pour cela on utilise la balise <style> dans l'en-tête <head> du document. En voici un exemple : Le résultat de l'affichage est le même que celui du tableau précédent. La balise <style> contient 3 règles CSS : la première s'applique à tous les éléments <table> de la page, la second s'applique à tous les éléments <th> de tous les tableaux de la page, la troisième s'applique à tous les éléments <td> de tous les tableaux de la page. 2. Il existe 3 manières de définir des styles CSS : les styles en ligne : dans le code HTML, avec l'attribut style dans chaque élément les styles incorporés : dans l'en-tête de la page, avec la balise <style> les styles externes : dans une feuille de style séparée (un fichier dont le nom a pour extension.css, fichier.css dans l'exemple suivant). Une feuille de style externe peut être appliquée à n'importe quel fichier HTML. Il suffit, pour cela, d'insérer, dans le fichier HTML concerné, une balise <link> de la manière suivante : 9

fichier.css fichier.html 1. Dans le fichier mon-cv.html, nous allons créer 3 sections : diplômes, expériences professionnelles et loisirs. Vous définirez les styles en interne ou en externe. Le titre de chaque section sera inséré à l'aide d'une balise <h3>. Il sera affiché en bleu (color: blue;) et centré horizontalement (text-align: center). Le contenu de chaque section sera un tableau. Dans la section Diplômes, le tableau contiendra autant de lignes que de diplômes que vous avez obtenus. Il sera divisé en 3 colonnes dont les titres seront : Année, Diplôme, Établissement. Le contenu des cellules sera aligné à gauche (text-align: left;) Dans la section Expériences professionnelles, le tableau sera divisé en 3 colonnes dont les titres seront : Période, Établissement, Poste occupé. Le contenu des cellules sera également aligné à gauche. Dans la section Loisirs, le tableau contiendra 3 lignes dont les titres seront : langues, activités artistiques et sports. Chaque ligne contient 2 colonnes. 1. Ajoutez un titre principal à votre page à l'aide d'une balise <h1> que vous formaterez selon votre goût. 2. Ajoutez également une section contenant votre identité et vos coordonnées (Nom et prénom, adresse postale, adresse électronique, numéros de téléphone fixe et portable). Exercice 7 Les listes 1. Créez un fichier mon-cv_listes.html dans le répertoire /EnvSystemeReseau/tp-html. Copiez-y le contenu du fichier base.html. 2. Complétez le contenu de la balise <title> imbriquée dans <head> avec le titre suivant : Curriculum Vitae (listes) de Nom Prénom. 3. Souvent, pour présenter des informations ordonnées, non ordonnées ou des définitions, on utilise des listes. Une liste doit contenir au minimum un élément. Une liste non ordonnée est définie de la manière suivante : La liste commence par la balise ouvrante <UL> et se termine par la balise fermante </UL>. On utilise la balise <IL> pour insérer un nouvel élément dans la liste. Voici un exemple de liste non ordonnée : Insérez ce code dans le corps <body> du fichier mon-cv_listes.html et observez. 1. Les éléments d'une liste non ordonnée sont introduits par des «éléments graphiques». Par défaut il s'agit d'un rond noir pour le premier niveau d'indentation, un rond blanc pour le deuxième niveau, etc... Ces éléments graphiques peuvent être modifiés en renseignant le champs type='valeur' dans la balise <IL>. 10

Le champs type peut prendre les valeurs suivantes : Testez les différentes valeurs sur la liste non ordonnée précédente. 2. Une liste ordonnée est définie de la manière suivante : La liste commence par la balise ouvrante <OL> et se termine par la balise fermante </OL>. On utilise la balise <IL> pour insérer un nouvel élément dans la liste. Transformez la liste non ordonnée précédente en liste ordonnée, observez. 1. Comme pour les listes non ordonnées, les listes ordonnées utilisent des éléments graphiques pour introduire les éléments de la liste. Ces éléments graphiques peuvent être modifiés en renseignant le champs type='valeur' dans la balise <OL>. Le champs type peut prendre les valeurs suivantes : Type Type d'énumération 1 Chiffres arabes 1, 2, 3,... a Minuscules a b, c,... A Majuscules A, B, C,... i Chiffres romains minuscules i, ii, iii,... I Chiffres romains majuscules I, II, III,... Testez les différentes valeurs sur la liste ordonnée précédente. 2. Une liste dite de «description» est définie de la manière suivante : La liste commence par la balise ouvrante <DL> et se termine par la balise fermante </DL>. Un titre de définition est indiqué par la balise <DT>. On utilise la balise <DD> pour renseigner la définition elle-même. Voici un exemple de liste de description : Insérez ce code dans le corps <body> du fichier mon-cv_listes.html et observez. 1. Dans le fichier mon-cv_listes.html, nous allons créer 3 sections : diplômes, expériences professionnelles et loisirs. Chaque section sera une liste de description dont le titre sera inséré à l'aide d'une balise <h3>. Il sera affiché en bleu (color: blue;). Le contenu de chaque section sera une liste non ordonnée d'éléments en rapport avec la section (les diplômes dans la section diplômes,...). Pour chaque diplôme dans la section Diplômes, vous devez créer une liste non ordonnée contenant les 11

informations suivantes : Année, Diplôme, Établissement. La section Expériences professionnelles, doit être créée de la même façon que la section Diplômes. Les informations demandées pour chaque expérience sont : Période, Établissement, Poste occupé. De même pour la section Loisirs, avec les informations suivantes : langues, activités artistiques et sports. 2. Ajoutez également une section contenant votre identité et vos coordonnées (Nom et prénom, adresse postale, adresse électronique, numéros de téléphone fixe et portable). Cette section sera créée grâce à une liste de description. Exercice 7 Mise en forme des listes 1. Créez un fichier listes-formattees.html dans le répertoire /EnvSystemeReseau/tphtml. Copiez-y le contenu du fichier base.html. 2. Insérez la liste suivante dans le corps de la page : Puis définissez le code CSS qui permet de formater l'affichage de cette liste comme suit : En l'absence de règles supplémentaires, la liste est affichée de cette manière : 3. Positionnement de la liste. Attribuez à la liste précédente une marge extérieure gauche (margin-left) et une marge intérieure gauche (padding-left) de 0 px et observez le résultat. Corrigez ensuite les deux propriétés précédentes de manière à réintégrer les puces de la liste à l'intérieur du bloc <div>. 4. Images en tant que puces. La propriété list-style-image permet d'utiliser une image en tant que puce. Téléchargez une image (pas trop grande) et enregistrez-la dans le répertoire images sous le nom puce.gif. Puis complétez le code CSS relatif à la liste avec la propriété liste-style-image: url(puce.gif);. Si le navigateur utilisé par l'utilisateur ne prend pas en chage cette partie de CSS (ou n'affiche pas les images), la puce par défaut sera utilisée. Pour spécifier vous-même la puce HTML à afficher dans une telle situtation, vous définirez à la fois la propriété list-style-image et la propriété list-style-type. 12

5. Positionnement des puces. La propriété list-style-position permet de placer les puces par rapport au texte des items de la liste. Attribuez à la liste précédente cette propriété avec pour valeur inside et observez le résultat. 6. Suppression des puces. Il peut arriver que vous ne vouliez pas utiliser de puce pour l'affichage d'une liste. Pour cela, vous remplacerez les trois règles précédentes par l'attribut list-style: none; dans votre règle de style concernant la liste. Si vous souhaitez, non pas supprimer les puces mais les remplacer par un caractère de votre choix, vous utiliserez également la règle list-style: none;. Puis vous forcerez la première ligne de chaque item de la liste à s'afficher avec un alinéa négatif à l'aide de la propriété text-indent. Il vous faudra également définir le margin-left ou padding-left, l'un des deux au choix, à 0, et l'autre à la même valeur positive que le text-indent. Voici le code CSS complet : Remplacez les styles définis précédemment pour la liste par ces derniers. Puis ajoutez le caractère» au début de chaque item de la liste. Exercice 8. Les styles CSS 1. Une feuille de style est un fichier dont l'extension est.css. On définit dans ce fichier nos préférences concernant l'affichage du contenu de notre page HTML : les polices d'écriture, la taille des caractères pour les textes, les couleurs, la taille des images, arrière-plans, le positionnement des différentes sections, etc. Nous avons vu (durant l'exercice 6) les trois façons de définir les styles d'une page HTML. L'avantage des styles externes, c'est qu'une modification dans cette feuille de style principale affectera toutes les pages qui lui sont liées. 2. Créez un fichier mise-en-forme.html dans le répertoire /EnvSystemeReseau/tp-html. Copiez-y le contenu du fichier base.html. Créez ensuite un nouveau fichier mes-styles.css dans le même répertoire. 3. Insérez, dans la balise <head> de votre page HTML, la balise suivante : Cette balise vous permet de créer un raccourci vers le fichier dans lequel vous définissez les styles d'affichage de votre page : La balise <link> indique au navigateur qu'il doit chercher un document situé à l'extérieur de la page HTML. L'attribut rel="stylesheet" précise que le document en question est une feuille de style. L'attribut type="text/css" précise le type de la feuille de style, du CSS en l'occurrence. Et L'attribut href="url" donne l'url de la feuille de style, c'est-à-dire son emplacement. 1. À présent, insérez dans le contenu de la page (dans la balise <body>) un titre <h1> dont le contenu est Mise en forme par les styles CSS. Insérez ensuite un titre <h2> dont le contenu est Un premier petit exemple suivi d'un paragraphe <p> que vous remplirez avec un texte quelconque de petit taille (à rechercher sur le Web). Insérez une deuxième fois un titre <h2> avec pour contenu Un deuxième petit exemple suivi d'un paragraphe que vous remplirez cette fois avec un texte de longueur moyenne ou grande. 13

Nous allons, par la suite, définir, dans notre fichier mes-styles.css, l'aspect global de la page mise-enforme.html lors de son affichage. Pour cela, nous allons fournir au navigateur les règles d'affichage du contenu. 2. La syntaxe d'une règle CSS est de la forme suivante : sélecteur {propriété1: valeur1; propriété2: valeur2; }. Une règle est donc composée de deux parties : un sélecteur et une ou plusieurs déclarations. Une déclaration comprend elle-même deux parties : une propriété et une valeur associée à cette propriété. Ces deux parties sont séparées par le caractère deux-points (:) et la déclaration est terminée par un point-virgule (;). Dans l'exemple suivant, le sélecteur est p et la déclaration est color: blue ; dans la déclaration, la propriété est color et sa valeur est #e8eae8. Tous les types d'éléments HTML (les noms des balises) peuvent être des sélecteurs. La liste des propriétés et leurs valeurs est définie dans la spécifications du w3c, que vous pourrez trouver à l'adresse suivante : http://www.yoyodesign.org/doc/w3c/css1/index.html#css1-properties. 1. Les sélecteurs. Un sélecteur peut contenir plusieurs noms de balises, séparés de différentes manières. Les sélecteurs multiples contiennent une liste de noms de balises HTML séparés par des virgules. Ils permettent d'appliquer le même bloc de règles de styles à plusieurs éléments de la page HTML. Les deux exemples suivants sont équivalents : Les sélecteurs contextuels contiennent une liste de noms de balises HTML séparés par un espace. Il permettent d'appliquer des styles à une balise lorsqu'elle se trouve dans un contexte donné. Dans le sélecteur, les balises sont listées dans leur ordre d'imbrication. L'exemple suivant définit la valeur de la propriété list-style des balises <li> selon leur niveau dans une liste : - si <li> est imbriquée dans un seul <ol>, alors le navigateur utilise la valeur upper-roman de la propriété list-style - si <li> est imbriquée dans deux <ol>, alors il utilise la valeur upper-alpha - si <li> est imbriquée dans trois <ol>, alors il utilise la valeur décimal Le sélecteur universel, noté *, applique les styles qui lui sont associés à tous les éléments du document. Avec la règle de l'exemple suivant, tous les textes de la page HTML seront affichés en violet et dans la police Times New Roman. Les sélecteurs adjacents contiennent des noms de balises séparés par le caractère +. Ils permettent de sélectionner une balise lorsqu'elle est immédiatement suivie d'une autre. Dans l'exemple suivant, le navigateur ajoute de l'espace aux instances <h1> de la page lorsqu'elles sont immédiatement suivies d'un titre de niveau 2, <h2>. 14

Les pseudo-éléments contiennent un nom de balise suivi de : et du nom d'un pseudo-élément (:firstline, :first-letter, :before, :after). Ils permettent de mettre en forme des parties de contenu qui sont impossibles à baliser. Selon l'exemple suivant, la première ligne des éléments <p> doit s'afficher en italique et dans une taille de police deux fois plus grosse : 1. Les classes. Le langage CSS permet d'appliquer plusieurs styles à un même élément en attribuant une classe à chacun de ces éléments. Pour attribuer une classe à un élément, on utilise l'attribut class="nom". Les classes régulières. On veut, par exemple, présenter un article contenant deux paragraphes <p>, l'un contenant le résumé de l'article et l'autre l'article lui-même. On attribue au premier paragraphe la classe résumé, ainsi : <p class="resume"> et au deuxième paragraphe la classe article, ainsi : <p class="article">. On définit ensuite le style de chacun de ces paragraphes de la manière suivante (le nom de la balise et celui de sa classe sont séparés par un.). Le résumé sera alors affiché en italiques, dans une taille de police inférieure et avec une marge de 0.5cm. Le contenu de l'article sera centré dans la page. Les classes génériques. On peut aussi définir une classe et l'associer à plusieurs balises différentes. Le sélecteur de la règle CSS est alors composé d'un. suivi du nom de la classe. Par exemple, pour afficher les titres <h1> et les paragraphes <p> en italiques, on définit une classe italique à laquelle on associe la règle permettant d'afficher du texte en italiques. Puis, dans le code HTML, on attribue le nom de cette classe aux <h1> et aux <p> : <p class="italique"> et <h1 class="italique">. Les classes ID permettent d'attribuer un identifiant unique à une balise donnée. Le sélecteur de la règle CSS est composé d'un caractère # suivi du nom de l'identifiant. Par exemple, pour afficher le contenu d'un <p> donné en jaune, on peut lui attribuer l'identifiant jaune (<p id="jaune"> ) puis définir la règle CSS suivante : Les pseudo-classes sont des classes dont les noms sont prédéfinis et qui n'ont pas besoin d'être précisées par l'attribut class. Elles permettent de contrôler le style de certaines balises selon leur état. Voici les états les plus usités pour les éléments de type <a> : a:link {color: orange;} : le texte du lien est affiché en orange tant qu'il n'a pas été visité a:active {color: red;} : le texte du lien est affiché en rouge lorsque l'internaute clique dessus a:visited {color: blue;} : le texte du lien est affiché en bleu s'il a été visité au moins une fois a:hover {font-weight: bold;}: le texte du lien est affiché en caractères gras lorsque l'utilisateur le survole avec la souris La pseudo-classe :hover peut également être utilisée avec les autres balises du HTML. Pour utiliser une pseudo-classe avec un élément auquel vous avez attribué une classe, utilisez la syntaxe suivante : balise.classe:pseudo-classe. Par exemple, pour attribuer un style à un lien visité auquel vous avez attribué la classe normal : a.normal:visited { }. 1. Les propriétés des styles. Le langage CSS propose six catégories de propriétés de style : polices, couleurs et arrière-plans, texte, boîtes et mise en pages, listes et classement des balises. On donne une valeur à une propriété en faisant suivre son nom par le caractère : puis un espace et, enfin, une ou plusieurs valeurs séparées par des virgules. Lorsqu'une valeur de propriété contient des espaces, il convient de l'entourer de guillemets doubles (") afin d'expliciter le fait qu'il s'agit d'une seule des valeurs de la propriété. Par exemple, pour 15

définir la police d'affichage d'un titre : Les 5 principales catégories de valeurs de propriétés sont : les mots-clés : sont des noms de valeurs prédéfinis par le langage CSS. Par exemple, la propriété fontsize, qui permet de spécifier la taille de la police d'un texte, peut prendre les valeurs xx-large (très très grand), x-large (très grand), large (grand), medium (moyen), small (petit), x-small (très petit) ou xxsmall (très très petit). les longueurs : déterminent la taille d'une propriété, à l'aide d'un nombre qui peut parfois être de valeur décimale. Pour indiquer s'il faut ajouter ou retrancher de la valeur actuelle de la propriété, on ajouter le signe + ou - avant la valeur (sans espace entre les deux). La valeur est directement suivie (sans espace) de l'abréviation en deux lettres de l'unité de mesure. On distingue trois types d'unités de mesure : - les unités de mesure relative : em, qui correspond à la largeur de la lettre m en base de casse, et x-height (abrégée ex), qui corresond à la hauteur de la letter x en bas de casse. - les unités de mesure en pixels : px, correspondant à la taille d'un pixel. - et les unités de mesure absolue : in pour les pouces, cm pour les centimètres, mm pour les millimètres, pt pour les points et pc pour les picas. les pourcentages : % comportent un signe + ou (ajouter ou retrancher) car ils décrivent une mesure proportionnelle à un autre contenu. les URL sont spécifiées selon la syntaxe suivante : url(chemin) (sans espace entre le mot-clé url et la parenthèse ouvrante). La valeur du chemin est relative non pas au chemin du fichier HTML mais au chemin de la feuille de style CSS. les couleurs : indiquent la couleur d'une propriété. Elles peuvent prendre pour valeur un mot-clé (blue, yellow, orange, ), une valeur hexadécimale de la forme RGB (red, green, blue) ou une valeur décimale RGB. Par exemple, le blanc est white (mot-clé), #000000; en hexadécimal et rgb(255, 255, 255) ou rgb(100%, 100%, 100%) en décimal. Les valeurs rgb sont un nombre compris entre 0 et 255 ou un pourcentage. Sur le Web, les tailles de caractères peuvent changer d'un ordinateur à l'autre et d'un navigateur à l'autre. Par conséquent, si vous souhaitez que l'aspect global que vous avez défini pour votre page soit respecté sur la plupart des navigateurs, vous utiliserez des tailles de caractères relatives : les em et les % ou, encore mieux, les descriptions prédéfinies citées précédemment ( xx-large à xx-small). Avec ces dernières, le navigateur ne laissera pas la police d'écriture devenir illisible. Imaginez par exemple que vous choisissiez une taille de caractères relative (à celle par défaut de votre ordinateur), petite mais lisible sur votre PC. Si l'ordinateur d'un utilisateur a une taille de police par défaut plus petite que la vôtre, votre texte risque de devenir beaucoup trop petit. 1. Applications. Nous allons, à présent, définir les règles d'affichage de la page HTML dans le fichier mes-styles.css. Attribuez à la page entière (<body>) - une marge intérieure de 50px - une couleur d'arrière-plan (background-color) de valeur #e8eae8; - et une police de couleur (color) #5d665b; Affichez la page mise-en-forme.html dans votre navigateur pour observer le résultat. Définissez la police des textes (font-family) en Verdana, Geneva, Arial, sans-serif. 16

Ainsi, si la police Verdana n'est pas présente sur votre ordinateur, le navigateur utilisera Geneva, mais si cette dernière n'est pas, elle non plus, présente sur votre ordinateur, il utilisera Arial. Si aucune des trois polices n'est présente, il utilisera la police sans-serif qu'il connaît. Actualisez l'affichage de votre page pour observer le résultat. Fixez la taille de la police de caractères (font-size) à small et la hauteur des lignes (lineheight), c'est-à-dire la hauteur des caractères et de l'espace supplémentaire au-dessu, à 180% de la taille de la police de caractères. Observez le résultat. Attribuez au premier <h2> une taille de police de 75% et au premier <p> une taille de police de 70%, relativement à la taille de police spécifiée précédemment. Puis, attribuez au second <p> une indentation (textindent) de 3em. Attribuez au texte du titre <h1> la couleur #ffffdd;. Puis attribuez au texte des titres <h2> la couleur de police #966b72; et la famille de polices Georgia, "Times New Roman", Times, serif. Observez le résultat. Afin d'aérer votre page, insérez un <p> vide entre chaque titre <h2> et le paragraphe qui le suite. Observez le résultat. Insérez ensuite dans ces <p> vides un espace (au clavier) et observez le résultat. Insérez maintenant dans ces <p> vides un espace insécable et observez le résultat. Explication. Un paragraphe vide n'apparaît pas à l'écran, il doit obligatoirement avoir un contenu. Un espace ne fonctionne que s'il se trouve entre deux caractères. Astuce. On utilise l'espace insécable entre deux mots que l'on ne souhaite pas voir séparés lorsque la ligne se termine (des noms propres, par exemple). Encore quelques améliorations. Attribuez au <body> une marge supérieure (margin-top) et inférieure (margin-bottom) de 70px, une marge gauche (margin-left) de 120px et une marge droite (marginright) de 50px. Amusez-vous avec les valeurs des styles de la page que vous venez de créer en modifiant les familles et tailles de polices, les marges, les interlignages, etc. Visionnez à chaque fois votre page dans différents navigateurs pour observer les différences de rendu. Notez les différences observées pour chacune des balises que contient votre page. Exercice 8. Les cadres 1. Une page HTML peut être elle-même divisée en plusieurs pages HTML qu'on appelle cadres. Le contenu de chaque cadre est une page (un fichier) HTML distincte. Les balises permettant de créer des cadres sont <frameset> et <frame>. En voici un exemple et le résultat de l'affichage du fichier : 17

2. Explications. La balise <frameset> La balise <frameset> remplace la balise <body>. Elle définit un jeu de cadres et peut contenir des cadres ou des jeux de cadres. Les attributs attributs border, bordercolor et frameborder contrôlent les bordures des cadres ; l'attribut framespacing contôle leur espacement. l'attribut rows définit le nombre et la taille des différents cadres <frame> ou jeux de cadres <frameset> que contient un <frameset>. Dans l'exemple précédent, le <frameset> principal contient un cadre dont la hauteur occupera 25% de la hauteur de la fenêtre et un jeu de cadres dont la hauteur occupera tout le reste (*) de la hauteur. l'attribut cols définit le nombre et la taille des cadres et jeux de cadres que contient un <frameset>. Ainsi, dans l'exemple précédent, le <frameset> de second niveau contient deux cadres dont l'un occupera 25% de la largeur du jeu de cadres et l'autre occupera tout le reste de la largeur. Les valeurs de rows et cols peuvent être des pourcentages ou des px. Au moins l'un des attributs rows et cols doit être spécifié pour chaque <frameset>. La balise <frame> 18

La balise <frame> ne peut être utilisée que dans le contexte d'un <frameset>. On l'utilise pour indiquer l'url du document qui va s'afficher dans chaque cadre à l'aide de l'attribut src. L'attribut name de la balise <frame> permet de nommer un cadre de manière à l'utiliser comme cible d'un lien hypertexte <a>. Il suffit pour cela d'ajouter l'attribut target dans la balise <a> du lien source. Voici, par exemple, une ancre définie dans cadre2.html et qui permet d'afficher un document dans le cadre 3 : Si l'internaute clique sur le lien, le document nouveau.html remplacera le contenu original du cadre 3. Afin d'empêcher le redimensionnement des différents cadres par l'utilisateur, on utilise l'attribut noresize. Par défaut, chaque cadre est doté de barres de défilement dès que leur contenu dépasse l'espace de la fenêtre. Afin de les supprimer, on utilise l'attribut scrolling avec pour valeur no. Les attributs marginheight et marginwidth permettent par ailleurs d'insérer une marge entre les bordures d'un cadre et son contenu. Une marge ne peut être inférieure à 1px et ne peut avoir pour valeur une taille qui prend toute la place du contenu du cadre. Si les marges souhaitées ne conviennent pas au navigateur, ce dernier affiche le cadre du mieux possible, en utilisant ses styles par défaut. L'attribut frameborder permet de définir l'aspect de la bordure de chaque cadre. Ses valeurs possibles sont yes ou 1 pour encadrer le cadre et no ou 0 pour supprimer la bordure. Enfin, l'attribut bordercolor permet de modifier la couleur des bordures. 1. Applications. Réalisez le <frameset> illustré par la copie d'écran ci-dessous. La zone 1 s'appelle (name) cadre1, la zone 2 est cadre2 et la zone 3 est cadre3. La zone du bas occupe 60px de la hauteur de la page et la zone du haut occupe tout le reste. Sa hauteur ne doit pas être modifiable et son cadre ne doit pas être doté de barres de défilement. La zone 1 ne doit pas avoir de barres de défilement, la zone 2 peut en avoir. Les différents cadres doivent être séparés par un espace de 5px. Aucune des 3 zones ne doit avoir de bordures. Spécifiez les couleurs de fond des trois zones. Enfin, définissez deux liens dans la zone 1 qui permettront d'afficher des fichiers dans la zone 2. 19

Exercice 9. Les formulaires 1. Un formulaire est composé de champs de saisie, de boutons cliquables, de cases à cocher qui proposent des choix multiples, de menus déroulants et d'images cliquables. Une page HTML peut contenir un ou plusieurs formulaires. Vous trouverez un exemple complet de formulaire mis en forme par les styles CSS à la section 11 (Mise en forme d'un formulaire) de cet exercice. 2. La balise <form> Tous les éléments d'un formulaire doivent être placés entre les balises <form> et <form>. L'attribut action de cette balise permet de spécifier : - soit une adresse électronique à laquelle sera envoyé le contenu du formulaire : action="mailto:rakho@univmlv.fr". - soit l'adresse d'un script qui traitera les données du formulaire avant de les envoyer action="http://www.uneadresse.com/cgi-bin/script". L'attribut method peut prendre les valeurs suivantes : - POST si vous souhaitez vous faire envoyer le contenu du formulaire par adresse électronique (action="mailto:"). Dans ce cas, les applications qui sont censées traiter les données du formulaire n'y accèderont que lorsqu'elles commenceront à les exécuter. - GET si vous souhaitez sauvegarder les données du formulaire sur le serveur WWW grâce au protocole HTTP. Les applications censées traiter les données devront y accéder sur le serveur. ATTENTION : Si la sécurité est un problème, vous choisirez dont la méthode POST. En effet, avec GET, les données pourront facilement être interceptées au passage ou extraites du fichier de traces du serveur. L'attribut enctype permet de spécifier le format d'encodage des données envoyées lors de la soumission du formulaire. Les formats suivants seront utilisés : - text/plain si vous avez opté pour action="mailto:" Dans cet encodage, chaque élément du formulaire est placé sur une ligne distincte, le nom du champ et sa valeur étant séparés par le signe égal (=). Par exemple : nom=mathieu prénom=georges - multiplart/form-data si votre formulaire contient des fichiers à envoyer (<input type="file">) ATTENTION : À l'exception des boutons de sélection/réinitialisation, tous les éléments de formulaire décrits dans la suite possèdent un attribut name qui est obligatoire car le navigateur s'en sert pour transmettre les choix effectués pour chaque élément. 1. La balise <input> La balise <input> permet d'insérer dans un formulaire divers types de champs de saisie, des listes à choix multiples, des images cliquables et des boutons de soumission. De préférence, la valeur de cet attribut ne doit 20

contenir ni des lettres accentuées, ni des espaces, ni des ponctuations, et la première lettre ne doit pas être un chiffre. Pour sélectionner le type de contrôle à inclure, on utilise l'attribut type de <input>. Pour insérer des champs de saisie <input type="text" size="60" maxlength="80" value="entrez votre adresse ici" name="adresse"> Un champ de texte s'affiche dans le navigateur comme une boîte vide qui n'accepte qu'une ligne de saisie. Les attributs size et maxlength permettent de spécifier, respectivement, la longueur du champ et le nombre de caractères que l'utilisateur est autorisé à y entrer. Le champ de saisie est vide tant que l'internaute ne l'a pas rempli mais on peut y faire figurer une valeur par défaut (par exemple, une indication à l'attention de l'internaute concernant le remplissage de ce champ). On utilise pour cela l'attribut value. L'attribut name, enfin, est obligatoire. <input type="password" name="mot_de_passe">, Le type password est l'équivalent d'un champ de saisie texte normal sauf que les caractères entrés par l'utilisateur sont masqués. Le type password possède les mêmes attributs size, maxlength et value que le type text. L'attribut name est obligatoire. <input type="file" name="fichier"> Le type file permet à l'internaute de sélectionner un fichier stocké sur sa machine. Le navigateur affiche automatiquement un bouton Parcourir sur la droite du champ de saisie. Le type file possède les mêmes attributs size, maxlength et value que le type text. L'attribut name est obligatoire. Pour insérer des cases à cocher <input type="checkbox" name="animal" checked="checked" value="choix1"> Le type checkbox sert à insérer une ou plusieurs cases à cocher. L'attribut checked est optionnel, il permet de cocher une case par défaut qui peut être décochée par l'utilisateur si elle ne correspond pas à son choix. L'attribut value ne s'affiche pas dans le navigateur, il contient la valeur soumise au serveur si l'internaute a coché la case. <input type="radio" name="prefere" value="valeur"> Le type radio est similaire au type checkbox, sauf qu'on ne peut sélectionner qu'une seule case par groupe. Tous les boutons radio qui possèdent le même attribut name appartiennent au même groupe. Pour insérer des boutons d'action <input type="submit" name="validation" value="valider"> Le type submit permet d'envoyer au serveur les paramètres du formulaire (les valeurs des champs de saisie, les valeurs des attributs value des listes de choix, etc.). L'attribut value permet de spécifier la valeur affichée du bouton (par défaut, c'est Submit qui est affiché). L'attribut name n'est pas obligatoire, mais il permet de différencier les différents boutons de soumission. <input type="reset" value="annuler"> Le type reset permet de réinitialiser tous les éléments d'un formulaire (suppression des valeurs et/ou remise des valeurs par défaut). L'attribut value permet de spécifier le texte affiché de ce bouton (par défaut, c'est Reset qui est affiché). <input type="image" src="images/plan.gif"> Le type image permet de créer un bouton avec une image. Lorsque cette image est cliquée, le navigateur soumet le formulaire. Ce type de bouton exige un attribut src dont la valeur est l'adresse du fichier image à utiliser. L'attribut alt, facultatif, permet de spécifier un texte alternatif pour les navigateurs en mode texte ou en mode vocal. 21

1. La balise <button> Pour les trois types suivants, l'intitulé du bouton est défini par le contenu de la balise (par exemple, Pressez-moi!). On peut y mettre un texte, comme dans l'exemple, ou une image, à l'aide de la balise : <button type="submit"> <img src="" alt=""> </button>. <button type="submit">pressez-moi</button> Pour créer un bouton qui, lorsqu'il est cliqué, indique au navigateur d'envoyer le contenu du formulaire au serveur de traitement ou à une adresse électronique (option mailto dans <form>). <button type="reset">pressez-moi</button> Pour créer un bouton de réinitialisation du formulaire. <button type="button">pressez-moi</button> Pour créer un bouton classique. 1. La balise <textarea> <textarea name="commentaires" cols="40" rows="40"> Mettez vos commentaires ici </textarea> Cette balise permet d'insérer dans un formulaire une zone de saisie de texte sur plusieurs lignes. L'internaute peut y taper un nombre quasi illimité de caractères. L'attribut name est obligatoire. Vous pouvez insérer des instructions de remplissage dans la zone de saisie (par exemple, Mettez vos commentaires ici). L'internaute le supprimera au moment de remplir la zone de saisie. Les attributs rows et cols permettent de spécifier les dimensions de la zone de saisie. Leur valeur est un nombre entier de caractères. Si le texte dépasse les dimensions, le navigateur affiche des barres de défilement sur la zone de saisie. 2. Créer des menus déroulants : la balise <select> Pour insérer un menu déroulant dans un formulaire, on utilise la balise <select>. L'attribut multiple (multiple="multiple") de <select> permet d'autoriser l'internaute à choisir plus d'une option à la fois. L'attribut size de <select> détermine le nombre d'options visibles. L'internaute peut faire défiler la liste pour voir les autres options. La balise <select> peut contenir autant de balises <option> que de choix proposés à l'utilisateur. Ces différentes <option> peuvent être organisées en groupes avec la balise <optgroup> (par exemple, on peut regrouper les départements de France par région). La balise <optgroup> ne peut être utilisée que dans une balise <select> et ne peut contenir que des balises <option>. 3. La balise <option> Le contenu de la balise <option> ne peut être que du texte. Son attribut value contient la valeur de chaque option choisie par l'internaute que le navigateur envoie au serveur. Si l'attribut value n'est pas spécifié, c'est le contenu de la balise qui est envoyé. Par conséquent, les deux exemples suivants sont équivalents : <option>chien</option> et <option value="chien">chien</option>. Pour pré-sélectionner une ou plusieurs <option> par défaut, on y définit l'attribut selected="selected". L'internaute pourra ensuite les désélectionner si elles ne correspondent pas à son choix. 22

4. La balise <optgroup> Pour attribuer un titre à chaque groupe, on utilise l'attribut label de <optgroup> (dans l'exemple des départements de France, les titres des groupes seraient les noms des régions). De préférence, pour que le menu s'affiche correctement dans tous les navigateurs, les titres des sous-menus doivent être courts. La balise <optgroup> ne peut être imbriquée, ce qui fixe à un niveau de profondeur la limite des sous-menus. 5. Intituler les éléments d'un formulaire : la balise <label> Pour associer une étiquette à un élément de formulaire, on utilise la balise <label>. L'association entre le l'élément de formulaire et son étiquette se fait de la manière suivante : <label>nom : <input type="text" name="nom" /></label>. Une balise <label> ne peut être associée qu'un et un seul élément de formulaire ; mais plusieurs balises <label> peuvent être associées à un même élément. 6. Regrouper des éléments de formulaire : les balises <fieldset> et <legend> On peut organiser les éléments d'un formulaire en groupes et attribuer un intitulé à chaque groupe. Pour créer un groupe, on insère tous les éléments concernés dans une balise <fieldset>. Puis, on insère dans ce <fieldset> un élément <legend> dont le contenu est l'intitulé du groupe. Le navigateur peut, parfois, afficher les groupes d'une manière particulière, comme les encadrer d'une bordure. La balise <legend> ne peut être utilisée que dans une balise <fieldset>. L'attribut align de <legend> permet d'indiquer au navigateur l'emplacement de la légende par rapport au groupe de champs. Ses valeurs possibles sont top, bottom, left et right. 7. Mise en page d'un formulaire Avec un tableau. La mise en page d'un formulaire peut être effectuée à l'aide d'un tableau, avec une colonne pour les intitulés des éléments et une colonne pour les éléments eux-mêmes. En voici un exemple, et le code HTML correspondant. Le code HTML correspondant : 23

Par les styles CSS. La mise en page d'un formulaire peut aussi être effectuée directement grâce aux styles CSS. Voici un exemple complet de menu. 24

Le code HTML correspondant : 25

Le code CSS correspondant : 26

1. Application Créez, à l'aide des styles CSS ou avec un tableau, le formulaire dont la copie d'écran est la suivante : 27