Programmation!web!1!

Transcription

Programmation!web!1!
!
!
!
!
Ministère!de!l’Enseignement!Supérieur,!
et!de!la!Recherche!Scientifique!
Direction!Générale!des!Etudes!Technologiques!
Institut!Supérieur!des!Etudes!Technologiques!de!Djerba!
!
Programmation!web!1!
SUPPORT!DE!COURS!
!!!!!!
MAEL!SALAH!JRAD!(ASSISTANTE!TECHNOLOQUE!A!ISET!DE!
DJERBA)!
Public!cible!:!
Classe!de!1ère!année!
Licence!:!Technologies!de!l’informatique!
Parcours!:!Tronc!commun!(TC)!
!
!
!
!
!
!
Version!2014!
!
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!AVANT!PROPOS!
!
!
!
Le! présent! support! de! cours! «! Programmation! Web! 1! »! est! destiné! aux! étudiants!
informaticiens,!d'un!cycle!court,!des!instituts!supérieurs!des!études!technologiques.!
!
!
La!préparation!de!ce!support!a!été!faite!conformément!au!programme!approuvé!par!
la! Direction! Générale! des! Etudes! Technologiques! et! en! collaboration! avec! les! collègues!
suivants!:!
Olfa!Hamrouni!(Technologue)!
Mouna!kort!!(Technologue)!
!
!
!
FICHE!DESCRIPTIVE!DE!LA!MATIERE!:!PROGRAMMATION!WEB1!
Domaine!de!formation!:!!!!!!!!!
Mention!:!
Parcours!:!
Semestre!:!
Unité!d’enseignement!:!
Volume!horaire!:!
Coefficient!:!
!
Sciences!et!technologies!
Technologie!de!l’informatique!(TI)!
Tronc!commun!(TC)!
S1!
Développement!Web!et!Multimédia!1!
21!heures!(CI)!
2!
!
Résumé!
Ce! cours! est! destiné! aux! étudiants! disposant! de! quelques! notions! de! programmation!
procédurale,!pour!leur!fournir!les!notions!de!base!pour!utiliser!efficacement!les!feuilles!de!style!
dans!la!conception!de!site!web!en!respectant!les!bonnes!
pratiques.!
!
!
Objectifs!
•! Introduire!des!terminologies!liées!au!développement!web!
•! Connaitre!la!syntaxe!du!langage!HTML5!
•! Connaitre!la!syntaxe!du!langage!CSS3!
•! Comprendre!les!technique!de!référencement!
!
PréSrequis!
•! Connaissances!générales!sur!l’Internet!et!le!Web!
!
Evaluation!
•! Devoir!de!contrôle!!
•! Examen!
•! Travaux!personnalisés!
!
Moyens!pédagogiques!
•! Tableau!
•! Fascicule!de!Travaux!dirigés!!
!
Méthodologies!
•! Le!cours!s’articule!autour!des!séances!de!travaux!dirigés.!
•! Les!TP!sont!distribués!aux!étudiants.!
!
!
SUPPORT!DE!COURS!«!PROGRAMMATION!WEB!1!»!
!
!
Sommaire!
!
CHAPITRE!I!:!INTRODUCTION!AU!WEB!....................................................................................................!2!
1.!
INTRODUCTION!...........................................................................................................................!2!
2.!
DEFINITION!..................................................................................................................................!3!
3.!
PRINCIPE!......................................................................................................................................!3!
4.!
EVOLUTION!DU!WEB!...................................................................................................................!4!
1.1.!
WEB!1.0![1995d>2003]!.........................................................................................................!4!
1.2.!
WEB!2.0![2003!d>!2008]!.......................................................................................................!5!
1.3.!
WEB!3.0!![2008!d>!???]!........................................................................................................!7!
5.!
LES!ETAPES!DE!DEVELOPPEMENT!D’UN!SITE!WEB!......................................................................!7!
5.1.!
PLANIFICATION!DU!TRAVAIL!DE!DEVELOPPEMENT!:!...........................................................!7!
5.2.!
MISE!EN!ŒUVRE!:!................................................................................................................!7!
5.3.!
CONCEPTION!:!.....................................................................................................................!8!
5.4.!
REALISATION!:!.....................................................................................................................!8!
6.!
L'HEBERGEMENT!.........................................................................................................................!9!
6.1.!
DEFINITION!..........................................................................................................................!9!
6.2.!
TYPES!D’HEBERGEMENT!......................................................................................................!9!
6.3.!
LE!REFERENCEMENT!..........................................................................................................!10!
CHAPITRE!2!:!LE!LANGAGE!XHTML!........................................................................................................!14!
1.!
HISTORIQUE!!..............................................................................................................................!14!
2.!
XHTML!EN!TANT!QUE!LANGAGE!DE!BALISAGE!..........................................................................!15!
3.!
HTML!OU!XHTML!?!....................................................................................................................!15!
4.!
LA!DIFFERENCE!ENTRE!HTML!ET!XHTML!...................................................................................!15!
5.!
LES!EDITEURS!HTML!!!................................................................................................................!16!
5.1.!
LES!EDITEURS!VISUELS!.......................................................................................................!17!
5.2.!
LES!EDITEURS!CLASSIQUES!................................................................................................!17!
6.!
!
LA!STRUCTURE!DE!BASE!D’UN!DOCUMENT!XHTML!..................................................................!17!
6.1.!
L’ELEMENT!RACINE!<HTML>!.............................................................................................!18!
6.2.!
L’ELEMENT!<HEAD>!:!ENdTETE!D’UN!DOCUMENT!.............................................................!18!
6.3.!
L’ELEMENT!<BODY>!:!LE!CORPS!DU!DOCUMENT!..............................................................!20!
SUPPORT!DE!COURS!«!PROGRAMMATION!WEB!1!»!
!
CHAPITRE!3:!MISE!EN!FORME,!LISTE!ET!TABLEAU!.................................................................................!22!
1.!
LES!TITRES!..................................................................................................................................!22!
2.!
LES!DIVISIONS!DE!LA!PAGE!........................................................................................................!22!
3.!
LES!STYLES!PHYSIQUES!..............................................................................................................!23!
4.!
LES!LISTES!..................................................................................................................................!24!
4.1.!
LES!LISTES!ORDONNEES!.....................................................................................................!24!
4.2.!
LES!LISTES!A!PUCES!............................................................................................................!25!
4.3.!
LES!LISTES!DE!DEFINITIONS!...............................................................................................!25!
5.!
LES!TABLEAUX!...........................................................................................................................!26!
5.1.!
LA!STRUCTURE!GENERALE!D’UN!TABLEAU!........................................................................!26!
5.2.!
LES!ATTRIBUTS!DE!LA!BALISE!<TABLE>!..............................................................................!27!
5.3.!
L'ALIGNEMENT!DU!CONTENU!DES!CELLULES!....................................................................!28!
5.4.!
LA!FUSION!DES!CELLULES!..................................................................................................!29!
CHAPITRE!4!:!IMAGES,!AUDIO,!VIDEO!ET!LIENS!HYPERTEXTES!.............................................................!31!
1.!
LES!IMAGES!...............................................................................................................................!31!
1.1.!
LES!TYPES!D’IMAGES!.........................................................................................................!31!
1.2.!
L’INSERTION!D’IMAGES!.....................................................................................................!31!
2.!
L'AUDIO!.....................................................................................................................................!32!
3.!
LA!VIDEO!....................................................................................................................................!33!
4.!
LES!LIENS!HYPERTEXTES!............................................................................................................!34!
4.1.!
DEFINITION!........................................................................................................................!34!
4.2.!
LES!LIENS!EXTERNES!..........................................................................................................!35!
4.3.!
Les!liens!INTERNES:!les!ancres!/!LES!SIGNETS!...................................................................!36!
4.4.!
LES!LIENS!DECLENCHANT!L’ENVOI!D’UN!EdMAIL!...............................................................!38!
1.!
LES!NOUVEAUX!OBJETS!.............................................................................................................!39!
2.!
LES!NOUVEAUX!ATTRIBUTS!.......................................................................................................!39!
CHAPITRE!5:!LES!FORMULAIRES!............................................................................................................!40!
1.!
INTRODUCTION!.........................................................................................................................!40!
2.!
STRUCTURE!D’UN!FORMULAIRE!................................................................................................!40!
3.!
LES!ATTRIBUTS!DE!L’ELEMENT!<FORM>!....................................................................................!41!
3.1.!
L’ATTRIBUT!ID!....................................................................................................................!41!
3.2.!
L’ATTRIBUT!ACTION!...........................................................................................................!41!
3.3.!
L’ATTRIBUT!!METHOD!........................................................................................................!41!
4.!
!
LES!ELEMENTS!INTEGRES!DANS!L'ELEMENT!FORM!...................................................................!42!
SUPPORT!DE!COURS!«!PROGRAMMATION!WEB!1!»!
!
4.1.!
LES!BOUTONS!D’ENVOI!OU!DE!SOUMISSION!....................................................................!42!
4.2.!
LES!BOUTONS!DE!REINITIALISATION!.................................................................................!42!
4.3.!
LES!BOUTONS!GRAPHIQUES!..............................................................................................!43!
4.4.!
LES!ZONES!DE!SAISIE!DE!TEXTE!UNILIGNES!.......................................................................!44!
4.5.!
LES!ZONES!DE!SAISIE!DE!MOT!DE!PASSE!...........................................................................!46!
4.6.!
LES!ZONES!DE!SAISIE!DE!TEXTE!LONG!...............................................................................!46!
4.7.!
LES!BOUTONS!RADIO!ET!LES!CASES!A!COCHER!.................................................................!47!
4.8.!
LES!LISTES!DE!SELECTION!..................................................................................................!50!
4.9.!
LES!ZONES!CACHEES!..........................................................................................................!54!
4.10.!
5.!
LES!ZONES!FILE!..............................................................................................................!54!
APPORTS!DU!HTML5!.................................................................................................................!55!
5.1.!
LES!NOUVEAUX!OBJETS!.....................................................................................................!55!
5.2.!
LES!NOUVEAUX!ATTRIBUTS!...............................................................................................!56!
CHAPITRE!6!:!INTRODUCTION!AU!CSS!...................................................................................................!59!
1.!
LES!AVANTAGES!DES!CSS!...........................................................................................................!59!
2.!
LA!SYNTAXE!...............................................................................................................................!59!
3.!
LES!SELECTEURS!........................................................................................................................!60!
3.1.!
LA!SELECTION!D’UN!SEUL!ELEMENT!..................................................................................!60!
3.2.!
LA!SELECTION!DE!PLUSIEURS!ELEMENTS!...........................................................................!60!
3.3.!
LE!SELECTEUR!UNIVERSEL!.................................................................................................!61!
3.4.!
LES!CLASSES!.......................................................................................................................!61!
3.5.!
L'APPLICATION!DE!PLUSIEURS!CLASSES!AU!MEME!ELEMENT!...........................................!62!
3.6.!
LE!SELECTEUR!D’IDENTIFIANT!ID!.......................................................................................!63!
3.7.!
LES!PSEUDOdCLASSES!ET!LES!PSEUDOdELEMENTS!.............................................................!63!
4.!
OU!ECRIRE!LES!STYLES!?!............................................................................................................!65!
4.1.!
MANIERE!1!:!DANS!L’ELEMENT!<STYLE>!............................................................................!65!
4.2.!
Manière!2!:!dans!un!fichier!externe!..................................................................................!66!
CHAPITRE!7!:!PROPRIETES!DE!MISE!EN!FORME!ET!DE!LISTES!................................................................!69!
1.!
LES!UNITES!DE!MESURE!DE!LONGUEUR!EN!CSS!........................................................................!69!
2.!
LES!PROPRIETES!DE!FORMATAGE!DE!TEXTE!..............................................................................!70!
2.1.!
LES!POLICES,!TAILLE!ET!DECORATION!...............................................................................!70!
2.2.!
L'ALIGNEMENT!..................................................................................................................!71!
3.!
LES!PROPRIETES!DE!COULEUR!ET!DE!FOND!...............................................................................!72!
3.1.!
!
LES!COULEURS!...................................................................................................................!72!
SUPPORT!DE!COURS!«!PROGRAMMATION!WEB!1!»!
!
3.2.!
4.!
LES!IMAGES!DE!FOND!........................................................................................................!72!
LES!PROPRIETES!DES!LISTES!.......................................................................................................!74!
CHAPITRE!8!:!PROPRIETES!DE!BOITES,!DE!TABLEAUX,!D'AFFICHAGE!ET!DE!POSITIONNEMENT!...........!76!
1.!
1.1.!
LES!DIMENSIONS!...............................................................................................................!76!
1.2.!
LES!BORDURES!...................................................................................................................!76!
1.3.!
LES!MARGES!EXTERIEURES!................................................................................................!77!
1.4.!
LES!MARGES!INTERIEURES!................................................................................................!77!
2.!
LES!PROPRIETES!DES!TABLEAUX!................................................................................................!78!
3.!
LES!PROPRIETES!DE!POSITIONNEMENT!ET!D'AFFICHAGE!.........................................................!78!
3.1.!
LES!PROPRIETES!D'AFFICHAGE!..........................................................................................!78!
3.2.!
LES!PROPRIETES!!DE!POSITIONNEMENT!............................................................................!79!
4.!
!
LES!PROPRIETES!DES!BOITES!.....................................................................................................!76!
LA!propriété!CURSOR!................................................................................................................!81!
SUPPORT!DE!COURS!«!PROGRAMMATION!WEB!1!»!
!
CHAPITRE!1
INTRODUCTION!AU!WEB
!
!
PRESREQUIS!:!
!
Aucun!
OBJECTIFS!GENERAUX!:!
!
Introduire!la!notion!d’Internet!ainsi!que!ses!services.!
!
Présenter!les!étapes!et!les!techniques!de!création!d’un!site!web.!
PLAN!:!
I.
II.
III.
IV.
V.
VI.
VII.
INTRODUCTION!
DEFINITION!
PRINCIPE!
EVOLUTION!DU!WEB!
LES!ETAPES!DE!DEVELOPPEMENT!D’UN!SITE!WEB!
L'HEBERGEMENT!
LE!REFERENCEMENT!!
!
[NOM!DE!L’AUTEUR]!
!
1!
SUPPORT!DE!COURS!«!PROGRAMMATION!WEB!1!»!
!
CHAPITRE!I!:!INTRODUCTION!AU!WEB!
!
1.! INTRODUCTION!
!
!
Le!Web!n’est!qu’une!des!applications!d’Internet.!Il!existe!d’autres!applications!qui!sont:!
!!FTP!(File!Transfer!Protocol)!
Le!protocole!FTP!permet!d’établir!une!connexion!temporaire!entre!deux!machines!pour!
échanger! ou! télécharger! des! fichiers.! Les! fichiers! peuvent! être! des! programmes,! des!
fichiers!textes,!des!images,!des!séquences!vidéo,!de!la!musique,!des!logiciels,!etc.!
!! MESSAGERIE!ELECTRONIQUE!
La! messagerie! s’utilise! soit! avec! un! logiciel! de! messagerie! spécifique! soit! avec! un!
navigateur! qui! intègre! ces! fonctionnalités.! La! messagerie! est! basée! sur! différents!
protocoles!:!protocole!SMTP!(Simple!Mail!Transfer!Protocol),!POP!(Post!Office!Protocol).!
Généralement,! chaque! internaute! dispose! d’une! adresse! mail! reconnaissable! au!
caractère!@.!
!! USENET!
Il!est!appelé!aussi!news!ou!newsgroup!ou!groupe!de!discussion!ou!conférence!répartie.!
Les!news!sont!des!forums!fédérés!par!thèmes,!où,!pendant!un!temps!donné,!les!courriers!
sont!conservés!sur!un!serveur.!Les!news!ne!sont!pas!envoyés!à!tous!les!utilisateurs!mais!
stockées!sur!des!ordinateurs!dédiés!à!cette!fonction.!La!consultation!des!news!résulte!
d’une!démarche!volontaire!de!l’utilisateur.!
!! TELNET!
Ce! service! est! appelé! aussi! émulation! de! terminal.! Il! s’agit! d’une! connexion! à! un!
ordinateur! éloigné.! Ce! service! assure! le! travail! en! mode! réparti,! c'estdàddire! qu’il! est!
possible!d’utiliser!les!ressources!offertes!par!la!machine!distante.!
!! CHAT!
Il!est!appelé!aussi!tchatte!ou!bavardage.!C’est!un!lieu!de!dialogue!en!directe!avec!d’autres!
utilisateurs!du!web!sur!des!sujets.!Il!existe!plusieurs!façons!de!chatter,!la!plus!classique!
consiste!à!se!connecter!à!un!serveur!IRC!(protocole!Internet!Relay!Chat)!avec!un!logiciel!
[NOM!DE!L’AUTEUR]!
!
2!
SUPPORT!DE!COURS!«!PROGRAMMATION!WEB!1!»!
!
spécialisé! (MSN! par! exemple),! de! choisir! un! pseudo! puis! de! répondre! en! direct! aux!
phrases!qui!s’affichent!à!l’écran.!!
2.! DEFINITION!
!
!
Le!Web!ou!le!World!Wide!Web!ou!le!WWW!ou!le!3W!ou!la!toile!d’araignée,!est!une!source!
phénoménale!d'information.!Il!s'agit!d'un!système!d'information!hypermédia.!Il!est!constitué!
de!documents!MULTIMEDIAS!(pages!de!textes!enrichies!de!sons,!graphiques,!images!fixes!et!
animées,!vidéos,!etc...)!qui!sont!reliés!entre!eux!par!des!liens!HYPERTEXTE.!!
Ainsi!dans!les!pages!qui!composent!un!site!web,!chaque!mot!souligné!voire!certaines!images,!
est! un! lien! hypertexte! cliquable! assurant! l’affichage! d’un! autre! document.! Ce! document!
pouvant!être!localisé!sur!n’importe!quel!ordinateur!du!réseau.!Des!documents!contiennent!
ainsi! des! références! sur! d'autres! documents,! créant! une! toile! d'araignée! de! documents!
recouvrant!le!monde.!!
Le!Web!a!été!inventé!plusieurs!années!après!Internet,!mais!c’est!lui!qui!a!rendu!le!grand!public!
attentif!à!Internet.!Depuis,!le!Web!est!fréquemment!confondu!avec!Internet.!!
3.! PRINCIPE!
!
Le!Web!se!base!sur:!
!! Le!protocole!HTTP!
Un! protocole! de! communication! est! un! ensemble! de! contraintes! et! de! règles!
permettant! d'établir! une! communication! entre! deux! entités.! HTTP! s’agit! de!
l’abréviation!de!HyperText!Transfer!Protocol!
!! Le!langage!HTML!
HTML!s’agit!de!l’abréviation!de!HyperText!Markup!Language.!C’est!un!langage!à!balises!
permettant!de!doter!certains!mots!ou!images!d’une!propriété!d’hyperlien.!
!! Les!adresses!URL!
Une!adresse!URL!(Uniform!Resource!Locator)!localise!les!pages!HTML!ou!fichiers!HTML!
qui!existent!dans!des!serveurs.!L’URL!est!le!reflet!de!la!structuration!des!informations!
sur!le!plan!informatique!et!leur!emplacement!sur!le!disque!dur!du!serveur.!L’URL!peut!
[NOM!DE!L’AUTEUR]!
!
3!
SUPPORT!DE!COURS!«!PROGRAMMATION!WEB!1!»!
!
être!une!adresse!simple!(généralement!l’adresse!d’une!page!d’accueil)!ou!une!adresse!
compliquée.!
Exemples:!
Exemple!d’adresse!simple!:!http://www.yahoo.fr!
Exemple!d’adresse!compliquée!:!
!
!! Un!logiciel!de!navigation!
Pour!consulter!le!web,!il!faut!disposer!d’un!logiciel!de!navigation!appelé!aussi!browser.!
Ce!logiciel!fonctionne!avec!le!principe!de!client/serveur.!Le!browser!sur!le!poste!de!
travail!est!le!client,!la!machine!distante!sera!le!serveur.!!
Les!navigateurs!les!plus!répandus!aujourd’hui!sont!les!logiciels!proposés!gratuitement!:!
Internet! Explorer! (Microsoft),! Firefox! (Mozilla),! Netscape! Navigator,! Opéra,! google!
chrome,!etc.!
Ces! navigateurs! permettent! de! «! surfer! »! sur! le! Web! en! utilisant! les! hyperliens.! Ils!
permettent! également! d’accéder! à! des! outils! de! recherche! d’informations! appelés!
généralement!les!moteurs!de!recherche.!
4.! EVOLUTION!DU!WEB!
1.1.!WEB!1.0![1995S>2003]!
!Le!Web1.0!était!la!1ère!génération!du!web.!Il!comprenait!des!pages!statiques.!On!prenait!
de!la!communication!papier!et!on!la!transférait!sous!forme!numérique!dans!des!pages!
html! qui! étaient! rarement! mises! à! jour! voir! jamais.! L’internaute! n’est! alors! qu’un!
spectateur,!extérieur!à!l’information.!
Puis!les!sites!web!sont!devenus!plus!dynamiques!grâce!notamment!à!l'avènement!des!
CMS!(Content!Management!System=système!de!gestion!de!contenu)!permettant!de!créer!
des! pages! web! à! la! volée.! Un! système! de! gestion! de! contenu! ou! SGC! (Content!
[NOM!DE!L’AUTEUR]!
!
4!
SUPPORT!DE!COURS!«!PROGRAMMATION!WEB!1!»!
!
Management!System!ou!CMS)!est!une!famille!de!logiciels!destinés!à!la!conception!et!à!la!
mise!à!jour!dynamique!de!site!web.!Ils!partagent!les!fonctionnalités!suivantes!:!
!!
Ils!permettent!à!plusieurs!individus!de!travailler!sur!un!même!document!;!
!!
ils!fournissent!une!chaîne!de!publication!(workflow)!offrant!par!exemple!la!possibilité!
de!mettre!en!ligne!le!contenu!des!documents!;!
!!
Ils!permettent!de!séparer!les!opérations!de!gestion!de!la!forme!et!du!contenu.!
Dans! ce! contexte! l'internaute! est! plutôt! passif! par! rapport! au! Web! qui! est! alors! considéré!
principalement!comme!un!outil!de!diffusion!et!de!visualisation!de!données.!
1.2.!WEB!2.0![2003!S>!2008]!!
Le!Web!2.0!est!la!2ème!génération,!il!est!plus!orienté!vers!le!partage!de!données.!Il!répond!
à! la! question! :! Comment! ce! que! je! mets! en! ligne! peutdêtre! partager! avec! d’autres!
utilisateurs!?!L’internaute!n’est!plus!simplement!spectateur,!il!est!devenu!un!acteur.!Dans!
cette!optique!sont!apparus!les!forums,!les!blogs,!les!wikis,!les!flux!RSS!et!les!SPIP.!
!! Les!forums!
Un!forum!est!un!espace!de!discussion!publique!ouvert!à!plusieurs!participants.!Les!
discussions!y!sont!archivées!ce!qui!permet!une!communication!asynchrone!(c'est!ce!
qui!différencie!les!forums!de!la!messagerie!instantanée).!!
!! Les!blogs!ou!weBlog!
C’est! un! journal! personnel! en! ligne! qui! permet! à! un! internaute! de! publier!
régulièrement!des!informations!ou!de!commenter!l’actualité!sur!un!sujet.!Sa!mise!à!
jour!(blogging),!normalement!quotidienne,!est!effectuée!par!un!utilisateur!(blogger)!
n'ayant! pas! forcément! un! profil! technique.! Des! logiciels,! accessibles! via! le! web,!
permettent!de!créer!et!de!maintenir!facilement!le!blog.!
Un!blog!est!constitué!d’un!ensemble!de!billets!qui!sont!les!articles!ou!messages.!Ils!
sont! classés! par! ordre! chronologique! et! les! visiteurs! peuvent! y! laisser! des!
commentaires.!Le!billet!est!donc!la!colonne!vertébrale!du!blog.!Le!souci!quotidien!
du! blogueur! est! de! trouver! le! billet! qui! lui! permettra! d'attirer! des! millions! de!
visiteurs!sur!son!blog.!
[NOM!DE!L’AUTEUR]!
!
5!
SUPPORT!DE!COURS!«!PROGRAMMATION!WEB!1!»!
!
Plusieurs! logiciels! sont! disponibles! pour! créer! des! blogs! :! Blogger,! Typepad,!
OverBlog,!!BlogSpirit,!SkyBlog,!MovableType,!WorldPress,!Blogware,!etc.!
!! Les!wiki!
Un! wiki! est! un! site! web! dont! les! pages! sont! modifiables! par! tout! ou! partie! des!
visiteurs! du! site.! Il! permet! ainsi! l'écriture! et! l'illustration! collaboratives! de!
documents.!
Plus!techniquement,!il!s’agit!d’un!outil!de!collaboration!de!contenu!éditorial!libre!
(open!editing)!où!l’information!est!publiée!sous!une!licence!de!documentation!libre,!
c’estdàddire!qui!autorise!la!modification!et!la!libre!utilisation!des!œuvres!de!chacun!
des!auteurs.!
Le!premier!wiki!est!créé!en!1995!et!appelé!Wiki!Wiki!Web.!En!2010,!le!plus!consulté!
de!tous!les!wikis!est!l'encyclopédie!libre!"Wikipédia".!
!! Le!phénomène!de!syndication!:!les!fameux!flux!RSS!
RSS!est!un!acronyme!de!Really!Simple!Syndication!(syndication!vraiment!simple),!ou!
de!Rich!Site!Summary!(résumé!détaillé!d'un!site)!
Un!flux!(fils)!au!format!RSS!est!un!fichier!XML,!mis!à!jour!en!temps!réel,!qui!reprend!
automatiquement! les! titres! ou! le! texte! d'un! site.! Bien! souvent,! il! s'agit! de! sites!
d'actualité,!webzines,!blogs...!Le!flux!RSS!est!ensuite!intégré!dans!une!page!web!et!
affiché!sous!forme!de!liens!cliquables,!qui!renvoient!vers!le!site!auteur!du!flux.!!
Le!système!du!flux!RSS!est!utilisé!pour!diffuser!les!nouvelles!des!sites!d'information,!
ce! qui! permet! de! consulter! ces! dernières! sans! forcément! visiter! le! site,! de! les!
formater! comme! on! souhaite,! de! faire! une! présélection! des! articles,! etc.! Les!
webmasters! intègrent! ces! flux! à! leur! site! internet! pour! afficher! les! actualités!
d'autres!sites.!Les!internautes!récupèrent!des!flux!pour!lire!ces!actualités!sur!leur!
navigateur!préféré.!
Pour!lire!ces!flux!RSS,!il!faut!un!logiciel!spécialisé!appelé!agrégateur.!Ce!dernier!peut!
suivre! plusieurs! fils! de! syndication! en! même! temps.! Il! existe! plusieurs! exemples!
dont!on!cite!:!Mozilla!Thunderbird,!Esobi,!Akregator,!etc.!
!! Le!système!SPIP!
[NOM!DE!L’AUTEUR]!
!
6!
SUPPORT!DE!COURS!«!PROGRAMMATION!WEB!1!»!
!
SPIP!(Système!de!Publication!pour!l'Internet!Partagé!ou!Participatif)!est!un!logiciel!
libre!destiné!à!la!conception!de!site!Web,!de!type!système!de!gestion!de!contenu.!
SPIP!permet,!une!fois!installé!et!configuré,!!dedéfinir!l’architecture!(les!rubriques,!
l’arborescence)! ainsi! que! la! charte! graphique! d’un! site.! SPIP! permet! ainsi! de!
développer!des!sites!web!relativement!complexes!et!puissants,!sans!pour!autant!s’y!
connaître! en! programmation.! Il! vise! tout! autant! les! particuliers! que! les!
professionnels.!Une!fois!l’outil!installé,!le!ou!les!administrateurs!du!site!n’auront!
plus!qu’à!se!concentrer!sur!les!articles!à!rédiger!:!la!gestion!du!site!se!fera!au!travers!
d’une!console!d’administration!accessible!à!partir!d’un!simple!navigateur.!
1.3.!WEB!3.0!![2008!S>!???]!
Le!Web!3.0!qui!est!en!train!de!naître,!correspond!à!un!nouveau!stade!de!cette!évolution.!
Les!fils!RSS!commence!à!émerger!une!nouvelle!approche,!par!la!multiplication!des!réseaux!
sociaux!qui!relient!directement!émetteur!et!destinataire!de!l’information!
Un!réseau!social!est!un!ensemble!d'identités!sociales!(individus!ou!organisations)!reliées!
entre! elles! par! des! liens! créés! lors! des! interactions! sociales.! Il! se! représente! par! une!
structure!ou!une!forme!dynamique!d'un!groupement!social.!Alors!que!le!nombre!de!sites!
de! réseaux! sociaux! augmente! tous! les! jours,! citons! les! suivants:! Facebook! ,! FlickR,!
Youtube,!Dailymotion,!Skype,!twitter,!etc.!
5.! LES!ETAPES!DE!DEVELOPPEMENT!D’UN!SITE!WEB!
!Pour!développer!un!site!web,!les!étapes!suivantes!sont!à!suivre!:!
5.1.!PLANIFICATION!DU!TRAVAIL!DE!DEVELOPPEMENT!:!
!! Réflexion!sur!l'objectif!du!site,!sa!cible!et!les!moyens!financiers!à!engager.!
!! Réflexion!sur!les!moyens!humains!pour!faire!la!réalisation!et!la!mise!à!jour.!
!! Réflexion! sur! le! contenu! :! contenu! des! pages,! services! attendus,! principes! de!
navigation.!
5.2.!MISE!EN!ŒUVRE!:!
!!
Dépôt!d'un!nom!de!domaine.!Un!nom!de!domaine!est!un!identifiant!unique!lié!à!
une!entité!dont!les!ordinateurs!sont!reliés!au!réseau!Internet.!Le!dépôt!des!noms!
[NOM!DE!L’AUTEUR]!
!
7!
SUPPORT!DE!COURS!«!PROGRAMMATION!WEB!1!»!
!
de! domaines! se! fait! auprès! des! organismes! spécialisés! (InterNic1! pour! les!
domaines! internationaux! et! l’Afnic2! pour! la! France).! On! ne! peut! pas! joindre!
directement! ces! organismes,! il! faut! passer! par! l’intermédiaire! d’une! société!
appelée!registrar.!Il!s’agit!soit!des!prestataires!de!services!pour!les!entreprises,!soit!
d’hébergeur!de!site.!Le!service!consiste!à!réserver!un!nom!de!domaine!pour!un!
certain! nombre! d’années! avec! une! somme! d’argent! comme! contrepartie.! Le!
système!est!hiérarchique,!permettant!la!définition!de!sousddomaine(s).!
Exemples!:!tunisie.com,!bt.com.tn!
Il!existe!deux!classes!d’extension:!
!
ccTLD!(Country!Code!Top!Level!Domain):!pour!les!domaines!nationaux!
composés!de!deux!lettres!identifiant!un!pays!:!tn!(Tunisie),!fr!(France),!...!
!
gTLD! (Generic! Top! Level! Domain):! pour! les! domaines! génériques!
composés!de!trois!lettres!ou!plus!:!com,!net,!info,!org!!
!!
Choix!d'un!hébergeur.!
!!
Choix!et!installation!d'un!outil!de!développement!(SPIP,!CMS,...)!ou!d'un!éditeur!
de! site! Web! de! type! WYSIWYG! (exemples! :! NVU,! Macromedia! Dreamweaver,!
Microsoft!FrontPage,!Webself)!ou!texte!(exemple!:!Bluefish,!Emacs,!Notepad...).!
5.3.!CONCEPTION!:!
!!
Établissement!d'une!structure!de!pages!HTML!ou!XHTML!ou!CSS.!
!!
Définition!d'une!arborescence!
!!
Mise! au! point! d'une! charte! graphique.! La! charte! graphique! est! un! guide!
comprenant! les! recommandations! d’utilisation! et! les! caractéristiques! des!
différents! éléments! graphiques! (logos,! couleurs,! polices,..)! qui! peuvent! être!
utilisés! sur! les! différents! supports! de! communication! de! l’entreprise.!!
La! charte! graphique! permet! de! garantir! l’homogénéité! de! la! communication!
visuelle!au!sein!de!l’entreprise.!
5.4.!REALISATION!:!
!!
Création!de!pages!via!le!Système!de!gestion!de!contenu!ou!l'éditeur.!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1
2
INTERnet’s Network Information Center
Association Française pour le Nommage Internet en Coopération
[NOM!DE!L’AUTEUR]!
!
8!
SUPPORT!DE!COURS!«!PROGRAMMATION!WEB!1!»!
!
!!
Mise!en!place!de!la!charte!graphique!via!les!feuilles!de!styles!CSS.!
!!
Développement!dynamique!via!des!formulaires.!
6.! L'HEBERGEMENT!
6.1.!DEFINITION!
Une!fois!que!l’ensemble!des!pages!du!site!sont!créées,!il!faudra!s’assurer!qu’elles!ont!un!
aspect!identique!et!très!semblable!dans!les!différents!navigateurs!du!marché.!Si!c’est!le!
cas,! il! ne! reste! plus! qu’à! transférer! l’ensemble! des! pages! du! site! vers! le! serveur! web!
distant! qui! va! les! héberger! pour! les! mettre! à! la! disposition! de! tous.! Donc! l’opération!
d’hébergement!consiste!à!«!mettre.à.disposition.d'un.espace.disque.sur.un.serveur.web.
afin.de.diffuser.de.l'information.par.le.biais.d'un.site.web.sur.la.toile.3!»!
6.2.!TYPES!D’HEBERGEMENT!!
Il!existe!plusieurs!types!d’hébergements.!À!titre!d’exemple!on!cite!:!
!! L’hébergement!mutualisé!ou!partagé!(shared!hosting)!
Un!site!web!partage!les!ressources!d'un!serveur!avec!d'autres!sites!web.!Dans!ce!cas!
un!serveur!web!peut!héberger!jusqu'à!plusieurs!milliers!de!sites.!!
Les!avantages!d’un!tel!hébergement!sont!:!
"!Coûts!faibles!(coûts!partagés)!
"!Toutes!les!interventions!techniques!sont!à!la!charge!de!l'hébergeur!
"!Aucune!connaissance!d'administration!requise!
Par!contre,!l’inconvénient!majeur!est!que!les!performances!sont!moyennes!voire!même!
médiocres!dans!certains!cas!
!! L’hébergement!dédié!(dedicated!hosting)!
Le!client!loue!son!propre!serveur,!et!peut!l'administrer!comme!il!le!souhaite.!Ce!type!
d’hébergement! est! conseillé! pour! les! sites! ayant! un! grand! trafic! et! un! nombre! de!
visiteurs!très!élevé.!!
Les!avantages!de!cet!hébergement!sont!:!
"!Performances!exceptionnelles!
"!Autonomie!totale!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3
Source : dicodunet.com
[NOM!DE!L’AUTEUR]!
!
9!
SUPPORT!DE!COURS!«!PROGRAMMATION!WEB!1!»!
!
Par!contre,!les!inconvénients!sont!nombreux!:!
#!Coûts!importants!
#!Connaissances!d'administration!indispensables!
#! Toutes! les! interventions! techniques! sont! à! la! charge! du! client! et! sous! sa!
responsabilité!
#!Grandes!sensibilités!aux!attaques!et!aux!failles!de!sécurité!
!! L’hébergement!sur!serveur!dédié!virtuel!(virtual!dedicated!server)!
C’est!une!solution!intermédiaire!entre!l'hébergement!mutualisé!et!dédié!:!Le!serveur!
virtuel!se!comporte!(théoriquement)!comme!un!serveur!dédié,!mais!sur!des!ressources!
matérielles!physiques!mutualisées.!!
Les!avantages!de!cet!hébergement!sont!:!
"!Performances!très!bonnes!
"!Bonne!vision!de!la!consommation!en!ressources!
"!Interventions!techniques!limitées!ou!inexistantes!
"!Coûts!légèrement!réduits!par!rapport!au!serveur!dédié!
En!revanche!les!inconvénients!y!existent!:!
#!Risque!de!dégradation!des!performances!si!l'infrastructure!de!l'hébergeur!n'est!
pas!suffisamment!robuste!
#!Connaissances!d'administration!souhaitables!
6.3.!LE!REFERENCEMENT!!
6.3.1.! ANNUAIRES!ET!MOTEURS!DE!RECHERCHE!
Lorsqu’on!veut!effectuer!une!recherche!sur!Internet,!on!utilise!un!des!deux!moyens!
suivants!:!les!annuaires!de!recherche!ou!les!moteurs!de!recherche.!
!! Les!annuaires4!
Les! annuaires! ! proposent! une! liste! de! sites! Web! classée! par! catégories.! Chaque!
catégorie!s’intéresse!à!un!thème!bien!déterminé!et!elle!contient,!à!son!tour,!des!sousd
catégories!concernant!des!aspects!plus!pointus!du!thème!en!question.!Les!annuaires!
sont!de!trois!types!:!!
!! Les! annuaires! généralistes! qui! n'excluent! aucun! centre! d'intérêt.! Exemple! :!
waaaouh.com,!costaud.net,!jusseo.com,!bloc.com,!etc.!
[NOM!DE!L’AUTEUR]! 10!
!
SUPPORT!DE!COURS!«!PROGRAMMATION!WEB!1!»!
!
!! Les!annuaires!spécialisés!et!thématiques!se!penchent!exclusivement!sur!les!
sites!ou!les!pages!Web!traitant!un!certain!sujet,!ou!destinés!à!un!certain!public.!
Exemples!:!
o! Domaine!informatique!:!123dinformatique.com,!annuaire.aformaclic.fr!
o! Domaine!loisir!et!tourisme!:!annuaireddesdvacances.com,!universdnature.com!
o! Domaine!immobilier!:!immodannuaire.com,!immodimmo.com!
o! Domaine!automobile:!bestdofdauto.fr!
!! Les! annuaires! géographiques! peuvent! à! la! fois! se! révéler! généralistes! ou!
spécialisés! ;! dans! les! deux! cas,! ils! sont! relatifs! à! un! pays,! une! région,! une!
localité.!
!
!! Les!moteurs4!
Un!moteur!de!recherche!est!un!outil!permettant!de!retrouver!des!pages!Web!associées!
à!des!mots!clés!déclarés!par!l’internaute.!Google,!Wanadoo,!voila,!MSN,!AOL,!AltaVista!
et!autres!sont!des!exemples!de!moteurs!de!recherche.!!
En! fait,! un! moteur! est! constitué! de! «! robots! »,encore! appelés! bots,! spiders,!
crawlers,! ou! agents! qui! parcourent! automatiquement! les! sites! web,! suit! les!
liens!hypertextes!,!indexe!les!pages!examinées!dans!des!bases!de!données!et!enfin!les!
affiche! dans! une! liste! classée! par! ordre! décroissant! de! pertinence! des! informations!
identifiées!et!localisées.!Notant!que!le!moteur!de!recherche!Google!est!le!plus!employé!
dans!le!monde,!selon!certaines!estimations!plus!de!80!%!des!internautes!l'utilisent5.!
On! trouve! également! des! métaSmoteurs,! c'estdàddire! des! sites! Web! où! une! même!
recherche!est!lancée!simultanément!sur!plusieurs!moteurs!de!recherche.!Les!résultats!
sont! ensuite! fusionnés! pour! être! présentés! à! l'internaute.! On! peut! citer! Copernic,!
Mamma,!Kartoo,!Seek.fr,!Apollo7,!etc.!
6.3.2.! DEFINITION!DU!REFERENCEMENT!
Dans! l’absolu,! le! référencement! est! l'action! de! référencer,! c'estdàddire!
mentionner! quelque! chose! ou! y! faire! référence.! Dans! le! domaine! du! web,! le!
référencement! est! l’opération! qui! rend! votre! site! visible! parmi! les! résultats! de!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
4
Fr.wikipedia.org
Source : accesstoebusiness.com
5
[NOM!DE!L’AUTEUR]! 11!
!
SUPPORT!DE!COURS!«!PROGRAMMATION!WEB!1!»!
!
recherche!des!annuaires!et!de!moteurs.!Autrement!c’est!l’inscription!ou!l’indexation!
du! site! dans! un! annuaire! et/ou! un! moteur! de! recherche.! Il! existe! deux! types! de!
référencement!:!
!! Le! référencement! naturel! :! c'est! le! fait! de! positionner! un! site! le! plus! haut!
possible!dans!les!résultats!de!moteurs!de!recherche.!Le!positionnement!d’un!site!en!
premier!lieu!dans!les!résultats!de!recherche!dépend!de!son!titre,!de!la!qualité!de!son!
contenu,!de!la!pertinence!et!du!choix!des!mots!clés…!
!! Le! référencement! payant! ou! liens! sponsorisés! :! les! liens! sponsorisés,! liens!
commerciaux! ou! liens! promotionnels! sont! des! liens! publicitaires! apparaissant! à!
droite!ou!en!haut!des!pages!de!résultats!des!moteurs!de!recherche.!Le!référencement!
payant!est!particulièrement!recommandé!au!lancement!d'un!site!car!l'indexation!par!
les!moteurs!de!recherche!peut!prendre!plusieurs!mois.!
Dans!le!code!source!des!pages!web,!c’est!la!balise!«!méta!»!qui!est!utilisée!pour!indiquer!le!
moyen!de!référencement.!Voici!un!exemple!:!
<metaname="description") content="Les) liens) sponsorisés,) liens)
commerciaux)ou)liens)promotionnels)sont)des)liens)publicitaires)
faisant) partis) des) techniques) utilisées) en) référencement) pour)
optimiser)la)visibilité)d'un)site)Web.)Access)To)eBusiness,)agence)
de)webmarketing)en)Tunisie">)
<metaname="keywords") content="agence) referencement) Tunisie,)
agence)webmarketing)Tunisie">)
!
Le! paramètre! «! description! »! indique! une! présentation! du! site! et! le! paramètre!
«!keywords!»!donne!la!liste!des!mots!clefs!qui!définissent!le!contenu!du!site!ou!de!la!page!
en!question.!!
Ainsi! un! moteur! de! recherche! utilise! les! mots! qu'il! trouve! dans! la! description,! dans!
keywords,!dans!la!balise!TITLE!et!dans!le!texte!visible!de!la!page!pour!leur!donner!leur!
importance!nécessaire.!Donc!si!un!mot!décrit!particulièrement!bien!le!site,!il!est!important!
qu'on!le!retrouve!dans!ces!paramètres.
[NOM!DE!L’AUTEUR]! 12!
!
PROGRAMMATION!WEB!1!!
!
CHAPITRE!2!:!LE!LANGAGE!XHTML!!!!!!
!
CHAPITRE!2
LE!LANGAGE!XHTML
!
!
PRESREQUIS!:!
!
Notions!de!base!de!HTML!
OBJECTIFS!GENERAUX!:!
!
Connaitre!la!syntaxe!des!principales!balises!du!langage!HTML.!
!
S’introduire!au!langage!XHTML.!
PLAN!:!
I. HISTORIQUE!!
II. XHTML!EN!TANT!QUE!LANGAGE!DE!BALISAGE!
III. HTML!OU!XHTML!?!
IV. LA!DIFFERENCE!ENTRE!HTML!ET!XHTML!!
V. LES!EDITEURS!HTML!
1.!LES!EDITEURS!VISUELS!
2.!LES!EDITEURS!CLASSIQUES!
VI. LA!STRUCTURE!DE!BASE!D’UN!DOCUMENT!XHTML!!
1. L’ELEMENT!RACINE!<HTML>!
2. L’ELEMENT!<HEAD>!:!ENdTETE!D’UN!DOCUMENT!!
3. L’ELEMENT!<BODY>!:!LE!CORPS!DU!DOCUMENT!!
!
[NOM!DE!L’AUTEUR]! 13!
!
PROGRAMMATION!WEB!1!!
!
CHAPITRE!2!:!LE!LANGAGE!XHTML!!!!!!
!
CHAPITRE!2!:!LE!LANGAGE!XHTML!
!
1.! HISTORIQUE!6!
Historiquement,!les!langages!de!balisage!sont!issus!du!langage!SGML!(Standard!Generalized!
Markup!Language)!créé!en!1986!pour!structurer!des!contenus!très!divers.!Ce!langage!s’est!
révélé!trop!complexe!pour!être!appliqué!au!Web,!d’où!la!nécessité!d’en!créer!une!version!
allégée!respectant!les!mêmes!principes!essentiels.!C’est!au!début!des!années!90,!en!1992,!que!
le!CERN!(Centre!Européen!de!Recherche!Nucléaire)!rend!public!le!projet!World!Wide!Web.!Ce!
projet!consistait!à!définir!un!langage!de!présentation!de!documents!hypertextes,!dérivé!de!
SGML! :! HTML! =! HyperText! Markup! Language,! ainsi! qu'un! protocole! de! transfert! de! ces!
documents!:!HTTP!=!HyperText!Transfert!Protocol.!!
HTML!est!un!langage!de!description!et!de!structuration!de!documents!hypertextes.!Ce!langage!
est!basé!sur!une!syntaxe!de!balisage!très!simple.!Il!est!clair!que!depuis!sa!première!version,!ce!
langage!a!bien!évolué,!surtout!avec!l’apparition!des!feuilles!de!styles!CSS!(Cascading!Styles!
Sheets)! en! 1996.! C’est! avec! ces! feuilles! de! styles! qu’il! y! a! eu! une! vraie! séparation! entre!!
l’information!(contenu!des!documents!HTML)!et!de!sa!présentation!(contenu!des!feuilles!de!
style).!
La!dernière!recommandation!HTML!est!en!version!4!et!particulièrement!la!version!«strict!»!
associée!avec!l’emploi!de!CSS2!publié!en!1998.!!
Quelques!mois!plus!tard,!toujours!en!1998,!le!langage!XML!(eXtensible!Markup!Language)!a!
vu!le!jour.!Son!succès!dans!de!multiples!domaines!d’application!a!conduit!le!W3C!(World!Wide!
Web! Consortium)! à! créer! le! langage! XHTML! (eXtensible! HyperText! Markup! Language)! en!
2000,!non!plus!comme!une!nouvelle!version!de!HTML,!mais!comme!une!reformulation!de!
HTML!en!tant!qu’application!XML.!Donc!le!XHTML!n'est!rien!que!du!HTML,!reformulé!de!façon!
à!respecter!les!règles!strictes!du!XML.![1]!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
6
Source : www.infini-software.com
[NOM!DE!L’AUTEUR]! 14!
!
PROGRAMMATION!WEB!1!!
!
CHAPITRE!2!:!LE!LANGAGE!XHTML!!!!!!
2.! XHTML!EN!TANT!QUE!LANGAGE!DE!BALISAGE!
Rappelons!que,!par!définition,!le!langage!HTML!ou!XHTML!est!un!outil!de!structuration!des!
documents.!Il!est!basé!sur!la!notion!de!balises!ou!marqueurs.!Dans!un!langage!de!balisage,!
tout!contenu,!qu’il!s’agisse!de!texte,!d’image!ou!d’éléments!multimédias,!doit!être!renfermé!
dans! un! élément.! En! XHTML,! chaque! élément,! appelé! «! balise! »,! a! un! nom! et! la! liste! des!
éléments!utilisables!est!clairement!définie!dans!la!DTD!(Document!Type!Definition)!liée!à!la!
version!utilisée!du!langage.!Généralement,!une!balise!a!la!structure!suivante!:!
<nom_balise) attribut1="valeur1") attribut2="valeur2") >) Contenu_balise)
</nom_balise>)
Les!attributs!de!chaque!balise!précisent!ses!caractéristiques.!Il!peut!s’agir!par!exemple!de!la!
définition!de!la!largeur,!de!la!hauteur!ou!de!l’alignement!du!contenu.!
3.! HTML!OU!XHTML!?!
L’utilisation!du!HTML!strict,!et!plus!encore!du!XHTML!s’impose!de!plus!en!plus.!De!plus,!une!
page!web!respectant!les!normes!rigoureuses!du!HTML!strict,!ou!encore!du!XHTML,!sera!plus!
pertinente!pour!les!moteurs!de!recherche,!mieux!interprétée!par!les!navigateurs!graphiques!
actuels! et! accessible! à! tout! le! monde7.! En! effet,! il! existe! des! règles! de! base! XHTML! qui!
imposent! aux! développeurs! de! pages! web! de! respecter! les! spécifications! indiquées! par! le!
W3C.!Plus!ces!recommandations!sont!appliquées!rigoureusement!dans!les!pages!web,!plus!
ces!dernières!ont!la!possibilité!d’être!facilement!référenciées!et!indexées!par!les!moteurs!de!
recherche.!
Parmi!ces!règles,!on!cite!:!
-! Document!«!bien!formée!»!
-! Document!«!conforme!»!
-! Document!«!valide!»!
4.! LA!DIFFERENCE!ENTRE!HTML!ET!XHTML!!
Les!différences!entre!HTML!et!XHTML!viennent!essentiellement!de!la!syntaxe!qui!doit!être!
beaucoup!plus!propre!en!XHTML.!Voici!donc!les!points!qu'il!faut!obligatoirement!respecter:!
!!
Toutes!les!balises!doivent!avoir!une!fermeture!mais!également!les!balises!qui!n'ont!pas!
de!balises!fermantes.!On!aura!donc!<br!/>,!<img!/>,!etc.!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
7
Source : openweb.eu.org
[NOM!DE!L’AUTEUR]! 15!
!
PROGRAMMATION!WEB!1!!
!!
!
CHAPITRE!2!:!LE!LANGAGE!XHTML!!!!!!
Il! faut! respecter! les! règles! d'imbrication! des! éléments! comme! par! exemple! "<p>Le!
langage!
<strong>XHTML</strong></p>"!
et!
non!
pas!
"<p>Le!
langage!
<strong>XHTML</p></strong>".!
!!
Les!balises!et!attributs!doivent!être!entièrement!en!minuscules.!Les!valeurs!ne!sont!
pas!concernées!par!cette!règle!mais!doivent!par!contre!être!toujours!entre!guillemets.!
Il!faut!également!savoir!que!les!attributs!en!formes!abrégées!sont!interdits.!!
Exemple!:!
! <metaname="Keywords"content="langage,)xhtml,)html"/>)
!!
L'attribut! "name"! est! remplacé! par! l'attribut! "id".! Cependant,! pour! certains! anciens!
navigateurs!qui!ne!reconnaissent!que!très!partiellement!l'attribut!"id",!il!convient!de!
mettre!les!deux!à!la!fois.!!
Exemple!:!
! <h1name="titre"id="titre">Langage)XHTML</h1>)
!!
L'attribut!"name"!n'est!plus!utilisable!avec!les!éléments!a,!applet,!form,!frame,!iframe,!
img,!et!map.!
!!
Pour!déclarer!un!document!XHTML!1.1!et!auddelà,!on!écrira:!
! <html)xmlns="http://www.w3.org/1999/xhtml")xml:lang="fr">)
5.! LES!EDITEURS!HTML!!8!
Un! éditeur! HTML! (ou! éditeur! Web)! est! un! logiciel! conçu! pour! faciliter! la! préparation! et! la!
modification!de!documents!écrits!en!Hypertext!markup!language!(HTML).!Un!document!HTML!
est!le!principal!composant!d'une!page!Web.!!
L'édition!des!images,!des!animations!ou!du!son!sont!effectuées!avec!les!logiciels!appropriés.!
Un! éditeur! HTML! ne! sert! qu'à! disposer! ces! ressources! dans! une! page! Web.! Il! existe! deux!
catégories!d'éditeur!:!
-!Les!éditeurs!teldtel!(WYSIWYG)!ou!visuels!
-!Les!éditeurs!de!texte!ou!classiques!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
8
Source : wikipédia.org
[NOM!DE!L’AUTEUR]! 16!
!
PROGRAMMATION!WEB!1!!
!
CHAPITRE!2!:!LE!LANGAGE!XHTML!!!!!!
5.1.!!LES!EDITEURS!VISUELS!
Un! éditeur! visuel! permet! d'éditer! une! page! Web! comme! elle! apparaît! dans!
les! navigateurs! courants.! Il! propose! les! fonctions! classiques! des! traitements! de! texte!
WYSIWYG.! Ses! deux! principaux! avantages! sont! la! facilité! d'utilisation! et! l'observation!
immédiate! du! rendu! graphique.! Par! contre,! ses! deux! principaux! inconvénients! sont! le!
manque! de! maîtrise! sur! la! qualité! du! document! HTML! produit! et! les! risques!
d'incompatibilité!avec!des!navigateurs!non!prévus!par!l'éditeur.!Exemple!:!Adobe!GoLive,!
Adobe!Dreamweaver,!BlueGriffon,!Komodo,!KompoZer,!Netlor…!
5.2.!LES!EDITEURS!CLASSIQUES!
Ces! éditeurs! éditent! directement! en! langage! HTML! :! le! code! y! apparaît! et! y! est! traité!
comme!du!texte.!Ils!requièrent!donc!une!compétence!dans!ce!langage.!En!contrepartie,!
ils!permettent!à!un!utilisateur!compétent!de!s'assurer!de!la!qualité!du!document!produit.!!
Exemple:!Bluefish,!Ecoder,!Htmledit,!HTML!Kit,!Notepad++,!PSPad,!Quanta+.!
Remarque! :! certains! éditeurs! sont! visuels! mais! avec! accès! au! mode! texte.! En! fait,!
ils!!combinent!les!deux!éditeurs!présentés!ciddessus.!Exemple!:!Nvu.!
6.! LA!STRUCTURE!DE!BASE!D’UN!DOCUMENT!XHTML!!
Le!squelette!d’un!document!HTML!est!le!suivant!:!
<!DOCTYPE)html)PUBLIC)"[//W3C//DTD)XHTML)1.1//EN")
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">)
<html>)
<head>))Informations)d’entête)</head>)
<body>)
))Corps)de)la)page)XHTML)
</body></html>!
!
!! La! déclaration!DOCTYPE! est!obligatoire!dans! tout!document.!Elle!précise! le!type!de!
document!qui!va!être!créé,!la!DTD!à!laquelle!il!va!se!conformer!et!l’adresse!du!fichier!
xhtml11.dtd!qui!contient!la!DTD!elledmême.!Rappelons!que!la!DTD!est!l’ensemble!des!
règles!qui!précisent!«!la!grammaire!du!langage!».!
!! Les!informations!d’entête!sont!:!
-! le!titre:!exprimé!par!la!balise!TITLE!
[NOM!DE!L’AUTEUR]! 17!
!
PROGRAMMATION!WEB!1!!
!
CHAPITRE!2!:!LE!LANGAGE!XHTML!!!!!!
-! les!balises!méta:!exprimées!par!la!balise!META!
-! les!objets!liés:!exprimés!par!la!balise!LINK!
-! les!scripts:!exprimés!par!la!balise!SCRIPT!
!! Le!corps!contient!tout!ce!qui!apparaîtra!dans!la!fenêtre!du!navigateur.!
Remarque! :! Il! est! toujours! utile! de! commenter! un! code! XHTML,! comme! tout! code!
informatique! d’ailleurs,! pour! en! permettre! une! meilleure! compréhension,! en! particulier!
quand!on!souhaite!le!relire!un!certain!temps!après!l’avoir!écrit.!Pour!le!faire,!il!faut!utiliser!les!
symboles!:!"<!dd"!au!début!du!commentaire!et!"dd>"!à!la!fin!de!celuidci.!,!Tout!ce!qui!est!écrit!
comme!commentaires!sera!ignoré!par!le!navigateur.!
Dans!ce!qui!suit,!on!détaillera!chacune!des!balises!déjà!mentionnées!en!exemple!ciddessus.!
6.1.!L’ELEMENT!RACINE!<HTML>!
C’est! l’élément! <html>! qui! est! l’élément! racine! du! document.! C’est! donc! lui! qui! est! le!
parent! de! tous! les! autres.! L’élément! <html>! est! donc! le! conteneur! de! premier! niveau!
placé!en!haut!de!la!hiérarchie!de!tous!les!éléments!du!document.!Il!n’existe!que!deux!
éléments! enfants! de! l’élément! <html>:head! et! body.! L’élément! racine! possède! trois!
attributs!facultatifs:!xml:lang,!dir!et!xmlns.!
6.2.!L’ELEMENT!<HEAD>!:!ENSTETE!D’UN!DOCUMENT!!
L’élément! <head>! englobe! six! sousdéléments! différents! qui! ont! chacun! un! rôle! bien!
déterminé.!Il!s’agit!des!sousdéléments!:<base>,!<link>,!<meta>,!<script>,!<style>!et!<title>.!
Aucun!d’eux!n’a!de!répercussion!directement!visible!dans!la!page!et!seul!le!contenu!de!
l’élément!<title>!sera!visible,!non!dans!la!page!mais!dans!la!zone!de!titre!du!navigateur.!!
Dans!ce!qui!suit,!on!détaillera!deux!sousdéléments!inclus!dans!<head>:!
!! LE!SOUSSELEMENT!<META!/>!:!LES!METASDONNEES!
La!balise!<meta!/>!est!un!élément!dont!les!informations!ne!sont!pas!visibles!dans!la!page!
mais!elles!sont!destinées!au!serveur!web,!aux!navigateurs!et!aux!moteurs!de!recherche.!
Il! contient! 2! attributs! name! et! httpdequiv! dont! les! rôles! sont! similaires,! et! leur! valeur!
associée!est!contenue!dans!l’attribut!content!sous!la!forme!suivante!:!
<meta)name="nom1")content="valeur1")/>)
<meta)http[equiv="nom2")content="valeur2")/>)
[NOM!DE!L’AUTEUR]! 18!
!
PROGRAMMATION!WEB!1!!
!
CHAPITRE!2!:!LE!LANGAGE!XHTML!!!!!!
La! plupart! des! valeurs! des! attributs! name! et! httpdequiv! sont! des! motsdclés! qui! seront!
utilisés!par!les!moteurs!et!les!annuaires!de!recherche.!
Le!tableau!suivant!décrit!les!valeurs!possibles!de!chacun!de!ces!attributs!:!
Attribut!
Description!
name="author"!
Désigne!le!nom!de!l’auteur!de!la!page.!
name="keywords"!
Dans!ce!cas,!l’attribut!content!associé!à!name!contient!la!
liste!des!mots!clés.!Chaque!mot!ou!expression!est!séparé!
des!autres!par!une!virgule.!Il!est!important!de!choisir!ses!
motsdclés!pour!qu’ils!correspondent!au!contenu!du!site!et!
d’en! multiplier! les! variantes! dans! la! liste! de! l’attribut!
content.! Il! est! possible! de! mettre! le! même! mot! au!
singulier!et!au!pluriel,!au!masculin!et!au!féminin.!
name="description"! Indique!une!brève!description!de!l’information!contenue!
dans!le!site.!Elle!doit!être!courte,!correcte!et!concise.!!
httpd
Force!le!navigateur!à!recharger!la!page.!L’attribut!content!
equiv="refresh"!
définit!le!nombre!de!secondes!de!recharge.!Utilisé!avec!
les!sites!aux!informations!renouvelées!très!fréquemment!
(cotation!boursière,!affichage!d’heure…)!
httpd
Force!le!navigateur!à!actualiser!la!page.!L’attribut!content!
equiv="expires"!
définit!la!date!et!l’heure!de!mise!à!jour!(format!anglais!de!
date!et!heure)!
À!titre!d’exemple,!on!peut!écrire!les!codes!suivants!:!
-! Pour!afficher!une!liste!de!mots!clés!en!anglais!:!
<meta)name="keywords")content="html,xhtml,site)web")/>!
-! Pour!afficher!une!description!d’une!page!qui!sera!indexée!par!les!moteurs!de!recherche!:!
<meta) name="Description") content="Ici) se) place) le) résumé) d'un) document,)
d'une)
page)d'accueil,)le)descriptif)d'une)activité,)la)présentation)d'une)société")
/>!
-! Pour!que!le!document!sera!rechargé!toutes!les!dix!secondes!
[NOM!DE!L’AUTEUR]! 19!
!
PROGRAMMATION!WEB!1!!
!
CHAPITRE!2!:!LE!LANGAGE!XHTML!!!!!!
<meta)http[equiv="refresh")content="10"))/>!
-! Pour!que!la!page!sera!mise!à!jour!le!11!juillet!2005!à!18!h!34!min!45!en!temps!GMT!
<meta)http[equiv="expires")content="Mon,)11)Jul)2005)18:34:45)GMT")/>!
!! LE!SOUSSELEMENT!<TITLE>!:!LE!TITRE!DE!LA!PAGE!
C’est!la!balise!qui!permet!d’afficher!un!titre!de!la!page.!Ce!titre!apparaît!dans!la!barre!de!
titre!située!en!haut!de!la!fenêtre!du!navigateur!avant!même!l’affichage!complet!de!la!page!
web.! C’est! une! balise! dont! sa! présence! est! obligatoire! dans! l’élément! <head>.! Son!
contenu! est! un! simple! texte! qui! doit! résumer! le! contenu! de! la! page! en! une! ligne!
maximum.!Il!est!important!de!bien!réfléchir!à!ce!contenu!car!c’est!aussi!lui!qui!apparaîtra!
comme!titre!principal!du!site!dans!les!moteurs!de!recherche.!Il!doit!donc!être!accrocheur!
et!bien!correspondre!à!l’esprit!de!la!page.!!
Par!exemple,!on!peut!écrire!le!code!suivant!:!
<title>Le)site)de)XHTML)1.1)et)CSS)2)</title>!
L’exemple! suivant! donne! un! code! possible! de! la! balise! <head>! avec! quelques! sousd
éléments!:!
<head>)
<title>Titre)de)la)page</title>)
<meta)name="Author")content="Jean)ENGELS")/>)
</head>!
6.3.!L’ELEMENT!<BODY>!:!LE!CORPS!DU!DOCUMENT!!!
L’élément!<body>!est!le!conteneur!de!l’ensemble!des!éléments!textuels!et!graphiques!
d’une!page!web.!Les!mots!clés!suivants!donnent!la!liste!exhaustive!de!toutes!les!balises!
qui!peuvent!être!incluses!directement!dans!l’élément!<body>!:!!
Address!–!blockquote!–!del!–!div!–!dl!–!fieldset!–!form!d!h1!d!h2!d!h3!d!h4!d!h5!d!h6!d!hr!–!
ins!–!ol!–!noscript!–!p!–!pre!–!script!–!table!–!ul!!
Tout!autre!élément!y!est!interdit!et!le!respect!de!cette!liste!est!une!convention!primaire!
de! validation! d’un! document! XHTML.! Les! éléments! ne! figurant! pas! dans! cette! liste!
doivent!d’abord!être!inclus!dans!des!éléments!de!cette!liste!(c’est!le!cas!par!exemple!de!
l’élément!<img!/>).!
!
[NOM!DE!L’AUTEUR]! 20!
!
PROGRAMMATION!WEB!1!!
CHAPITRE!3
!
CHAPITRE!3!:!MISE!EN!FORME!,LISTE!ET!TABLEAU!!!!!!
MISE!EN!FORME!,LISTE!!ET!
TABLEAU!
!
!
PRESREQUIS!:!
!
Notions!de!base!de!HTML!
OBJECTIFS!GENERAUX!:!
!
Introduire!les!notions!HTML!avancées!tels!que!les!tableaux,!les!listes.!
PLAN!:!
I.
LES!TITRES!
1. LES!DIVISIONS!DE!LA!PAGE!
2. LES!PARAGRAPHES!:!L’ELEMENT!<P>!
3. L’ELEMENT!<DIV>!
II.
III.
LES!STYLES!PHYSIQUES!
LES!LISTES!
1. LES!LISTES!ORDONNEES!
2. LES!LISTES!A!PUCES!
3. LES!LISTES!DE!DEFINITIONS!
IV.
LES!TABLEAUX!
1.
2.
3.
4.
LA!STRUCTURE!GENERALE!D’UN!TABLEAU!
LES!ATTRIBUTS!DE!LA!BALISE!<TABLE>!
L'ALIGNEMENT!DU!CONTENU!DES!CELLULES!
LA!FUSION!DES!CELLULES!
!
!
!
[NOM!DE!L’AUTEUR]! 21!
!
PROGRAMMATION!WEB!1!!
!
CHAPITRE!3!:!MISE!EN!FORME!,LISTE!ET!TABLEAU!!!!!!
CHAPITRE!3:!MISE!EN!FORME,!LISTE!ET!TABLEAU!
1.! LES!TITRES!
Dans!une!page!web,!c’est!en!priorité!les!titres!qui!identifient!les!grandes!sections!de!texte,!
comme!dans!un!livre.!Les!titres!sont!contenus!dans!les!éléments!<h1>,!<h2>,!<h3>,!<h4>,!<h5>!!
et<h6>,!avec!<h1>…</h1>,!pour!les!titres!de!premier!niveau!et!<h6>!…!</h6>,!pour!les!titres!
de!plus!bas!niveau.!
Le!code!suivant!donne!un!exemple!d’utilisation!des!différents!niveaux!de!titre!:!
<h1>)Titre)de)niveau)1</h1>)
<h2>Titre)de)niveau)2</h2>)
<h3>Titre)de)niveau)3</h3>)
<h4>Titre)de)niveau)4</h4>)
<h5>Titre)de)niveau)5</h5>)
<h6>Titre)de)niveau)6</h6>!
!
2.! LES!DIVISIONS!DE!LA!PAGE!
Le! corps! d’un! document,! contenu! dans! l’élément! <body>,! peut! être! divisé! en! différentes!
parties!qui!vont!constituer!les!différents!blocs!de!la!page.!Ces!divisions!permettent!de!bien!
structurer!l’information!contenue!dans!une!page.!
2.1.!LES!PARAGRAPHES!:!L’ELEMENT!<P>!
Comme!dans!un!traitement!de!texte,!le!contenu!d’une!page!peut!être!divisé!en!différents!
paragraphes.!!
-!
Chaque! est! précédé! et! suivi! d’un! saut! de! ligne! pour! marquer! la! séparation! avec! le!
contenu!précédent!et!suivant.!
-!
Chaque!paragraphe!doit!être!délimité!par!les!balises!<p>!et!</p>.!
-! Chaque!paragraphe!peut!contenir!du!texte!mais!également!tous!les!éléments!en!ligne!
comme! des! images,! des! objets! multimédia! ou! des! composants! de! formulaire! si!
l’élément!<p>!est!inclut!luidmême!dans!un!formulaire.!
!
!
!
[NOM!DE!L’AUTEUR]! 22!
!
PROGRAMMATION!WEB!1!!
!
CHAPITRE!3!:!MISE!EN!FORME!,LISTE!ET!TABLEAU!!!!!!
2.2.!L’ELEMENT!<DIV>!
L’élément!<div>!crée!une!division!de!la!page.!Ce!type!de!division!permet!de!grouper!dans!
un!seul!bloc!un!ensemble!composé!soit!de!texte!soit!d’éléments!inclus,!auxquels!on!pourra!
appliquer!globalement!des!styles!particuliers.!À!la!différence!des!paragraphes,!une!division!
créée!avec!<div>!permet!d’inclure!une!très!grande!variété!d’éléments!XHTML,!comme!du!
texte!brut,!les!éléments!en!ligne!et!la!totalité!des!éléments!de!niveaux!bloc!comme!l’autorise!
<body>,!mais!également!les!titres,!les!listes!et!les!formulaires,!ce!qui!est!interdit!dans!un!
paragraphe.!!
Remarque!:!Contrairement!aux!paragraphes!<p>,!la!fin!d’une!division!n’entraîne!pas!un!saut!
de! ligne! par! défaut,! mais! seulement! un! retour! à! la! ligne.! Les! contenus! des! différentes!
divisions!peuvent!donc!se!succéder!sans!rupture.!De!plus!il!est!possible!d’utiliser!la!balise!
<span>!avec!quelques!mots!afin!de!les!particulariser!et!de!les!mettre!en!évidence,!le!plus!
fréquemment!au!moyen!d’un!style!prédéfini!(italique,!gras,!souligné!couleur!différente…)!
3.! LES!STYLES!PHYSIQUES!
Le!tableau!suivant!résume!les!balises!de!styles!physiques!:!
Style!
Syntaxe!
Résultat!
Gras!
<b>Texte</b>)
Texte!
<strong>)Texte)</strong>)
Italique!
<i>)Texte)</i>)
Texte!
<em>)Texte)</em>)
Souligné!
<u>Texte</u>)
Texte!
Exposant!
10)<sup>3</sup>)
103!
Indice!
C)<sub>)2</sub>)
C2 !
Barré!
<s>)Texte)</s>)
Texte!
<strike>)Texte)</strike>)
Police!plus!grande!
<big>)texte)</big>)
texte!
Police!plus!petite!
<small>texte</small>)
texte!
[NOM!DE!L’AUTEUR]! 23!
!
PROGRAMMATION!WEB!1!!
!
CHAPITRE!3!:!MISE!EN!FORME!,LISTE!ET!TABLEAU!!!!!!
Créer!un!retour!en!ligne!
<br)/>)
ddd!
Ligne!horizontale!
<hr)/>)
!
Police!
<font) size=) "..") face="…") !
color="…">)texte)</font>)
L’exemple! de! code! suivant! utilise! successivement! l’ensemble! de! ces! éléments,! créant! des!
styles!physiques.!
<p>Éléments) b) et) strong) :) Le) contenu) suivant) est) <b>) important) </b>.) La)
suitel’est)moins.)Mais)ceci)est)<strong>également)remarquable.</strong></p>)
)
<p>Éléments) i) et) em) :) Celui) est) en) <i>caractères) italiques) </i>) et) le)
suivanten<i><b>)caractères)italiques)gras</b></i>)
Celui) est) en) <em>caractères) italiques) </em>) et) le) suivant) en<em><b>)
caractèresitaliques)gras</b></em></p>)
)
<p>) Ce) texte) là) est) <big>grand,) <big>encore) plus) grand,) <big>et) plus) grand)
encore,<big>toujours)plus)grand)</big></big></big></big></p>)
)
<p>Ce) texte) ci) est) <small>petit,) <small>encore) plus) petit,) <small>et) plus)
petitencore,)<small>toujours)plus)petit)</small></small></small></small></p>)
)
<p>Le)n<sup>ième</sup>)terme)de)la)suite)numérique)est)noté)u<sub>n</sub>.La)
fonction)cube)est)notée):)x<sup>3</sup></p>!
4.! LES!LISTES!
4.1.!!LES!LISTES!ORDONNEES!
Une!liste!ordonnée!est!constituée!d'un!conteneur!<ol>!(Ordered!List)!dans!lequel!se!trouve!
chaque!item!de!la!liste,!précédé!d'un!élément!<li>.!
Exemple!:!Le!code!suivant!:!
<ol>)
)
<li>)Hiver</li>)
)
<li>)Automne</li>)
)
<li>)Été</li>)
)
<li>)Printemps</li>)
[NOM!DE!L’AUTEUR]! 24!
!
PROGRAMMATION!WEB!1!!
!
CHAPITRE!3!:!MISE!EN!FORME!,LISTE!ET!TABLEAU!!!!!!
</ol>)
Permet!d'afficher!la!liste!ordonnée!suivante!:)
1.!
Hiver!
2.!
Automne!
3.!
Été!
4.!
Printemps!
4.2.!LES!LISTES!A!PUCES!
Une!liste!à!puces!est!constituée!d'un!élément!ul!(Unordered!List)!dans!lequel!chaque!item!
est!précédé!d'un!élément!<li>.!
Exemple!:!Le!code!suivant!:!
<ul>)
)
<li>)Hiver</li>)
)
<li>)Automne</li>)
)
<li>)Été</li>)
)
<li>)Printemps</li>)
</ul>)
Permet!d'afficher!la!liste!à!puces!suivante!:!
•!
Hiver!
•!
Automne!
•!
Été!
•!
Printemps!
4.3.!LES!LISTES!DE!DEFINITIONS!
Une!liste!de!définitions!permet!de!créer!une!liste!de!termes,!chacun!d’entre!eux!étant!suivi!
de! sa! définition.! Le! conteneur! de! l’ensemble! de! la! liste! est! l’élément! <dl>! qui! ne! peut!
contenir! que! des! éléments! <dt>,! <dd>,! ou! l’élément! <dl>! luidmême.! Le! plus! souvent,!
l’élément! <dt>! contient! le! terme! et! <dd>! en! renferme! la! définition.! La! structure! de! base!
d’une!liste!de!définitions!est!donc!la!suivante!:!
!
!
[NOM!DE!L’AUTEUR]! 25!
!
PROGRAMMATION!WEB!1!!
!
CHAPITRE!3!:!MISE!EN!FORME!,LISTE!ET!TABLEAU!!!!!!
!
<dl>)
<dt>Terme)1</dt>)
<dd>Définition)1</dd>)
.....)
</dl>)
Le!code!suivant!donne!un!exemple!de!liste!de!définitions!:!
<dl>)
<dt>XHTML</dt>)
<dd><fieldset>eXtensible) HyperText) Markup) Language) :) le) langage) moderne)
decréation)de)pages)web...</fieldset></dd>)
)
<dt>CSS</dt>)
<dd><fieldset>Cascading)Style)Sheet):)le)langage)de)création)des)styles)et)
du)design...</fieldset></dd>)
)
<dt>PHP</dt>)
<dd><fieldset>PHP)Hypertext)Preprocessor):)le)meilleur)langage)de)création)
depages)dynamiques...</fieldset></dd>)
)
<dt>SQL</dt>)
<dd><fieldset>Structured) Query) Language) :) le) langage) d’interrogation) des)
basesde)données...</fieldset></dd>)
</dl>)
5.! LES!TABLEAUX!
5.1.!!LA!STRUCTURE!GENERALE!D’UN!TABLEAU!
L’élément!essentiel!dans!la!création!de!tableaux!est!<table>.!Un!tableau!doit!se!créer!ligne!par!
ligne.!Chaque!ligne!est!déclarée!par!un!élément!<tr>!(pour!table.row).!La!création!de!chaque!
cellule! d’une! ligne! est! déclarée! par! un! élément! <td>! (pour! table. data)! pour! les! cellules!
standards!du!tableau!ou!<th>!(pour!tablehead)!pour!les!cellules!qui!jouent!le!rôle!d’endtête!de!
colonne!ou!de!ligne.!Pour!terminer!la!présentation!d’un!tableau,!on!peut!lui!attribuer!un!titre!
général! qui! doit! être! contenu! dans! l’élément! <caption>,! luidmême! inclus! dans! <table>.! Cet!
[NOM!DE!L’AUTEUR]! 26!
!
PROGRAMMATION!WEB!1!!
!
CHAPITRE!3!:!MISE!EN!FORME!,LISTE!ET!TABLEAU!!!!!!
élément!doit!être!le!premier!à!apparaître!dans!<table>.!Son!contenu!apparaît!par!défaut!aud
dessus!du!tableau.!
Le!code!suivant!donne!un!exemple!de!création!de!tableau!régulier.!
<table)border="1">)
)
<caption>Un)tableau)</caption>)
<tr>)
<td>)Ligne)1)Colonne)1)</td><td>)Ligne)1)Colonne)2)</td><td>)Ligne)1)Colonne)
3</td>)
</tr>)
<tr>)
<td>)Ligne)2)Colonne)1)</td><td>)Ligne)2)Colonne)2)</td><td>)Ligne)2)Colonne)
3</td>)
</tr>)
<tr>)
<td>)Ligne)3)Colonne)1)</td><td>)Ligne)3)Colonne)2)</td><td>)Ligne)3)Colonne)
3</td>)
</tr>)
</table>!
5.2.!LES!ATTRIBUTS!DE!LA!BALISE!<TABLE>!
La!balise!ou!l’élément!<table>!possède!plusieurs!attributs!dont!les!plus!utilisés!sont!:!!
Attributs!
Désignation!
border!="N"!
Définit!la!largeur!des!bordures!externes!et!internes!qui!
délimitent!le!tableau!et!les!cellules.!Sa!valeur!s’exprime!
exclusivement!en!nombre!de!pixels!et!la!
valeur!0!est!admise!pour!cacher!ses!bordures.!
width!="N!px"!ou!
width!=!"N%"!!
Définit! la! largeur! totale! du! tableau! dans! la! page.! La!
possibilité! de! définir! une! largeur! relative! en!
pourcentage!est!très!pratique!pour!adapter!le!tableau!à!
l’écran!du!visiteur.!
[NOM!DE!L’AUTEUR]! 27!
!
PROGRAMMATION!WEB!1!!
cellpadding!=!"N!px"!ou!
cellpadding!=!"N%"!!
cellspacing!=!"N!px"!!!ou!!
cellspacing!=!"N%"!!!
!
CHAPITRE!3!:!MISE!EN!FORME!,LISTE!ET!TABLEAU!!!!!!
Définit! la! largeur! de! l’espacement! entre! le! contenu!
d’une!cellule!et!sa!bordure.!
définit! l’espacement! entre! les! bordures! de! chaque!
cellule.!Pour!que!cet!attribut!soit!pris!en!compte,!il!faut!
que! l’attribut! border! ne! soit! pas! nul.! Si! l’attribut!
cellspacing!est!non!défini,!il!prend!par!défaut!la!valeur!
de!l’attribut!border.!
5.3.!L'ALIGNEMENT!DU!CONTENU!DES!CELLULES!
Les!attributs!align!et!valign!des!éléments!<table>,!<tr>,!<td>!et!<th>!permettent!de!définir!
l’alignement!de!leurs!différents!contenus.!Comme!tous!ces!éléments!sont!emboîtés!les!uns!
dans!les!autres,!la!définition!de!ces!attributs!à!des!niveaux!différents!implique!des!règles!de!
priorité!pour!déterminer!laquelle!des!valeurs!doit!l’emporter.!Ces!règles!sont!les!suivantes!:!
-! L’alignement!défini!dans!un!élément!inclut!dans!<td>!ou!<th>!l’emporte!sur!celui!de!son!
parent.!
-! L’alignement!défini!dans!<td>!ou!<th>!l’emporte!sur!celui!de!<tr>.!
-! L’alignement!défini!dans!<tr>!l’emporte!sur!celui!de!<table>.!
Le!code!suivant!montre!l’application!de!ces!règles!
<table)border="3")width="100%")cellpadding="12px")align="left">)
<caption><big>Alignement)du)contenu)des)cellules</big></caption>)
<tr)align="right">)
<td)align="justify")>)
<p><big>Texte)justifié</big><br)/>AAAA</p>)
</td>)
<td>)
<p><big>Texte)aligné)à)droite</big><br)/>BBBB)</p>)
</td>)
</tr>)
<tr>)
<td)align="center")><p><big>Texte)centré</big><br)/>CCCC)</p>)
</td>)
[NOM!DE!L’AUTEUR]! 28!
!
PROGRAMMATION!WEB!1!!
!
CHAPITRE!3!:!MISE!EN!FORME!,LISTE!ET!TABLEAU!!!!!!
<td><p><big>Texte)aligné)à)gauche</big><br)/>DDDDD</p>)
</td></tr>)
</table>)
5.4.!LA!FUSION!DES!CELLULES!
Pour!concevoir!des!tableaux!irréguliers,!il!est!fréquent!de!fusionner!des!colonnes!et!des!
lignes.!Pour!cet!objectif,!on!utilise!respectivement!les!attributs!«!colspan!»!et!«!rowspan!».!
Exemple:!Le!code!suivant:!
<table)border)height="300")width="400">)
<tr)align="center">)
<td)rowspan="3">A</td>)
<td)colspan="2">B</td>)
<td>C</td>)
)
</tr>)
<tr)align="center">)
<td>D</td>)
<td>E</td>)
<td)rowspan="2">G</td>)
)
</tr>)
<tr)align="center">)
<td)colspan="2">F</td>)
</tr>)
</table>)
Fournit!le!tableau!suivant!:!
!
[NOM!DE!L’AUTEUR]! 29!
!
PROGRAMMATION!WEB!1!!
CHAPITRE!4
! CHAPITRE!4!:!IMAGES,AUDIO,VIDEO!ET!LIENS!HYPERTEXTES!!!!!!
IMAGE!,AUDIO,VIDEO!ET!LIENS!
HYPERTEXTES
!
!
PRESREQUIS!:!
!
Notions!de!base!de!HTML!
OBJECTIFS!GENERAUX!:!
!
Introduire! les! notions! HTML! avancées! tels! que! les! images,! les! fichiers! audio,! les!
fichiers!vidéo,!les!liens!hypertextes!
PLAN!:!
I. LES!IMAGES!
1. LES!TYPES!D’IMAGES!
2. L’INSERTION!D’IMAGES!
II. L'AUDIO!
III. LA!VIDEO!
IV. LES!LIENS!HYPERTEXTES!
1.
DEFINITION!
2.
LES!LIENS!EXTERNES!
3.
LES!LIENS!INTERNES:!LES!ANCRES!/!LES!SIGNETS!
4.
LES!LIENS!DECLENCHANT!L’ENVOI!D’UN!EdMAIL!
!
!
[NOM!DE!L’AUTEUR]! 30!
!
PROGRAMMATION!WEB!1!!
! CHAPITRE!4!:!IMAGES,AUDIO,VIDEO!ET!LIENS!HYPERTEXTES!!!!!!
!
CHAPITRE!4!:!IMAGES,!AUDIO,!VIDEO!ET!LIENS!HYPERTEXTES!
!
1.! LES!IMAGES!
1.1.!LES!TYPES!D’IMAGES!
!
Les!navigateurs!actuels!n’acceptent!qu’un!nombre!restreint!de!types!d’images!et!il!faudra!se!
limiter! aux! trois! grands! types! les! plus! utilisés! et! enregistrer! les! images! selon! les! formats!
présentés!cidaprès,!qui!sont!suffisants!pour!satisfaire!tous!les!besoins!d’un!concepteur!de!
sites:!
•! GIF! :! Graphics! Interface! Format,! ayant! pour! extension! .gif.! Ce! format! est! limité! à! 256!
couleurs!et!est!donc!déconseillé!pour!les!photographies!ayant!une!grande!plage!de!teintes!
différentes.! On! l’utilisera! en! priorité! pour! des! icônes,! des! dessins! ou! des! bandeaux!
publicitaires!car!il!présente!aussi!l’avantage!de!permettre!la!création!de!petites!animations!
et! l’entrelacement! qui! va! permettre! l’affichage! progressif! de! l’image,! d’abord! en! basse!
résolution!puis,!au!fur!et!à!mesure!du!chargement,!à!la!résolution!maximale.!
•!JPEG!:!Joint!Photographic!Experts!Group,!ayant!pour!extensions!.jpeg!ou!.jpg.!Ce!format!
permet!la!création!d’images!en!24!bits!(16!millions!de!couleurs),!et!est!donc!très!adapté!
aux!photographies!réalistes.!En!contrepartie!toutefois,!les!images!JPEG!ont!habituellement!
un!poids!plus!important!en!Ko,!ce!qui!ralentit!leur!chargement.!
•!PNG!:!Portable!Network!Graphics,!ayant!pour!extension!.png.!Ce!format!est!assez!récent!
et!a!été!conçu!comme!alternative!au!format!GIF.!Le!format!PNG!créé!à!l’initiative!du!W3C!
est!donc!libre!de!droit!et!permet!la!création!de!graphiques!et!de!photographies.!!
1.2.!!L’INSERTION!D’IMAGES!
a.! L’ELEMENT!<IMG!/>!
L’élément!<img!/>!permet!d’inclure!des!images!dans!une!page!web.!Il!s’agit!d’un!élément!
de!type!en!ligne!et!doit!être!inclus!directement!dans!un!élément!de!type!bloc,!dans!une!
liste,!ou!encore!d’autres!éléments.!C’est!un!élément!vide,!d’où!l’utilisation!du!symbole!
[NOM!DE!L’AUTEUR]! 31!
!
PROGRAMMATION!WEB!1!!
! CHAPITRE!4!:!IMAGES,AUDIO,VIDEO!ET!LIENS!HYPERTEXTES!!!!!!
de! fermeture! incorporé! à! la! fin! de! la! balise! d’ouverture.! Les! éléments! parents! de!
l’élément!<img!/>!sont!:a,!caption,!div,!li,!p,!span,!td,!th,!etc.!
b.! L’ATTRIBUT!SRC!
Il!précise!l’adresse!relative!ou!absolue!du!fichier!image!que!l’on!désire!afficher!dans!la!
page.!Son!utilisation!est!donc!obligatoire.!
Exemples!:!
$!
<img! src="image.png"! />! :! pour! une! adresse! relative,! ce! qui! suppose! que! le!
fichier!PNG!est!situé!dans!le!même!répertoire!que!le!fichier!XHTML!qui!l’incorpore.!
$!
<img! src="http://www.votresite.com/images/image.png"! />:! définit! une!
adresse! absolue,! l’image! pouvant! donc! figurer! sur! un! autre! serveur! que! le! nôtre.!
L’utilisation!des!adresses!relatives!est!préférable!en!vue!de!faciliter!la!maintenance!du!
site.!Si!le!fichier!n’est!pas!disponible,!les!navigateurs!affichent!une!icône!à!la!place.!
c.! L’ATTRIBUT!ALT!
La! présence! de! cet! attribut! est! également! nécessaire! et! il! doit! contenir! un! texte!
fournissant!une!brève!description!de!l’image.!Ce!texte!apparaîtra!à!la!place!de!l’image!si!
celledci!n’est!pas!disponible!(absente!du!répertoire!cible!ou!illisible).!!
d.! LES!ATTRIBUTS!HEIGHT!ET!WIDTH!
Ils!permettent!de!définir!respectivement!la!hauteur!(height)!et!la!largeur!(width)!qu’aura!
l’image!sur!le!média!d’affichage.!Ces!dimensions!peuvent!être!définies!à!l’aide!de!valeurs!
exactes! en! pixels! ou! d’un! pourcentage.! Dans! ce! dernier! cas,! les! pourcentages! font!
référence!aux!dimensions!de!l’élément!parent!de!l’image.!Si!la!fenêtre!du!navigateur!est!
redimensionnée,! les! dimensions! de! l’image! seront! alors! recalculées,! laissant! l’image!
entièrement!visible.!La!définition!de!ces!attributs!accélère!l’affichage!dans!les!navigateurs!
car! elle! leur! permet! de! déterminer! la! zone! d’affichage! avant! même! d’avoir! téléchargé!
l’image.!
2.! L'AUDIO!
Pour! insérer! une! séquence! audio! dans! une! page! web,! on! utilise! la! balise! <audio>.! Cette!
dernière!est!l'apport!du!HTML5.!
!
!
[NOM!DE!L’AUTEUR]! 32!
!
PROGRAMMATION!WEB!1!!
! CHAPITRE!4!:!IMAGES,AUDIO,VIDEO!ET!LIENS!HYPERTEXTES!!!!!!
Syntaxe.
<audio)src="url)fichier)audio"></audio>)
OU)
<audio>)
<source)src="url)fichier)audio"></source>…)
</audio>!
!
Extensions.fichiers.
Les!fichiers!audio!supportés!par!le!web!ont!généralement!les!extensions!suivantes:!mp3,!aac!
et!ogg.!!
Attributs:!
A!part!l'attribut!src,!la!balise!audio!admet!d'autres!dont!on!cite:!
•! controls!:!pour!ajouter!les!boutons!«!Lecture!»,!«!Pause!»!et!la!barre!de!défilement.!!
•! width!:!pour!modifier!la!largeur!de!l'outil!de!lecture!audio.!
•! loop!:!la!musique!sera!jouée!en!boucle.!
•! autoplay!:!la!musique!sera!jouée!dès!le!chargement!de!la!page.!
Exemple:.
<audio)
src="fayrouz.mp3")
controls="controls")
width="400px")
autoplay="autoplay")loop="loop">)
</audio>!
.
3.! LA!VIDEO!
Pour! insérer! une! séquence! vidéo! dans! une! page! web,! on! utilise! la! balise! <video>.! Cette!
dernière!est!l'apport!du!HTML5.!
Syntaxe.
<video)src="url)fichier)audio"></video>)
OU)
<video>)
<source)src="url)fichier)video"></source>…)
</video>)
!
[NOM!DE!L’AUTEUR]! 33!
!
PROGRAMMATION!WEB!1!!
! CHAPITRE!4!:!IMAGES,AUDIO,VIDEO!ET!LIENS!HYPERTEXTES!!!!!!
Extensions.fichiers.
Les! fichiers! vidéo! supportés! par! le! web! ont! généralement! les! extensions! suivantes:! mp4,!
webm!et!ogv.!!
Attributs:!
A!part!l'attribut!src,!la!balise!video!admet!d'autres!dont!on!cite:!
•! poster!:!l'URL!de!l'image!à!afficher!à!la!place!de!la!vidéo!tant!que!celledci!n'est!pas!lancée.!
•! controls!:!pour!ajouter!les!boutons!«!Lecture!»,!«!Pause!»!et!la!barre!de!défilement.!!
•! width!:!pour!modifier!la!largeur!de!la!vidéo.!
•! height!:!pour!modifier!la!hauteur!de!la!vidéo.!
•! loop!:!la!vidéo!sera!jouée!en!boucle.!
•! autoplay!:!la!vidéo!sera!jouée!dès!le!chargement!de!la!page!!
Exemple:.
<video)
src="film1.mp4")
controls="controls")
poster="film.jpg")width="400px"))autoplay="autoplay")>)
</video>!
.
4.! LES!LIENS!HYPERTEXTES!
4.1.!DEFINITION!
Dans!l’acronyme!XHTML,!on!peut!considérer!que!l’élément!le!plus!important!est!le!mot!
«Hypertext!».!En!effet,!la!création!de!documents!contenant!des!liens!hypertextes!est!la!
particularité!qui!a!rendu!le!Web!si!populaire.!Les!liens!hypertextes!permettent!de!passer,!
d’un!simple!clic,!sur!un!mot!ou!sur!une!image,!d’une!page!à!l’autre,!qu’elle!soit!située!sur!
le!même!serveur!ou!en!n’importe!quel!point!du!réseau.!Nous!parlerons!dans!ce!cas!de!
lien!externe.!Il!est!également!possible!de!passer!instantanément!d’un!point!de!la!page!à!
un!autre!situé!dans!la!même!page!et!identifié!par!un!nom!particulier.!Nous!parlerons!alors!
de! lien! interne.! Un! lien! peut! permettre,! également,! de! déclencher! l’ouverture!
automatique!de!la!messagerie!électronique!du!visiteur!pour!envoyer!un!edmail!vers!le!site!
ou!à!l’attention!de!tout!autre!destinataire.!
[NOM!DE!L’AUTEUR]! 34!
!
PROGRAMMATION!WEB!1!!
! CHAPITRE!4!:!IMAGES,AUDIO,VIDEO!ET!LIENS!HYPERTEXTES!!!!!!
4.2.!LES!LIENS!EXTERNES!
L’élément!XHTML!primordial!pour!la!création!de!liens!est!l’élément!<a>,!dont!le!contenu!
est!situé!entre!les!balises!<a>!et!</a>.!Le!contenu!peut!être!un!texte!ou!une!image!et!il!
est!sensible!au!clic.!Ses!attributs!permettent!de!définir!la!cible!du!lien!et!les!moyens!de!le!
déclencher.!Comme!il!s’agit!d’un!élément!en!ligne,!il!doit!être!inclus!dans!un!bloc!ou!tout!
autre! élément! admettant! comme! contenu! cet! élément.! Quand! on! définit! un! lien! dont!
l’origine!est!par!exemple!un!texte,!celuidci!apparaît!souligné,!dans!une!couleur!particulière!
définie!par!défaut!dans!le!navigateur!(généralement!en!bleu),!et!le!curseur!prend!l’aspect!
d’une!main!pour!signaler!l’existence!de!ce!lien.!Ces!conventions!visuelles!sont!communes!
à!tous!les!navigateurs!et!il!est!possible!de!les!modifier!à!loisir!avec!des!styles!CSS.!
Syntaxe:<a!href="url">texte!ou!image</a>!
Avec!url!est!l'adresse!relative!ou!absolue!du!fichier!cible!vers!lequel!le!navigateur!passe!
en!cliquant!sur!le!texte!ou!l'image!définie.!
Exemples:!
$!<p>La!page!<a!href=!"pagecss.html"!>!CSS2!</a></p>!
En!cliquant!sur!CSS2,!on!passe!au!fichier!pagecss.html.!Ce!document!doit!se!trouver!sur!le!
serveur,! dans! le! même! dossier! que! la! page! en! cours! qui! contient! le! lien.! Dans! le! cas!
contraire,! on! expose! les! visiteurs! à! l’affichage! de! la! page! maudite! des! webmestres,!
nommée!«!Erreur!404!».!
$!<div>Visitez!le!site!du!<a!href=!"http://www.w3.org"!>W3C!</a></div>!
En!cliquant!sur!le!mot!W3C,!on!passe!à!son!site!officiel.!
L’élément!<a>!possède!un!ensemble!d’attributs!dont!on!cite!l'attribut!target.!Ce!dernier!
permet!de!désigner!la!fenêtre!dans!laquelle!s'ouvre!la!page!cible!d’un!lien.!Il!peut!prendre!
les!valeurs!prédéfinies:!
•!_blank:!pour!afficher!la!cible!dans!une!nouvelle!fenêtre.!
•!_parent:!pour!afficher!la!cible!dans!la!fenêtre!parent!de!la!fenêtre!en!cours.!
•!_self:!pour!afficher!la!cible!dans!la!fenêtre!elledmême.!
•!_top:!pour!afficher!la!cible!dans!la!fenêtre!de!plus!haut!niveau.!
[NOM!DE!L’AUTEUR]! 35!
!
PROGRAMMATION!WEB!1!!
! CHAPITRE!4!:!IMAGES,AUDIO,VIDEO!ET!LIENS!HYPERTEXTES!!!!!!
4.3.!Les!liens!INTERNES:!les!ancres!/!LES!SIGNETS!
Quand! le! contenu! d’une! page! est! volumineux,! l’utilisateur! ne! peut! pas! en! avoir! une!
vision!globale.!Il!est!alors!souhaitable!de!lui!proposer!une!table!des!matières!ou!un!menu,!
composé!de!liens!internes!vers!les!différentes!sections!de!la!page.!Il!pourra!ainsi!accéder!
directement! au! point! de! son! choix! sans! faire! défiler! la! page.! De! même,! si! le! lien! est!
externe,!il!est!possible!d’accéder!en!un!point!particulier!de!la!page!cible.!Chaque!point!
cible!de!la!page!doit!être!signalé!par!un!lien!particulier,!appelé!ancre,!lequel!est!créé!à!
l’aide!de!l’élément!<a>,!muni!simplement!d’un!attribut!id!dont!la!valeur!doit!être!unique!
dans!la!page.!!
Exemple:!
<h1>Vos)sujets)préférés</h1>)
<ul>)
<li><a)href="#sujet1")id="menu1">)XHTML</a></li>)
<li><a)href="#sujet2")id="menu2">)CSS</a></li>)
<li><a)href="#sujet3")id="menu3">)JavaScript</a></li>)
</ul>)
<hr)/>)
<![[)Première)section)[[>)
<div>)
<h1>XHTML</h1><a)id="sujet1")href="#menu1">Retour)au)vers)le)
menu</a><br)/>)
Quand)le)contenu)d’une)page)est)assez)long,)l’utilisateur)ne)
peut)pas)en)avoir)une)vision)globale.)Il)est)alors)possible)
de)lui)proposer)une)table)des)matières)ou)un)menu)composé)de)
liens) vers) les) différentes) sections) de) la) page.) Il) pourra)
alors)accéder)directement)au)point)qui)lui)convient)sans)avoir)
à)faire)défiler)la)page…))
</div><br)/><hr)/>)
<![[)Deuxième)section)[[>)
<div>)
<h1>CSS</h1><a) id="sujet2") href="#menu2">Retour) au) vers) le)
menu</a><br)/>)
[NOM!DE!L’AUTEUR]! 36!
!
PROGRAMMATION!WEB!1!!
! CHAPITRE!4!:!IMAGES,AUDIO,VIDEO!ET!LIENS!HYPERTEXTES!!!!!!
Quand)le)contenu)d’une)page)est)assez)long,)l’utilisateur)ne)
peut)pas)en)avoir)une)vision)globale.)Il)est)alors)possible)
de)lui)proposer)une)table)des)matières)ou)un)menu)composé)de)
liens) vers) les) différentes) sections) de) la) page.) Il) pourra)
alors)accéder)directement)au)point)qui)lui)convient)sans)avoir)
à)faire)défiler)la)page…)
</div><br)/><hr)/>)
<![[)Troisième)section)[[>)
<div>)
<h1>JavaScript</h1><a) id="sujet3") href="#menu3">Retour) au)
vers)le)menu</a><br)/>)
Quand)le)contenu)d’une)page)est)assez)long,)l’utilisateur)ne)
peut)pas)en)avoir)une)vision)globale.)Il)est)alors)possible)
de)lui)proposer)une)table)des)matières)ou)un)menu)composé)de)
liens) vers) les) différentes) sections) de) la) page.) Il) pourra)
alors)accéder)directement)au)point)qui)lui)convient)sans)avoir)
à)faire)défiler)la)page…))
</div><br)/><hr)/>)
!
!
!
On!peut!aussi!créer!un!système!de!navigation!complet!entre!plusieurs!pages!du!même!
site!à!l’emplacement!qu’on!veut!atteindre!!
Exemple.
<h1)id="menuxhtml">XHTML))
<a)href="xhtml.html#chap1">)Chapitre)1)</a>)
<a)href="xhtml.html#chap2">)Chapitre)2)</a>)
<a)href="xhtml.html#chap3">)Chapitre)3)</a>)
</h1><hr)/>!
!
[NOM!DE!L’AUTEUR]! 37!
!
PROGRAMMATION!WEB!1!!
! CHAPITRE!4!:!IMAGES,AUDIO,VIDEO!ET!LIENS!HYPERTEXTES!!!!!!
Avec!chap1,!chap2!et!chap3!sont!des!ancres!à!définir!dans!le!fichier!xhtml.html!grâce!à!
l’attribut!id!
4.4.!LES!LIENS!DECLENCHANT!L’ENVOI!D’UN!ESMAIL!
Un!site!qui!se!dit!à!l’écoute!de!ses!visiteurs!doit!leur!permettre!d’entrer!en!contact!
avec! son! webmestre! afin! qu’ils! envoient! leurs! observations! ou! questions.! Pour! leur!
faciliter!la!tâche,!il!ne!suffit!pas!d’indiquer!une!adresse!edmail!dans!chaque!page.!On!doit!
créer! un! type! de! lien! particulier! provoquant,! en! un! clic,! l’ouverture! automatique! du!
logiciel!de!courrier!préféré!du!visiteur!avec!comme!destinataire!l’adresse!que!l’auteur!du!
site!aura!choisi!dans!son!code.!Pour!réaliser!cette!opération,!il!suffit!que!l’attribut!href!du!
lien!soit!composé!du!nom!de!protocole!mailto:!suivi!de!l’adresse!edmail!du!contact.!
Exemples!!
$!
<div>! <a!href="mailto:[email protected]">!Contactez!nous!!</a></div>!
$!
<p>Demande! de! <a! href="mailto:[email protected]?subject=Demande! de!
renseignements">documentation</a></p>!
!
!
!
[NOM!DE!L’AUTEUR]! 38!
!
PROGRAMMATION!WEB!1!!
CHAPITRE!5
!
CHAPITRE!5!:!LES!FORMULAIRES!!!!!!
LES!FORMULAIRES
!
!
PRESREQUIS!:!
!
Notions!de!base!de!HTML!
OBJECTIFS!GENERAUX!:!
!
Introduire!les!notions!HTML!avancées!tels!que!les!images,!les!formulaires!
PLAN!:!
I. INTRODUCTION!!
II. STRUCTURE!D’UN!FORMULAIRE!
III. LES!ATTRIBUTS!DE!L’ELEMENT!<FORM>!
1. L’ATTRIBUT!ID!
2. L’ATTRIBUT!ACTION!
3. L’ATTRIBUT!!METHOD!
IV. LES!ELEMENTS!INTEGRES!DANS!L'ELEMENT!FORM!
1. LES!BOUTONS!D’ENVOI!OU!DE!SOUMISSION!
2. LES!BOUTONS!DE!REINITIALISATION!
3. LES!BOUTONS!GRAPHIQUES!
4. LES!ZONES!DE!SAISIE!DE!TEXTE!UNILIGNES!
5. LES!ZONES!DE!SAISIE!DE!MOT!DE!PASSE!
6. LES!ZONES!DE!SAISIE!DE!TEXTE!LONG!
7. LES!BOUTONS!RADIO!ET!LES!CASES!A!COCHER!
8. LES!LISTES!DE!SELECTION!
9. LES!ZONES!CACHEES!
10. LES!ZONES!FILE!
V. APPORTS!DU!HTML5!
1. LES!NOUVEAUX!OBJETS!
2. LES!NOUVEAUX!ATTRIBUTS!
[NOM!DE!L’AUTEUR]! 39!
!
!
PROGRAMMATION!WEB!1!!
!
CHAPITRE!5!:!LES!FORMULAIRES!!!!!!
!
CHAPITRE!5:!LES!FORMULAIRES!
!
1.! INTRODUCTION!
De!nos!jours,!plusieurs!actions!sont!devenues!très!courantes!et!ne!sont!possibles!que!grâce!à!
l’existence!des!formulaires!insérés!dans!une!page!web.!Citons!comme!exemples:!laisser!un!
avis!dans!un!livre!d’or,!saisir!un!motdclé!dans!un!moteur!de!recherche,!passer!une!commande!
en! ligne,! etc.! Tout! échange! de! données! entre! un! visiteur! (le! poste! client)! et! l’ordinateur!
hébergeant! le! site! (le! serveur),! opéré! via! le! protocole! HTTP,! se! fait! donc! via! les! saisies!
effectuées! dans! un! formulaire.! L’utilisateur! peut! entrer! des! textes! ou! des! mots! de! passe,!
opérer!des!choix!grâce!à!des!boutons!radio,!de!cases!à!cocher!ou!des!listes!de!sélection.!Il!peut!
également!effectuer!le!transfert!de!ses!propres!fichiers!vers!le!serveur.!Les!formulaires!sont!
donc!présents!dans!un!très!grand!nombre!de!sites!web.!
2.! STRUCTURE!D’UN!FORMULAIRE!
Les!éléments!constitutifs!d’un!formulaire!doivent!être!contenus!entre!les!balises!<form>!et!
</form>.!Cette!balise!peut!être!incluse!directement!dans!l’élément!<body>ou!encore!sous!l'un!
des!éléments!suivants:dd,!div,!fieldset,!li,!td,!th,!etc.!Un!formulaire!est,!généralement,!formé!
d'un!ensemble!de!"fieldset".!!
L'élément!<fieldset>!est!pratique!pour!créer!des!groupes!de!blocs!qui!partagent!un!objectif!
commun.! Un! élément! <fieldset>peut! être! étiquetté! avec! un! élément! <legend>.!
L'élément!<legend>!décrit!le!but!de!l'élément!<fieldset>.!
La!structure!minimale!d'un!formulaire!est:!
<form>)
)
<fieldset>)
)
)
)
</fieldset>)
)
<![[)éventuellement)un)ensemble)d'autres)fieldset)[[>)
<legend>Titre)de)la)légende</legend>)
</form>)
!
[NOM!DE!L’AUTEUR]! 40!
!
PROGRAMMATION!WEB!1!!
!
CHAPITRE!5!:!LES!FORMULAIRES!!!!!!
Cette!structure!est!améliorée!par!un!ensemble!d'attributs!et!d'autres!éléments!intégrés.!
3.! LES!ATTRIBUTS!DE!L’ELEMENT!<FORM>!
3.1.!L’ATTRIBUT!ID!
Il!permet!d’identifier!le!formulaire!pour!pouvoir!accéder!à!ses!composants!à!partir!d’un!
script!JavaScript.!On!peut!utiliser!l'attribut!name.!
3.2.!L’ATTRIBUT!ACTION!
Cet!attribut!est!obligatoire!car!il!désigne!le!fichier!qui!est!chargé!de!traiter!les!données!du!
formulaire!côté!serveur.!Le!code!du!script!de!traitement!des!données!peut!être!inclus!dans!
un!fichier!séparé!de!celui!qui!contient!le!code!XHTML!mais!il!peut!être!inclus!dans!ce!même!
fichier!qui!doit!alors!avoir!une!extension!appropriée!à!la!place!de!.html.!!Par!exemple,!.php!
pour!le!langage!PHP!ou!.aspx!pour!ASP.Net.!Le!contenu!de!l’attribut!action!doit!donc!être!
une!URL,!qui!peut!être:!
!! relative,!de!la!forme:!<form!action="traitement.php">,!Dans!ce!cas,!le!fichier!désigné!
doit!être!présent!dans!le!même!répertoire!que!le!fichier!XHTML.!!
!! absolue,!de!la!forme:!<form!action!=!"http://www.monsite.com/trait.php">,!dans!ce!
cas,!le!fichier!doit!être!présent!sur!le!même!serveur,!ou!même!sur!un!autre!serveur.!!
3.3.!L’ATTRIBUT!!METHOD!
Il!détermine!la!méthode!d’envoi!des!données!vers!le!serveur.!Il!peut!prendre!les!deux!
valeurs:! get! ou! post.! La! méthode! get! est! celle! qui! est! utilisée! par! défaut.! Elle! présente!
l’inconvénient!d’ajouter!les!données!du!formulaire!sous!la!forme!nom=valeur!à!la!suite!de!
l’URL!définie!dans!l’attribut!action.!!
La!seconde!valeur!de!l’attribut!method!est!post.!Elle!ne!présente!pas!l’inconvénient!de!
la! méthode! get! car! les! données! transmises! sont! invisibles! dans! l’URL.! C’est! donc! celle!
recommandée!dans!la!plupart!des!cas.!
[NOM!DE!L’AUTEUR]! 41!
!
PROGRAMMATION!WEB!1!!
!
CHAPITRE!5!:!LES!FORMULAIRES!!!!!!
4.! LES!ELEMENTS!INTEGRES!DANS!L'ELEMENT!FORM!
4.1.!LES!BOUTONS!D’ENVOI!OU!DE!SOUMISSION!
Il! s'agit! d'un! bouton! indispensable! permettant! de! déclencher! l’envoi! des! données! du!
formulaire!vers!le!serveur,!suite!à!un!clic.!La!manière!la!plus!courante!de!créer!un!bouton!
d’envoi! est! d’utiliser! l’élément! <input/>.! Cependant,! il! est! possible! d’utiliser! l’élément!
<button/>!pour!atteindre!le!même!objectif.!
Syntaxe.
<input)type="submit")value="valider")name="BtValid")
title="bouton)de)validation"/>)
<button)type="submit")name="BtValid")title="bouton)de)
validation">)valider</button>!
!
Description.des.attributs.
L'attribut!"value"!détermine!le!texte!du!bouton!pour!l'élément!<input>.!
L'attribut! "name"! attribue! un! nom! au! bouton! qui! sera! utilisé! par! l'un! des! langages! de!
script.!
L'attribut!"title"!affiche!un!bref!message!permettant!d’expliquer!le!rôle!du!bouton.!
4.2.!LES!BOUTONS!DE!REINITIALISATION!
Le!rôle!d'un!bouton!de!réinitialisation!est!de!revenir!à!l'état!initial!du!formulaire.!Il!n’efface!
pas!le!contenu!de!toutes!les!zones!de!saisies!mais!remet!le!formulaire!dans!son!état!initial,!
y!compris!les!valeurs!par!défaut!qui!ont!pu!y!être!définies.!Un!tel!bouton!est!le!plus!souvent!
créé!à!l’aide!de!l’élément!<input!/>.!Comme!les!boutons!d’envoi,!c’est!l’attribut!value!qui!
contient! le! texte! visible! sur! le! bouton.! Les! autres! attributs! sont! identiques! à! ceux! des!
boutons!d’envoi.!
!
!
!
[NOM!DE!L’AUTEUR]! 42!
!
PROGRAMMATION!WEB!1!!
!
CHAPITRE!5!:!LES!FORMULAIRES!!!!!!
Syntaxe!
<input)type="reset")value="annuler")name="BtAnnul")
title="bouton)annulation"/>)
<button)type="reset")name=")BtAnnul)")title="bouton)annulation)
">)annuler)</button>)
!
4.3.!LES!BOUTONS!GRAPHIQUES!
Le!bouton!de!validation!et!celui!d'annulation!peuvent!être!conçus!sous!forme!d'images!d'où!
la!notion!de!boutons!graphiques.!
Exemple:!
<form)action="traitement.php")method="post")name="formul1">)
)
<fieldset>)
)
)
<legend>Les)boutons)d’envoi):)</legend>)
)
)
<button)type="submit")value="Envoi")name="BtEnv")
title="Bouton)d’envoi"><img)src="../images/val.gif")
height="50px")width="50px"/></button>)
)
)
<input)type="image")src="../images/val1.gif")
value="Envoi1")name=")BtEnv1")title="Bouton)d’envoi)image")
onclick="submit()"/>)
)
</fieldset>)
)
<fieldset>)
)
)
<legend>Les)boutons)de)réinitialisation):)</legend>)
)
)
<button)type="reset")value="annuler"name="BtAnnul")
title="Bouton)d’effacement"><img)src="../images/annul.gif)")
height=)"50px")width="50px"/></button>) )
)
)
<input)type="image")src="../images/annul1.gif")
value="annuler1")name="BtAnnul1")title="Bouton)d'annulation)
image")onclick="reset()"/>)
[NOM!DE!L’AUTEUR]! 43!
!
PROGRAMMATION!WEB!1!!
)
!
CHAPITRE!5!:!LES!FORMULAIRES!!!!!!
</fieldset>)
</form>!
!
!
4.4.!LES!ZONES!DE!SAISIE!DE!TEXTE!UNILIGNES!
Pour!un!champ!de!saisie!de!texte!ne!comprenant!qu’une!ligne,!l’attribut!type!de!l'élément!
<input>,!prend!la!valeur!text.!Toute!zone!de!texte!doit!être,!éventuellement,!précédé!par!
une!étiquette!fournie!par!l'élément!<label>.! !
En!plus!des!attributs!déjà!vus!(name,!value,!title),!il!est!possible!d’améliorer!l’affichage!
des!zones!de!texte,!en!utilisant!les!attributs!suivants:!
-!
size="N"!
Permet!de!fixer!la!longueur!visible!de!la!zone!de!texte!à!N!caractères,!ce!qui!n’empêche!
pas!des!saisies!plus!longues!
-!
maxlength="N"!
Permet! de! limiter! le! texte! saisi! à! N! caractères.! Auddelà! de! ce! nombre,! les! frappes!
effectuées!au!clavier!sont!inopérantes!
-!
disabled="disabled"!
Prend!la!valeur!booléenne!unique!disabled,!rend!la!zone!de!saisie!inactive,!empêchant!
ainsi!toute!saisie!
-!
readonly="readonly"!
Permet!d’utiliser!une!zone!de!saisie!pour!afficher!une!information.!Celledci!ne!peut!donc!
pas!être!modifiée,!mais!est!en!lecture!seule!
Exemple.
<form)method="post")action="traitement.php")>)
) <fieldset>)
) )
<legend>Vos)données)personnelles</legend>)
) )
<label>Nom):)</label>)
[NOM!DE!L’AUTEUR]! 44!
!
PROGRAMMATION!WEB!1!!
) )
)
!
CHAPITRE!5!:!LES!FORMULAIRES!!!!!!
<input)type="text")name="nom")maxlength="25")
/><br)/><br)/>)
) )
<label>Prénom):)</label>)
) )
)
<input)type="text")name="prenom")value="Votre)
prénom")maxlength="25")/><br)/><br)/>)
) )
<label>Adresse):)</label>)
) )
)
<input)type="text")name="adresse")value="Votre)
adresse")maxlength="60")/><br)/><br)/>)
) )
<label>Pays):)</label>)
) )
)
<input)type="text")name="pays")value="Votre)
pays")maxlength="20"/><br)/><br)/>)
) )
<input)type="submit")name="envoi")value="Envoyer"/>)
) </fieldset>)
</form>)
Remarque!
Pour!des!raisons!d’ergonomie,!il!est!préférable!que!le!texte!par!défaut!défini!à!l’aide!de!
l’attribut!value!s’efface!tout!seul!au!moment!où!l’utilisateur!clique!dessus!car!cela!lui!évite!
d’avoir! à! le! faire! luidmême.! Il! suffit! pour! cela! d’utiliser! une! instruction! JavaScript! très!
simple!:!
Pour!réagir!à!l’événement!clic!:!
<input) type="text") name="prenom") value="Votre) prénom")
maxlength="25"onclick="this.value=""))/>)
!
Pour!que!le!texte!s’efface!dès!que!la!zone!reçoit!le!focus!(par!tabulation!ou!clic):!
<input) type="text") name="adresse") value="Votre) adresse")
maxlength="60"onfocus="this.value="")/>)
[NOM!DE!L’AUTEUR]! 45!
!
PROGRAMMATION!WEB!1!!
!
CHAPITRE!5!:!LES!FORMULAIRES!!!!!!
4.5.!LES!ZONES!DE!SAISIE!DE!MOT!DE!PASSE!
Les!champs!de!saisie!de!mot!de!passe!sont!quasi!identiques!aux!champs!de!saisie!de!texte.!
Ils!ne!!comportent!qu’une!seule!ligne!et!sont!créés!avec!le!même!élément!<input/>.!La!
différenciation!entre!ces!deux!champs!réside!dans!la!valeur!de!l’attribut!type!qui!prend!la!
valeur!password!au!lieu!de!text.!Pour!l’utilisateur,!le!champ!a!le!même!aspect!visuel,!mais!
quand!il!tape!son!mot!de!passe,!les!caractères!qu’il!utilise!ne!sont!pas!affichés!dans!la!
zone!et!sont!remplacés!par!des!astérisques!(*),!ce!qui!le!protège!des!regards!indiscrets.!
Les!attributs!sont!les!mêmes!que!pour!un!champ!de!texte.!!
4.6.!LES!ZONES!DE!SAISIE!DE!TEXTE!LONG!
Pour!permettre!à!un!visiteur!la!saisie!de!textes!longs,!comme!des!commentaires!dans!
les!blogs,!il!existe!l'élément!<textarea>.!Ce!dernier!crée!un!champ!de!saisie!de!texte!sur!
plusieurs!lignes.!Contrairement!à!l'élément!<input>,!<textarea>!n’est!pas!un!élément!vide!
et!son!contenu!n’est!autre!que!le!texte!saisi!par!le!visiteur.!Les!dimensions!de!la!zone!de!
saisie!doivent!obligatoirement!être!définies.!Pour!cela,!il!faut!utiliser!les!attributs!suivants!
:!
-!
cols="N"! :! fixe! la! largeur! de! la! zone! à! N! caractères.! Le! retour! à! la! ligne! est!
automatique!dans!la!zone.!
-!
rows="N"!:!fixe!la!hauteur!à!N!lignes.!Il!faut!distinguer!la!hauteur!visible!et!le!
nombre!de!lignes!que!l’on!peut!saisir.!En!effet,!le!visiteur!peut!écrire!autant!de!lignes!qu’il!
le! souhaite,! quelle! que! soit! la! hauteur! visible! de! la! zone.! Quand! le! texte! dépasse! la!
capacité!de!la!zone,!une!barre!de!défilement!vertical!apparaît!automatiquement.!
Il!est!à!signaler!que!les!attributs:!disabled,!readonly,!name!et!title!restent!valables!
pour!l'élément!<textarea>.!
Exemple.
<form)action="traitement.php")method="post">)
) <fieldset>)
) )
<legend>Donnez[nous)vos)impressions</legend>)
) )
<label>Votre)nom)</label>)
) )
)
<input)type="text")name="nom")size="25"/><br)/>)
[NOM!DE!L’AUTEUR]! 46!
!
PROGRAMMATION!WEB!1!!
!
CHAPITRE!5!:!LES!FORMULAIRES!!!!!!
<label>Vos)commentaires</label>)
<textarea)name="commentaires")cols="70"))rows="10")) )
onfocus="this.value="">Tapez)vos)commentaires)ici…)) )
)
</textarea><br)/>)
<input)type="submit")value="Envoi)de)vos)commentaires")/>)
<input)type="reset")value=")Effacer)tout")/><br)/>)
</fieldset>)
</form>!
!
!
4.7.!LES!BOUTONS!RADIO!ET!LES!CASES!A!COCHER!
Pour!les!données!dont!les!réponses!sont!prévisibles!et!en!nombre!limité,!on!utilise!
des!éléments!de!formulaire!spéciaux,!nommés!boutons!radio!et!cases!à!cocher.!!
a.! LES!BOUTONS!RADIO!
Les! boutons! radio! sont! utilisés! pour! présenter! plusieurs! choix! dont! la! réponse! est!
unique!(par!exemple,!un!choix!entre!Homme!et!Femme).!Pour!créer!un!bouton!radio,!
on! utilise! l’élément! <input! />! avec! un! attribut! "type"! qui! prend! la! valeur! "radio".!
L’ensemble!des!boutons!radio!avec!lesquels!on!peut!opérer!un!choix!donné!constitue!
un! groupe.! Il! faut! que! tous! ses! éléments! aient! la! même! valeur! pour! leurs! attributs!
"name".! L’attribut! "value"! de! chaque! bouton! radio! contient! la! valeur! que! l’on! veut!
associer!à!chacun!d’eux.!Seule!la!valeur!choisie!dans!le!même!groupe!est!récupérée!
par!le!serveur.!
L’attribut!"checked"!qui!prend!la!valeur!booléenne!unique!"checked"!permet!de!cocher!
par!défaut!un!des!boutons!d’un!groupe,!s’il!est!plus!répandu!que!les!autres.!
L’attribut!"readonly"!bloque!le!bouton!radio!et!impose!ainsi!une!valeur.!!
L’attribut!"disabled"!dont!la!valeur!unique!est!"disabled"!permet!de!rendre!un!bouton!
radio!inactif.!On!peut!l’utiliser!pour!désactiver!un!choix!réalisé!antérieurement.!.
[NOM!DE!L’AUTEUR]! 47!
!
PROGRAMMATION!WEB!1!!
!
CHAPITRE!5!:!LES!FORMULAIRES!!!!!!
L'attribut!"title"!reste!toujours!utilisable.!
Exemple.
<form)action="exemple.php")method="post">)
)
<fieldset>)
)
<label>Monsieur</label>)
)
)
)
<input)type="radio")name="sexe")
value="Monsieur")checked="checked")/>)
)
<label>Madame</label>)
<input)type="radio")name="sexe")value="Madame")/>)
)
</fieldset>)
</form>)
!
b.! LES!CASES!A!COCHER!
Les!cases!à!cocher!sont!utilisées!lorsqu’il!s’agit!d’une!réponse!contenant!plus!qu'un!
choix.!Le!fonctionnement!paraît!identique!aux!boutons!radio!à!la!différence!que!les!
cases!à!cocher!ne!font!pas!partie!d’un!groupe.!!
Une!case!à!cocher!est!encore!créée!à!l’aide!de!l’élément!<input!/>!dont!l’attribut!"type"!
prend! cette! fois! la! valeur! "checkbox".! Les! attributs! "name"! de! chacune! des! cases!
doivent!porter!des!noms!différents.!L’attribut!"value"!est!indispensable!et!il!contient!
la!valeur!associée!à!chaque!case!cochée,!qui!sera!récupérée!côté!serveur!après!l’envoi!
du!formulaire.!Cet!attribut!peut!avoir!une!valeur!de!type!booléen!de!la!forme!«!oui!»!
ou!«!non!».!!
Les!attributs!checked,!disabled!et!title!ont!le!même!rôle!que!les!boutons!radio!peuvent!
être!utilisés!dans!les!mêmes!conditions.!!Le!code!de!création!d’une!case!à!cocher!peut!
donc!être!le!suivant!:!
!
!
[NOM!DE!L’AUTEUR]! 48!
!
PROGRAMMATION!WEB!1!!
!
CHAPITRE!5!:!LES!FORMULAIRES!!!!!!
Exemple.
<form)action)=)"traitement.php")method)=)"post">)
<fieldset>)
) <legend><big>Quelques)renseignements)</big></legend>)
) <![[Civilité[[>)
) )
<label>Mr</label>)
) )
<input)type="radio")name="sexe")value="Monsieur")
checked="checked"/>)
) )
<label>Me</label>)
) )
<input)type="radio")name="sexe")value="Madame")/>)
) )
<label>Mlle</label>)
) )
<input)type="radio")name="sexe")
value="Mademoiselle"/><br)/>)
) <![[Nom)[[>)
) )
<label>Nom)</label>)
) )
<input)type="text")name="nom")size="25")/><br)/>)
) <![[)Pays)[[>)
) )
<label>Pays:)</label>)
) )
<label>France)</label>)
) )
<input)type="radio")name="pays")/>)
) )
<label>Allemagne)</label>)
) )
<input)type="radio")name="pays")/>)
) )
<label>Italie)</label><input)type="radio")
name="pays")/><br/>)
) <![[)Goûts)[[>)
) )
<label>Vos)goûts)musicaux:)</label>)
) )
<label>Classique)</label>)
) )
<input)type="checkbox")name="classique")/>)
) )
<label>)Chanson)française)</label>)
) )
<input)type="checkbox")name="chanson")/>)
) )
<label>)Rock)</label>)
) )
<input)type="checkbox")name="rock")/><br)/>)
[NOM!DE!L’AUTEUR]! 49!
!
PROGRAMMATION!WEB!1!!
!
CHAPITRE!5!:!LES!FORMULAIRES!!!!!!
) )
<input)type="submit")value="valider")/>)
) )
<input)type="reset")value="rétablir")/><br)/>)
) </fieldset>)
</form>!
!
4.8.!LES!LISTES!DE!SELECTION!
Un!autre!moyen!de!faciliter!la!saisie!de!données!par!un!visiteur!d'un!site!consiste!à!lui!
proposer! d’effectuer! un! ou! plusieurs! choix! parmi! une! liste! de! sélection! déroulante!
pouvant! contenir! un! grand! nombre! d’éléments.! Une! liste! de! sélection! est! créée! avec!
l’élément! <select>.! En! soi,! cet! élément! n’entraîne! aucun! rendu! visuel,! il! n’est! que! le!
conteneur!de!la!liste.!Il!doit!donc!inclure!ensuite!autant!d’éléments!<option>qu’il!y!a!de!
choix! proposés! au! visiteur.! La! structure! XHTML! d’une! liste! de! sélection! prend! alors! la!
forme!suivante!:!
<select)name="nom")size="n">)
<option)value="valeur_1">)valeur_1</option>)
<option)value=")valeur_2">)valeur_2</option>)
<option)value=")valeur_3">)valeur_3</option>)
<option)value=")valeur_n">)valeur_n</option>)
</select>!
!
L’élément!<select>!possède!des!attributs!résumés!dans!le!tableau!suivant!:!
Attribut!
Description!
name="texte"!
Permet! de! récupérer! la! ou! les! données! choisies! par! le!
visiteur!dans!une!variable!qui!est!identifiée!par!ce!nom!
[NOM!DE!L’AUTEUR]! 50!
!
PROGRAMMATION!WEB!1!!
size="Nombre"!
!
CHAPITRE!5!:!LES!FORMULAIRES!!!!!!
Définit!le!nombre!de!lignes!d’options!qui!sont!visibles!lors!
de!l’affichage!de!la!liste!
multiple="multiple"!
Prend!la!valeur!booléenne!unique!multiple!pour!indiquer!
que!
l’utilisateur!
peut!
opérer!
plusieurs!
choix!
simultanément!dans!la!liste!en!maintenant!la!touche!Ctrl!
enfoncée!
tabindex="Nombre"!
Attribue!un!ordre!de!tabulation!à!la!liste!et!la!rendre!active!
avec!la!touche!de!tabulation!
disabled="disabled"!
Rend! la! liste! inactive! et! aucun! choix! n’est! plus! alors!
possible!
selected=!"selected"!
définit!une!valeur!par!défaut!autre!que!celle!de!la!première!
option!de!la!liste!
Remarque!!
Quand!l’attribut!multiple!est!défini!et!que!l’on!utilise!un!serveur!PHP,!les!valeurs!choisies!
sont!récupérées!dans!un!tableau,!et!il!faut,!pour!les!récupérer,!que!le!nom!de!la!liste!soit!suivi!
de!crochets!ouvrant!et!fermant!(par!exemple!:!name="nom[]").!
Exemple.
<form)action="exemple.php")method="post">)
<fieldset>)
)
) <legend><b>Veuillez)compléter)le)questionnaire</b></legend>)
) <label>Nom):)</label>)
) )
<input)type="text")name="nom")size="40")
maxlength="256"value="votre)nom")onclick="this.value=‘‘")/><br)/>)
) <![[)Liste)à)choix)unique)[[>)
) <label>Votre)pays</label>)
) )
<select)name="pays")size="1">)
) )
)<option)value="null")disabled="disabled">)Votre)
pays</option>)
[NOM!DE!L’AUTEUR]! 51!
!
PROGRAMMATION!WEB!1!!
!
CHAPITRE!5!:!LES!FORMULAIRES!!!!!!
) )
)
<option)value="France")>)France</option>)
) )
)
<option)value="Belgique")>)Belgique</option>)
) )
)
<option)value="Suisse")>)Suisse</option>)
) )
)
<option)value="Canada")>)Canada</option>)
) )
</select)
) <![[)Liste)à)choix)multiples)[[>)
) <h3>Vos)connaissances)informatique)<small>(Pour)faire)
plusieurs)choix))maintenir)la)touche)CTRL)enfoncée)</small></h3>)
) )
<select)name="savoir[]")size="4")multiple="multiple")>)
) )
)
<option)value="C++")selected="selected">)
C++</option>)
) )
)
<option)value="Java">)Java</option>)
) )
)
<option)value="PHP">)PHP</option>)
) )
)
<option)value="SQL">)SQL</option>)
) )
</select><br)/>)
) <input)type="submit")value="Envoyer)")/>)
) <input)type="reset")value=")Effacer)tout")/><br)/>)
</fieldset>)
</form>!
!
!
!
Pour!créer!des!groupes!d’options!à!l’intérieur!d’une!liste,!il!faut!faire!intervenir!l’élément!
<optgroup>! dans! l’élément! <select>.! Les! options! de! chaque! groupe! sont! incluses! entre! les!
balises!<optgroup>!et!</optgroup>.!À!l’intérieur!d’un!élément!<select>,!on!peut!inclure!autant!
de! groupes! que! l’on! veut.! Le! libellé! de! chaque! groupe! est! donné! dans! l’attribut! "label"! de!
l’élément!<optgroup>.!Le!code!de!création!d’un!groupe!a!donc!la!structure!suivante!:!
<select)name="nom")size="n">)
<optgroup)label="nomGroupe">)
<option)value="valeur_1")>)valeur_1</option>)
<option)value=")valeur_2")>)valeur_2</option>)
[NOM!DE!L’AUTEUR]! 52!
!
PROGRAMMATION!WEB!1!!
!
CHAPITRE!5!:!LES!FORMULAIRES!!!!!!
</optgroup>)
<![[)Autres)groupes)[[>)
</select>!
Exemple.
<form)action="trait.php")method="post")>)
<fieldset>)
)
<legend><b>Veuillez)compléter)le)questionnaire</b></legend>)
<![[)Liste)à)choix)unique)[[>)
)
<label>Nom):)</label>)
)
)
)
<h3>Indiquez)quel)est)votre)pays)
)
)
<select)name="pays")size="1")>)
)
)
)
<option)value="null")>)Votre)pays</option>)
)
)
)
<optgroup)label="Afrique)du)nord">)
)
)
)
)
<option)value="Tunisie")>)Tunisie</option>)
)
)
)
)
<option)value="Algérie")>)Algérie</option>)
)
)
)
)
<option)value="Maroc")>)Maroc</option>)
)
)
)
)
<option)value="Libye)")>)Libye</option>)
)
)
)
</optgroup>)
)
)
)
<optgroup)label="Europe">)
)
)
)
)
<option)value="France")>)France</option>)
)
)
)
)
<option)value="Belgique")>)Belgique</option>)
)
)
)
)
<option)value="Suisse")>)Suisse</option>)
)
)
)
)
<option)value="Allemagne")>)
<input)type="text")name="nom")/>)
Allemagne</option>)
)
)
)
</optgroup>)
)
)
)
<optgroup)label="Autres">)
)
)
)
)
<option)value="Europe")>)Europe)</option>)
)
)
)
)
<option)value="Asie")>)Asie)</option>)
[NOM!DE!L’AUTEUR]! 53!
!
PROGRAMMATION!WEB!1!!
)
)
!
CHAPITRE!5!:!LES!FORMULAIRES!!!!!!
)
)
<option)value="Amériques")>)Amériques)
<option)value="Océanie")>)Océanie</option>)
</option>)
)
)
)
)
)
)
)
</optgroup>)
)
)
</select></h3>)
)
<input)type="submit")value="Envoyer")/>)
)
<input)type="reset")value=")Effacer)tout")/><br)/>)
)
</fieldset>)
</form>)
4.9.!LES!ZONES!CACHEES!
Dans!certains!cas,!un!formulaire!peut!contenir!des!zones!de!texte!cachées.!Ces!zones!
peuvent!servir!pour!recueillir!des!données.!Pour!définir!ce!type!de!zones!de!saisie,!il!faut!
recourir!à!l’élément!<input!/>!avec!un!attribut!type!auquel!il!faut!attribuer!la!valeur!hidden.!
4.10.!
LES!ZONES!FILE!
Dans!un!siteinteractif,!il!est!possible!de!permettre!aux!visiteurs!d’envoyer!des!fichiers!du!
poste!client!vers!le!serveur!(photo,!image!d’un!objet!à!vendre…).!Il!est!possible!de!le!faire!
avec!l’élément!<input!/>!doté!d’un!attribut!"type"!qui!prend!la!valeur!"file".!Dans!ce!cas,!
l’élément!<form>!doit!utiliser!la!méthode!"post"!et!avoir!un!attribut!"enctype"!comme!
c’est!indiqué!dans!l’exemple!suivant!:!
<form)action="traitement.php")method="post")
enctype="multipart/form[data")>)
<fieldset>)
<legend><b>Envoyez[nous)votre)photo</b></legend>)
<label>Choisissez)le)fichier)JPEG)ou)PNG):)</label>)
<input)type="file"name="fichier")accept="image/jpeg,image/png")
/>)
</fieldset>)
[NOM!DE!L’AUTEUR]! 54!
!
PROGRAMMATION!WEB!1!!
!
CHAPITRE!5!:!LES!FORMULAIRES!!!!!!
</form>!
</body>!
5.! APPORTS!DU!HTML5!
5.1.!
LES!NOUVEAUX!OBJETS!
Objet!
Description!
Code!HTML!5!
date!
Champ!de!saisie!d'une!date.!
<input!type="date"!name="d"!/>!
time!
Champ!de!saisie!de!l'heure.!
<input!type="time"!name="t"!/>!
month!
Champ!de!saisie!du!mois.!
<input!type="month"!name="m"!/>!
week!
Champ! de! saisie! du! numéro! de! la!
semaine.!
<input!type="week"!name="w"!/>!
datetimed Champ! de! saisie! de! la! date! et! de! <input!type="datetimedlocal"!name="t"!
local!
l'heure!au!format!local.!
/>!
Champ! permettant! l'incré/la! décré!
number!
d'une! valeur! numérique! initiale! (0! <input!
type="number"!
name="n"!
par! défaut).! On! peut! fixer! la! valeur! min="1"!max="20"!step="2/>!
minimale,!maximale!ou!le!pas.!
Champ!permettant!la!sélection!d'un!
code! couleur! dans! une! palette.! La!
color!
couleur! est! au! format! héxadécimal.!
La!valeur!par!défaut!est!le!noir!qu'on!
<input! type="color"! name="couleur"!
value="#ff0000"/>!
peut!modifier!avec!l'attribut!"value".!
Champ!ressemblant,!en!apparence,!à!
url!
celui!de!type!text,!mais!il!n'acceptera!
que! les! formats! url! de! type:! ftp://,!
<input!type="url"!name="t"!/>!
mailto://!ou!http://.!
[NOM!DE!L’AUTEUR]! 55!
!
PROGRAMMATION!WEB!1!!
!
CHAPITRE!5!:!LES!FORMULAIRES!!!!!!
Champ! très! proche! du! type! text.! La!
valeur!saisie!doit!avoir!le!format!d'un!
email:! au! minium! un! caractère!
email!
(caractère!non!accentué!comprenant!
<input!type="email"!name="t"!/>!
d! et! _)! suivi! d'un! @! suivi! à! son! tour!
d'un!caractère.!
5.2.!
LES!NOUVEAUX!ATTRIBUTS!
Attribut!
required!
Description!
Il! impose! la! présence! d'une! saisie! <input!
dans!le!champ!correspondant.!
Il! permet! de! donner! le! focus! à! un!
autofocus!
Code!HTML!5!
champ! dès! le! chargement! de! la!
page.!
type="text"!
name="d"!!
required="required"/>!
<input!
type="text"!
name="d"!!
autofocus="autofocus"/>!
Il! donne! une! chaîne! de! caractères! <input!
type="email"!
placeholder! contenant! des! indications! pour! le! value="[email protected]"! ! ! ! placeholder! =!
remplissage!d'un!champ.!
"veuillez!indiquer!un!Edmail!valide"/>!
Il!permet!de!définir!une!expression! Voir!dans!ce!qui!suit!
pattern!
régulière!de!filtrage.!
Min,! max,! !
step!
!
Déjà!vu!précédemment!
!
!
!
!
!
[NOM!DE!L’AUTEUR]! 56!
!
PROGRAMMATION!WEB!1!!
!
CHAPITRE!5!:!LES!FORMULAIRES!!!!!!
Exemples.
<input)type="text")pattern="[A[F][0[9]{5}"/>)
<input)type="text")pattern="[a[zA[Z]+[0[9]{4}[A[Z]?"/>)
<input)type="text")pattern="[a[z]{6,}")/>)
<input)type="text")pattern="[A[Z]{6,10}")/>)
<input)type="text")pattern=".{10}")/>)
<input)type="tel")pattern="^[0[9]{8}$"/>)
<input) type="email") pattern="[a[zA[Z0[9.[_) ]+@[a[zA[Z]+\.[a[zA[
Z]{2,3}"/>)
<input)type="url")pattern="^http://www\..+\..+$"/>)
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
[NOM!DE!L’AUTEUR]! 57!
!
PROGRAMMATION!WEB!1!!
!
CHAPITRE!6!:!INTRODUCTION!AU!CSS!!!
!
CHAPITRE!6
INTRODUCTION!AU!CSS
!
!
PRESREQUIS!:!
!
Langage!HTML,!XHTML!
OBJECTIFS!GENERAUX!:!
!
Introduire!la!mise!en!page!des!pages!web!en!utilisant!le!langage!CSS.!
PLAN!:!
I. LES!AVANTAGES!DES!CSS!
II. LA!SYNTAXE!
III. LES!SELECTEURS!
1. LA!SELECTION!D’UN!SEUL!ELEMENT!
2. LA!SELECTION!DE!PLUSIEURS!ELEMENTS!
3. LE!SELECTEUR!UNIVERSEL!
4. LES!CLASSES!
5. L'APPLICATION!DE!PLUSIEURS!CLASSES!AU!MEME!ELEMENT!
6. LE!SELECTEUR!D’IDENTIFIANT!ID!
7. LES!PSEUDOdCLASSES!ET!LES!PSEUDOdELEMENTS!
IV. OU!ECRIRE!LES!STYLES!?!
1. MANIERE!1!:!DANS!L’ELEMENT!<STYLE>!
2. MANIERE!2!:!DANS!UN!FICHIER!EXTERNE!
3. MANIERE!3!:!DANS!L’ATTRIBUT!STYLE!
[NOM!DE!L’AUTEUR]! 58!
!
PROGRAMMATION!WEB!1!!
!
CHAPITRE!6!:!INTRODUCTION!AU!CSS!!!
CHAPITRE!6!:!INTRODUCTION!AU!CSS!
!
1.! LES!AVANTAGES!DES!CSS!
La! création! de! styles! CSS! (Cascading! Style! Sheets! ou! feuilles! de! style! en! cascade)! est! le!
complément! indispensable! du! langage! XHTML.! Ce! procédé! correspond! parfaitement! à! la!
séparation!du!contenu!et!de!la!présentation.!Cette!séparation!permet!de:!
-! Alléger!les!pages!en!centralisant!les!définitions!des!styles!en!un!point!unique:!une!seule!
définition!pouvant!s’appliquer!à!un!grand!nombre!d’éléments.!!
-! Faciliter!la!maintenance!et!l’évolution!des!sites:!elle!apporte!une!grande!rigueur!dans!
la! conception! des! pages! et! permet! un! travail! collaboratif! entre! plusieurs!
programmeurs!travaillant!en!parallèle,!d’où!une!réduction!des!délais!de!production.!!
2.! LA!SYNTAXE!
Pour!déclarer!un!style,!il!faut!suivre!quelques!règles!générales.!La!syntaxe!doit!avoir!l'allure!
suivante!
Sélecteur){)
)
)))))))))))propriété)1):)valeur);)
propriété)2):)valeur);)
propriété)n):)valeur);)
)
))))))}!
!
Exemple!:!
div){)color):)red);))
background[color):yellow);}!
!
Avec!:!
-! div:!un!sélecteur,!!
-! color:! propriété! qui! détermine! la! couleur! du! texte! de! l’élément,! red! est! la! valeur!
attribuée!à!cette!couleur,!!
-! backgrounddcolor!désigne!la!couleur!de!fond,!yellow!est!sa!valeur.!!
[NOM!DE!L’AUTEUR]! 59!
!
PROGRAMMATION!WEB!1!!
!
CHAPITRE!6!:!INTRODUCTION!AU!CSS!!!
Par.la.suite,!tous!les!éléments!<div>!de!la!page!dans!laquelle!se!trouve!cette!déclaration!ont!
donc!un!contenu!écrit!en!rouge!sur!fond!jaune.!
3.! LES!SELECTEURS!
Les!sélecteurs!permettent!d’appliquer!un!style!à!tous!les!éléments,!en!une!seule!ligne!de!code,!
sans!avoir!à!répéter!la!définition!dans!plusieurs!pages!web.!!
3.1.!LA!SELECTION!D’UN!SEUL!ELEMENT!
Il! s’agit! de! la! sélection! la! plus! simple,! puisque! le! sélecteur! est! constitué! du! nom! de!
l’élément!sans!les!caractères!de!début!<!et!de!fin!de!balise!/>.!!
Exemple!:!
p){color):)yellow);)background[color):blue;})
!
Effet:!le!texte!de!tous!les!paragraphes!s'affiche!en!jaune!sur!fond!bleu.!
3.2.!LA!SELECTION!DE!PLUSIEURS!ELEMENTS!
On!peut!appliquer!le!même!style!à!plusieurs!éléments!différents!en!les!énumérant!et!en!
les!séparant!par!une!virgule!dans!le!sélecteur.!Cette!possibilité!de!regroupement!est!utile!
pour!définir!des!styles!communs!à!un!ensemble!d’éléments!et!évite!la!répétition.!
Exemple.
h1){color):)black);)background[color):)red;})
div){color):)black);)background[color):)red;})
p){color):)black);)background[color):)red;}!
!
seront!remplacés!par!:!
h1,)div,)p){color):)black);)background[color):)red;})
!
Exemple:!
h1,div,p){color):)black);)background[color):)red;})
div){margin):)20px;}!
!
[NOM!DE!L’AUTEUR]! 60!
!
PROGRAMMATION!WEB!1!!
!
CHAPITRE!6!:!INTRODUCTION!AU!CSS!!!
Effet:!
-! L’élément<div>!va!avoir!à!la!fois!un!texte!noir!et!un!fond!rouge!comme!les!éléments!<h1>!
et!<p>.!
-! Il!aura,!de!même,!une!marge!de!20!pixels.!
3.3.!LE!SELECTEUR!UNIVERSEL!
Pour!appliquer!un!style!à!tous!les!éléments,!nous!utiliserons!le!sélecteur!universel!*!avant!
la!définition!d’une!ou!plusieurs!propriétés.!!
Exemple1:!
*{background[color):)yellow;})
!
Effet:!tous!les!éléments!auront!la!couleur!de!fond!jaune.!
Exemple2:!
!!*{backgrounddcolor!:!yellow;}!
! p{backgrounddcolor!:!gray;}!
!
Effet:!tous!les!éléments!ont!un!fond!jaune,!sauf!<p>!aura!un!fond!gris.!
3.4.!LES!CLASSES!
Une!classe!permet!d’appliquer!un!style!à!un!élément!via!l’attribut!class.!Pour!créer!une!
classe,!le!sélecteur!est!constitué!du!nom!choisi!pour!la!classe!précédé!d’un!point!(.).!Le!
nom!de!la!classe!peut!être!un!mot!quelconque,!en!évitant!quand!même!les!noms!des!
propriétés!CSS!et!des!éléments!XHTML!car!cela!occasionnerait!des!confusions.!Les!classes!
présentent!l’intérêt!de!pouvoir!s’appliquer!à!n’importe!quel!élément,!n’importe!où!dans!
le!code!de!la!page!
Exemple1!:!
Code!CSS!:!!).class1){color):)red;}!
Code!XHTML!:!!!<p)class="class1">Texte)contenu)du)paragraphe</p>!
Effet:!le!paragraphe!aura!comme!couleur!de!texte!rouge.!Il!est!distingué!du!reste!du!texte!
qui!aura!la!couleur!par!défaut.!
[NOM!DE!L’AUTEUR]! 61!
!
PROGRAMMATION!WEB!1!!
!
CHAPITRE!6!:!INTRODUCTION!AU!CSS!!!
!
Exemple2!:!
Code!CSS:!div.classe1){background–color):)blue;)color):)red;})
Code!XHTML!:!
<div)class="classe1">Texte1</div>)
<div>Texte2</div>)
Effet:!seule!Texte1!aura!une!couleur!de!texte!rouge!sur!un!fond!bleu.!La!classe!classe1!ne!
sera!pas!appliqué!sur!Texte2.!
3.5.!L'APPLICATION!DE!PLUSIEURS!CLASSES!AU!MEME!ELEMENT!
La! puissance! de! l'application! de! plusieurs! classes! est! la! possibilité! de! combiner! des!
propriétés!de!chacune!des!classes.!!
Exemple!:!
Code!CSS:!
.jaune){color:)yellow;})
.classe1){color:)red;})
.classe2){font[style:)italic})
.classe3){background[color:)#CCC;}!
!
Code!XHTML!
<h1)class="jaune">XHTML)et)CSS</h1>)
<div)class="classe1">)Un)texte)de)classe)1(texte)rouge))
</div>)
<div)class="classe1)classe2">)Un)texte)de)classe)1)et)2)
(texte)rouge)et)en)italique)))
</div>)
<div)class="classe1)classe3">)Un)texte)de)classe)1)et)3)
(texte)rouge)et)fond)gris))
</div>)
<div)class="jaune))classe2)classe3">)Un)texte)de)classe)
jaune,)2)et)3)(texte)jaune,)))
en)italique)et)fond)gris))
</div>)
[NOM!DE!L’AUTEUR]! 62!
!
PROGRAMMATION!WEB!1!!
!
CHAPITRE!6!:!INTRODUCTION!AU!CSS!!!
!
3.6.!LE!SELECTEUR!D’IDENTIFIANT!ID!
Chaque!élément!peut!avoir!un!attribut!id!qui!doit!être!unique!dans!une!page!!donnée.!Un!
identifiant!doit!être!précédé!par!le!caractère!dièse!(#).!
Exemple!:!
Code!CSS:!
div){color:)aqua;})
#bleu){color:)white;)background[color:)blue;}!
!
Code!XHTML!:!
!!!!!!!<div)id="bleu">Texte)en)blanc)sur)bleu</div>)
<div>Texte)en)turquoise)</div>!
3.7.!LES!PSEUDOSCLASSES!ET!LES!PSEUDOSELEMENTS!
Les!sélecteurs!précédents!permettent!d’attribuer!un!style!à!un!ou!plusieurs!éléments!bien!
définis! dans! la! hiérarchie! d’un! document! XHTML.! Les! pseudodclasses! et! les! pseudod
éléments!permettent!de:!
-! attribuer!un!style!à!une!partie!d'un!élément,!par!exemple!le!premier!caractère!ou!la!
première!ligne!d’un!paragraphe.!
-! attribuer! un! style! à! un! document! en! fonction! des! actions! de! l’utilisateur! final,! par!
exemple!le!fait!de!placer!son!curseur!sur!un!lien!ou!un!composant!de!formulaire.!
!! Les!pseudoSclasses!applicables!aux!liens!
Deux! pseudodclasses! spécifiques! aux! éléments! possèdent! un! attribut! href! faisant!
référence!à!un!document!externe!(lien!vers!une!autre!page)!ou!interne!(ancre!vers!une!
partie!du!même!document).!Il!s’agit!des!pseudodclasses!suivantes!:!
%! :link,! qui! permet! d’attribuer! un! style! à! un! lien! qui! pointe! vers! un! document! non!
encore!vu.!C’est!l’état!normal!de!tous!les!liens!à!l’ouverture!de!la!page.!
%! :visited,!pour!attribuer!un!style!à!un!lien!qui!pointe!vers!un!document!déjà!vu,!après!
un!retour!sur!la!page!d’origine.!
Pour!les!employer,!il!faut!faire!précéder!le!nom!de!la!pseudodclasse!de!celui!de!l’élément.!
!
[NOM!DE!L’AUTEUR]! 63!
!
PROGRAMMATION!WEB!1!!
!
CHAPITRE!6!:!INTRODUCTION!AU!CSS!!!
Exemple!:!
) a:link){color:)blue;})
) a:visited){color:)red;}!
!
!! Les!pseudoSclasses!dynamiques!
Elles!permettent!d’attribuer!un!style!à!un!élément!en!fonction!des!actions!effectuées!par!
le!visiteur.!Ces!pseudodclasses!sont!dynamiques!car!le!style!attribué!disparaît!avec!le!motif!
de!leur!création.!Elles!sont!au!nombre!de!trois!:!
%! :focus,! pour! attribuer! un! style! à! l’élément! qui! a! le! focus.! Le! style! disparaît! quand!
l’élément!perd!le!focus.!!
Exemple!:!
a:focus{color:)red;})
input:focus{background–color:)blue;}!
!
%! :hover,!pour!attribuer!un!style!à!un!élément!visible!dont!la!zone!est!survolée!par!le!
pointeur!de!la!souris.!Quand!le!pointeur!quitte!cette!zone,!le!style!est!annulé,!ce!qui!
peut!produire!des!effets!visuels!intéressants.!!
. Exemple!:!
! !
div:hover{backround[color:)red;)color:)white;})
%! :active,!pour!attribuer!un!style!à!un!élément!dit!actif,!c’estdàddire!quand!l’utilisateur!
clique! sur! son! contenu.! Là! aussi,! l’effet! est! transitoire! et! ne! dure! que! le! temps! de!
l’activation!de!l’élément.!
. Exemple!
! )
a:active{background[red;)color:)yellow;})
!! Les!pseudoSéléments!
Leur!nom!vient!de!ce!qu’ils!permettent!d’agir!sur!une!partie!du!contenu!d’un!élément!
comme!s’il!était!contenu!dans!un!nouvel!élément!fictif.!On!dénombre!les!quatre!pseudos!
éléments!suivants!:!
[NOM!DE!L’AUTEUR]! 64!
!
PROGRAMMATION!WEB!1!!
!
CHAPITRE!6!:!INTRODUCTION!AU!CSS!!!
%! :firstSletter,! qui! permet! d’affecter! un! style! à! la! première! lettre! du! contenu! d’un!
élément!indiqué!avant!ce!sélecteur.!On!l’utilise!classiquement!pour!créer!des!effets!de!
lettrines.!!
. Exemple:!
! !
p:first[letter){font[size:)300%;)color:)blue;})
%! :firstSline,!qui!permet!d’affecter!un!style!à!la!première!ligne!du!contenu!de!l’élément!
indiqué.!Cet!affichage!permet!d’attirer!l’attention!sur!un!texte.!!
. Exemple!:!
! !
div:first[line{font[size:)150%;)font[weight:)bold;})
%! :before,!qui!permet!d’insérer!un!contenu!doté!d’un!style!particulier!avant!le!contenu!
réel!de!l’élément!précisé,!en!l’associant!avec!la!propriété!content.!!
. Exemple:!
! !
Code!CSS:!
! !
p:before{content:"<<";)font[weight:)bold;})
! !
Code!XHTML!
! !
<p>ceci)est)un)texte</p>)
%! :after,!qui!joue!un!rôle!similaire!au!précédent!mais!définit!un!contenu!doté!d’un!style!
à!la!fin!du!contenu!de!l’élément!utilisé.!(
. Exemple:!
! !
Code!CSS:!
! !
p:after{content:">>";)font[weight:)bold;})
! !
Code!XHTML!
! !
<p>ceci)est)un)texte</p>)
4.! OU!ECRIRE!LES!STYLES!?!
Les!styles!CSS!peuvent!être!intégrés!dans!le!document!XHTML!de!plusieurs!manières!:!
4.1.!MANIERE!1!:!DANS!L’ELEMENT!<STYLE>!
L’élément!<style>!a!pour!vocation!de!renfermer!les!définitions!des!styles!CSS!utilisables!
dans!la!page!qui!le!contient.!Il!doit,!toujours,!être!inclus!dans!l’élément!<head>!et!qu’il!ne!
peut!contenir!que!des!définitions!de!styles!CSS!et!des!commentaires!XHTML!délimités!par!
<!dd!et!dd>!ou!des!commentaires!CSS!délimités!par!/*!et!*/.!!
[NOM!DE!L’AUTEUR]! 65!
!
PROGRAMMATION!WEB!1!!
!
CHAPITRE!6!:!INTRODUCTION!AU!CSS!!!
Exemple!1:!
)
<head>)
)
<style)type=)"text/CSS">)
)
div,p){font[style:)italic;})
)
h1,h2){color:)red;})
)
</style>)
)
</head>!
!
4.2.!Manière!2!:!dans!un!fichier!externe!
La!tendance!actuelle!étant!à!la!recommandation!de!la!séparation!du!contenu!et!de!la!
présentation!des!pages!web,!l’écriture!des!styles!dans!les!fichiers!externes!est!fortement!
conseillée.!Il!s’agit!de!fichiers!écrits!en!texte!brut!réalisables!avec!un!éditeur!simple.!Le!
fichier! ne! devra! contenir! que! des! sélecteurs! et! les! définitions! des! styles! ainsi! que! des!
commentaires!CSS!(délimités!par!les!caractères!/*!et!*/)!mais!aucune!balise!d’élément!
XHTML.!Le!fichier!CSS!doit!toujours!être!enregistré!sous!l’extension!.CSS.!
Exemple!:!
Code!CSS!:!
/*)Styles)communs)à)toutes)les)pages)*/)
/*)fichier:«)commun.CSS)»)*/)
body){background[color:)white;)color:)marine;})
h1){color:)black;)font[size:)20px;})
div,p){font[size:)12px;})
a:link){color:)blue;})
a:hover){color:)red;}!
!
Code!XHTML!
))<head>)
) <link)rel="stylesheet")type="text/CSS")href="commun.CSS")/>)
) ......)
) </head>)
!
!
!
[NOM!DE!L’AUTEUR]! 66!
!
PROGRAMMATION!WEB!1!!
!
CHAPITRE!6!:!INTRODUCTION!AU!CSS!!!
Manière!3!:!dans!l’attribut!style!
Nous!signalons!cette!possibilité!pour!mémoire!car!il!n’est!pas!conseillé!de!l’utiliser.!
Exemple!:!
<p>) Le) langage) <span) style="color:) red) ">) XHTML) </span>)
représente)la)dernière)évolution)du)<span)style="color:)gray">)
HTML)</span></p>)
!
Il! va! de! soi! que! cette! manière! ne! correspond! en! rien! à! la! philosophie! de! l’association!
XHTML!et!CSS,!qui!commande!une!séparation!du!contenu!et!de!la!mise!en!forme.!De!plus,!
toute!modification!de!ces!styles!demande!une!exploration!de!tout!le!code!XHTML!afin!de!
repérer!tous!les!attributs!style,!ce!qui!rend!la!maintenance!plus!longue!à!réaliser.!
!
!
!
!
!
[NOM!DE!L’AUTEUR]! 67!
!
PROGRAMMATION!WEB!1!!
CHAPITRE!7
!
CHAPITRE!7!:!PROPRIETES!DE!MISE!EN!FORME!ET!LISTE!!
PROPRIETES!DE!MISE!EN!FORME!
ET!LISTES
!
PRESREQUIS!:!
Langage!HTML,!XHTML!
!
OBJECTIFS!GENERAUX!:!
!
Introduire!la!mise!en!page!des!pages!web!en!utilisant!le!langage!CSS.!
!
Manipuler!!les!propriétés!de!mise!en!forme!et!listes!de!CSS!
PLAN!:!
I.
LES!UNITES!DE!MESURE!DE!LONGUEUR!EN!CSS!
II. LES!PROPRIETES!DE!FORMATAGE!DE!TEXTE!
1. LES!POLICES,!TAILLE!ET!DECORATION!
2. L'ALIGNEMENT!
III. LES!PROPRIETES!DE!COULEUR!ET!DE!FOND!!
1. LES!COULEURS!
2. LES!IMAGES!DE!FOND!
IV. LES!PROPRIETES!DES!LISTES!
!
[NOM!DE!L’AUTEUR]! 68!
!
!
PROGRAMMATION!WEB!1!!
!
CHAPITRE!7!:!PROPRIETES!DE!MISE!EN!FORME!ET!LISTE!!
CHAPITRE!7!:!PROPRIETES!DE!MISE!EN!FORME!ET!DE!LISTES!
!
1.! LES!UNITES!DE!MESURE!DE!LONGUEUR!EN!CSS!
CSS! offre! différentes! unités! pour! exprimer! les! dimensions.! Certaines! proviennent! de! la!
typographie,! comme! le! point! (pt)! et! le! pica! (pc),! d'autres! sont! connues! pour! leur! usage!
quotidien,!comme!le!centimètre!(cm)!et!le!pouce!(in).!Il!y!a!également!une!unité!"magique"!
inventée!spécifiquement!pour!CSS:!le!pixel!px,!et!une!unité!dépendant!de!l'élément!contenant!
qui!est!le!pourcentage!(%).!
Le!tableau!suivant!résume!les!unités!:!
Type!
Unité!absolue!
Unité!
Description!
cm!
Centimètre!
mm!
millimètre!
in(inch)!
Pouce=2.54cm!
pt(point)!
1pt=!1/72!in!
pc(pica)!
1pc=!12!pt!
px!(pixel)!
Pixel!signifie!Picture!Element.!C'est!une!unité!de!mesure!
!
!
relative!qui!dépend!des!dimensions!de!la!zone!utile!de!
l'écran!et!du!mode!vidéo!utilisé.!!
Selon! les! définitions! vidéo,! le! nombre! de! pixels! varie!
grandement!pour!un!même!écran:!
Unité!relative!
-! Mode!VGA!:!640x480!pixels!!
-! Mode!SVGAdI!:!800x600!pixels!!
-! Mode!SVGAdII:!1024x768!pixels.!!
pourcentage!
em!ou!ex!
relative!à!la!hauteur!des!caractères!de!la!police!
%!
relative!à!une!unité!de!longueur!
!
!
!
!
!
[NOM!DE!L’AUTEUR]! 69!
!
PROGRAMMATION!WEB!1!!
!
CHAPITRE!7!:!PROPRIETES!DE!MISE!EN!FORME!ET!LISTE!!
!
2.! LES!PROPRIETES!DE!FORMATAGE!DE!TEXTE!
2.1.!!LES!POLICES,!TAILLE!ET!DECORATION!
!
Propriété!
Description!
Valeurs!
fontdstyle!!
Définit!le!style!de!police!
•!italic!:!italique!!
•!oblique!:!autre!façon!de!mettre!en!italique!
•!normal!:!normal!(par!défaut)!
fontdvariant!
Définit!si!la!police!doit!être! •!smalldcaps!:!petites!capitales!
rendue!en!petites!capitales! •!!normal!:!normal!(par!défaut)!
ou!non!
fontdweight!
Définit! la! graisse! de! la! •!bold!:!gras!!
police!
•!bolder!:!plus!gras!!
•!lighter!:!plus!fin!!
•!normal!:!normal!(par!défaut)!
fontdsize!
Définit!la!taille!de!la!police! •!px!(pixels)!
•!%!(pourcentage,!100%!=!normal)!!
•!em!(taille!relative,!1.0!=!normal)!!
•!ex!(taille!relative!à!la!hauteur!de!la!lettre!
"x".!1.0!=!normal)!!
•!nom!de!taille!!
-!xxdsmall!:!très!très!petit!!
-!xdsmall!:!très!petit!!
-!small!:!petit!!
-!medium!:!moyen!!
-!large!:!grand!!
-!xdlarge!:!très!grand!!
-!xxdlarge!:!très!très!grand!
[NOM!DE!L’AUTEUR]! 70!
!
PROGRAMMATION!WEB!1!!
fontdfamily!
!
CHAPITRE!7!:!PROPRIETES!DE!MISE!EN!FORME!ET!LISTE!!
Indiquer! les! noms! de! Exp:!
polices!possibles!par!ordre! fontdfamily:police1,!police2,!police3;!!
de!préférence.!
Rq:!On!utilise!des!guillemets!si!le!nom!de!la!
!
police!comporte!des!espaces.!!
!
textddecoration!
La!décoration!du!texte!
•! underline!:!souligné!!
•! overline!:!ligne!auddessus!!
•! linedthrough!:!barré!!
•! blink!:!clignotant!!
•! !none!:!normal!(par!défaut)!
textdtransform!
Mettre!
un!
texte!
en! •!
uppercase!:!tout!en!majuscules!
•!
lowercase!:!tout!en!minuscules!!
majuscule!ou!pas!
•!capitalize!:!début!des!mots!en!majuscules!
•!
Font!
Mégadpropriété!de!police!
!none!:!normal!(par!défaut)!
Indique! dans! n'importe! quel! ordre! des!
valeurs! possibles! pour! fontdfamily,! fontd
weight,! fontdstyle,! fontsize,! fontdvariant.!
Exp:!font:Arial,!bold,!16px;!!
2.2.!L'ALIGNEMENT!
Propriété!
Description!
Définit!
textdalign!
Valeurs!
l'alignement!
horizontal! d'un! texte! au!
sein!de!son!conteneur!
•!left!:!à!gauche!(par!défaut)!!
•!center!:!centré!
•!right!:!à!droite!!
•!justify!:!texte!justifié!!
Définit!l'alignement!vertical!
verticaldalign!
d'un! texte! au! sein! de! son!
conteneur!
A!utiliser!dans!des!cellules!de!tableau!!
•!top!:!en!haut!!
•!middle!:!au!milieu!
•!bottom!:!en!bas!
[NOM!DE!L’AUTEUR]! 71!
!
PROGRAMMATION!WEB!1!!
!
CHAPITRE!7!:!PROPRIETES!DE!MISE!EN!FORME!ET!LISTE!!
Définit! un! alinéa! pour! la!
textdindent!
première! ligne! de! texte!
d'un!élément.
Indiquer!une!valeur!en!pixels!(px).!Valeur!
par!défaut!est!0!
Définit! la! hauteur! de! ligne! Indiquer! une! valeur! en! pixels! (px)! ou! en!
linedheight!
d'un!texte!
pourcentage!(%)!
Définit! l'espacement! entre!
letterdspacing!
chaque!lettre!d'un!texte!
Définit! l'espacement! entre!
worddspacing!
chaque!mot!d'un!texte!
Indiquer!une!valeur!en!pixels!(px)!
Indiquer!une!valeur!en!pixels!(px)!
3.! LES!PROPRIETES!DE!COULEUR!ET!DE!FOND!!
3.1.!LES!COULEURS!
Type!
Propriété!
Valeurs!possibles!
Couleur!de!texte!
color!
Indiquer!une!couleur:!
d! En! indiquant! le! nom! de! la! couleur! en! anglais!
(black,!blue,!green,!white,!red...)!d!En!indiquant!la!
couleur!en!hexadécimal!(#CC48A1)!!
d!En!indiquant!la!couleur!en!RGB!:!rgb!(128,!255,!0)!
Couleur!de!fond!
backgrounddcolor!
Même! chose! que! pour! color,! pour! la! couleur! de!
fond!du!texte!
3.2.!LES!IMAGES!DE!FOND!
Type!
Propriété!
Image!de!fond! backgrounddimage!
Valeurs!possibles!
Indiquer!l'url!de!l'image!(notation!absolue!ou!relative)!!
backgrounddimage:url("images/fond.png");!!
Backgrounddimage:url!
("http://www.monsite.com/images/fond.png");!!
Fond!fixé!
backgroundd
attachment!
•!fixed!:!le!fond!reste!fixe!quand!on!descend!plus!bas!
sur!la!page!!
•!scroll!:!le!fond!défile!avec!le!texte!(par!défaut)!
[NOM!DE!L’AUTEUR]! 72!
!
PROGRAMMATION!WEB!1!!
!
CHAPITRE!7!:!PROPRIETES!DE!MISE!EN!FORME!ET!LISTE!!
Répétition! du! backgrounddrepeat! •!repeat!:!le!fond!se!répète!(par!défaut)!!
fond!
•!repeatdx! :! le! fond! ne! se! répète! que! sur! une! ligne,!
horizontalement!!
•!repeatdy!:!le!fond!ne!se!répète!que!sur!une!colonne,!
verticalement!!
•!nodrepeat!:!le!fond!ne!se!répète!pas,!il!n'est!affiché!
qu'une!fois!
Position!
du! backgroundd
fond!
position!
2!façons!de!faire!:!
d!En!notant!une!distance!en!px!ou!%,!par!rapport!au!
coin!en!haut!à!gauche.!
backgrounddposition:50px!200px;!/*!50!px!à!droite,!
200px!en!bas!*/!!
d! En! utilisant! des! valeurs! prédéfinies,! une! pour! la!
verticale!et!une!pour!l'horizontale!:!!
o! top!:!en!haut,!verticalement!!
o! center!:!au!milieu,!verticalement!!
o! bottom!:!en!bas,!verticalement!!
o! left!:!à!gauche,!horizontalement!
o! center!:!au!centre,!horizontalement!!
o! right!:!à!droite,!horizontalement!
!backgrounddposition! :! bottom! right;! /*! en! bas! à!
droite!*/!
Mégad
background!
Indique! dans! n'importe! quel! ordre! des! valeurs!
propriété! de!
possibles! pour! backgrounddimage,! backgroundd
fond!
repeat,! backgrounddattachment! et! backgroundd
position.!L'ordre!des!valeurs!n'a!pas!d'importance!et!
on! n'est! pas! obligé! de! mettre! toutes! les! valeurs! de!
ces!propriétés!(au!moins!une!suffit)!
background:url("images/fond.png")! nodrepeat! fixed!
top!right;!
[NOM!DE!L’AUTEUR]! 73!
!
PROGRAMMATION!WEB!1!!
!
CHAPITRE!7!:!PROPRIETES!DE!MISE!EN!FORME!ET!LISTE!!
4.! LES!PROPRIETES!DES!LISTES!
Type!
Propriété!
Valeurs!possibles!
Type!de!liste!
listdstyledtype!
Pour!les!listes!non!ordonnées!(<ul>)!:!
!
•!disc!:!un!disque!noir!(par!défaut)!
•!circle!:!un!cercle!
•!square!:!un!carré!
•!none!:!aucune!puce!ne!sera!utilisée!
Pour!les!listes!ordonnées!(<ol>)!:!
•!decimal!:!des!nombres!1,!2,!3,!4...!(par!défaut)!
•!upperdroman!:!numérotation!romaine,!en!majuscules!
(I,!II,!III,...)!
•!lowerdroman!:!numérotation!romaine,!en!minuscules!
(i,!ii,!iii,!iv,!v...)!
•!upperdalpha! :! numérotation! alphabétique,! en!
majuscules!(A,!B,!C,!D,!E...)!
•!lowerdalpha! :! numérotation! alphabétique,! en!
minuscules!(a,!b,!c,!d,!e...)!
Position!
en! listdstyledposition!
•!inside!:!sans!retrait!
retrait!
!
•!outside!:!avec!retrait!(par!défaut)!
Puce!
listdstyledimage!
Indiquer!l'url!de!l'image!qui!servira!de!puce.!
personnalisée! !
listdstyledimage:!url("images/puce.png");!
Mégad
Réunir!les!valeurs!de!listdstyledtype,!listdstyledposition!et!
listdstyle!
propriété! de!
listdstyledimage.!On!n'est!pas!obligé!de!mettre!toutes!les!
liste!
valeurs,!et!l'ordre!n'a!pas!d'importance.!
listdstyle:!inside!square;!
!
[NOM!DE!L’AUTEUR]! 74!
!
PROGRAMMATION!WEB!1!!!!!!!!!!!!!!CHAPITRE!8!:!PROPRIETES!DE!BOITES!,TABLEAU,D'AFFICHAGE!ET!DE!POSITIONNEMENT!!!!!!
!!!!!!
CHAPITRE!8
PROPRIETES!DE!
BOITES,TABLEAU,D'AFFICHAGE!ET!DE!
POSITIONNEMENT
!
PRESREQUIS!:!
!
Langage!HTML,!XHTML!
OBJECTIFS!GENERAUX!:!
!
Introduire!la!mise!en!page!des!pages!web!en!utilisant!le!langage!CSS.!
!
Manipuler!les!propriétés!de!boites,!tableau,!d'affichage!et!de!positionnement!de!
CSS.!
PLAN!:!
I.
1.
2.
3.
4.
II.
III.
1.
2.
IV.
LES!PROPRIETES!DES!BOITES!!
LES!DIMENSIONS!
LES!BORDURES!!
LES!MARGES!EXTERIEURES!!
LES!MARGES!INTERIEURES!!
LES!PROPRIETES!DES!TABLEAUX!!
LES!PROPRIETES!DE!POSITIONNEMENT!ET!D'AFFICHAGE!
LES!PROPRIETES!D'AFFICHAGE!
LES!PROPRIETES!DE!POSITIONNEMENT!!
LA!PROPRIETE!CURSOR!
[NOM!DE!L’AUTEUR]! 75!
!
!
PROGRAMMATION!WEB!1!!!!!!!!!!!!!!CHAPITRE!8!:!PROPRIETES!DE!BOITES!,TABLEAU,D'AFFICHAGE!ET!DE!POSITIONNEMENT!!!!!!
!!!!!!
CHAPITRE!8!:!PROPRIETES!DE!BOITES,!DE!TABLEAUX,!D'AFFICHAGE!
ET!DE!POSITIONNEMENT!
!
!
1.! LES!PROPRIETES!DES!BOITES!!
1.1.!!LES!DIMENSIONS!
Type!
Propriété!
Valeurs!possibles!
Largeur!
width!
Valeur! en! px,! %,! ou! encore! "auto"! (valeur! par! défaut,! la!
largeur!dépendra!du!texte!à!l'intérieur)!
Hauteur!
height!
Idem!
1.2.!LES!BORDURES!!
Type!
Propriété!
Épaisseur! de! la! borderdwidth!
Valeurs!possibles!
Indiquer!une!valeur!en!px!
bordure!
Couleur! de! la! borderdcolor!
Indiquer!une!valeur!de!couleur!
bordure!
Type!de!bordure!
borderdstyle!
•!none!:!pas!de!bordure!(par!défaut)!
•!hidden!:!bordure!cachée!!
•!solid!:!ligne!pleine!!
•!double! :! ligne! double! (nécessite! une! taille! de!
bordure!de!3px!minimum)!!
•!dashed!:!en!tirets!!
•!dotted!:!en!pointillés!!
•!inset!:!effet!3D!"enfoncé"!!
•!outset!:!effet!3D!"surélevé"!!
•!ridge!:!autre!effet!3D!
Bordure!à!gauche! borderdleft!
Indiquer! la! couleur,! l'épaisseur! et! le! type! de!
bordure!pour!la!bordure!gauche!!
[NOM!DE!L’AUTEUR]! 76!
!
PROGRAMMATION!WEB!1!!!!!!!!!!!!!!CHAPITRE!8!:!PROPRIETES!DE!BOITES!,TABLEAU,D'AFFICHAGE!ET!DE!POSITIONNEMENT!!!!!!
!!!!!!
borderdleft:! 2px! inset! blue;! /*! Bordure! bleue! de!
2px!avec!effet!3D!"enfoncé"!*/!
Bordure!en!haut!
borderdtop!
Idem!
Bordure!à!droite!
borderdright!
Idem!
Bordure!en!bas!
borderdbottom!
Idem!
Mégadpropriété!
border!
Indiquer! l'apparence! des! bordures! en! haut,! à!
de!bordure!
droite,!en!bas!et!à!gauche.!
1.3.!LES!MARGES!EXTERIEURES!!
Type!
Propriété!
Valeurs!possibles!
Marge!en!haut!
margindtop!
Indiquer!une!valeur!comme!20px,!10%,!...!
Marge!à!gauche!
margindleft!
Idem!
Marge!à!droite!
margindright!
Idem!
Marge!en!bas!
margindbottom!
Idem!
Mégadpropriété!
margin!
Indiquer!de!1!à!4!valeurs!à!la!suite:!
de!marge!
d!1!valeur!:!c'est!la!marge!pour!le!haut,!le!bas,!la!
gauche!et!la!droite!!
d! 2! valeurs! :! la! première! correspond! à! la! marge!
pour!le!haut!et!le!bas,!la!seconde!pour!la!gauche!
et!la!droite!!
d!3!valeurs!:!la!première!correspond!à!la!marge!du!
haut,!la!seconde!aux!marges!à!gauche!et!à!droite,!
la!troisième!à!la!marge!du!bas!!
d!4!valeurs!:!respectivement!la!marge!du!haut,!de!
la!droite,!du!bas,!de!la!gauche!!
Exemple,! avec! 2! valeurs! :! margin:20px! 5px;! /*!
20px!de!marge!en!haut!et!en!bas,!5px!à!gauche!et!
à!droite!*/!
1.4.!LES!MARGES!INTERIEURES!!
Type!
Propriété!
Valeurs!possibles!
[NOM!DE!L’AUTEUR]! 77!
!
PROGRAMMATION!WEB!1!!!!!!!!!!!!!!CHAPITRE!8!:!PROPRIETES!DE!BOITES!,TABLEAU,D'AFFICHAGE!ET!DE!POSITIONNEMENT!!!!!!
!!!!!!
Marge!intérieure!en! paddingdtop!
Indiquer!une!valeur!comme!20px,!1.5em...!
haut!
Marge! intérieure! à! paddingdleft!
Idem!
gauche!
Marge! intérieure! à! paddingdright!
Idem!
droite!
Marge!intérieure!en! paddingdbottom!
Idem!
bas!
Mégadpropriété! de! padding!
Idem!que!margin!
marge!intérieure!
2.! LES!PROPRIETES!DES!TABLEAUX!!
Type!
Propriété!
Valeurs!possibles!
Type!de!bordure!
borderdcollapse!
•! collapse! :! les! bordures! du! tableau! et! des!
cellules!sont!mélangées!
•! separate! :! les! bordures! du! tableau! et! des!
cellules!sont!séparées!(par!défaut)!
Cellules!vides!
emptydcells!
•! show!:!les!bordures!des!cellules!vides!sont!
affichées!!
•! collapse!:!les!cellules!vides!sont!masquées!
(par!défaut)!
Position!du!titre!
captiondside!
Indique!la!position!du!titre!du!tableau,!défini!
via!la!balise!<caption>!
•! top!:!en!haut!du!tableau!
•! bottom!:!en!bas!du!tableau!
•! left!:!à!gauche!du!tableau!
•! right!:!à!droite!du!tableau!
3.! LES!PROPRIETES!DE!POSITIONNEMENT!ET!D'AFFICHAGE!
3.1.!LES!PROPRIETES!D'AFFICHAGE!
Type!
Propriété!
Valeurs!possibles!
[NOM!DE!L’AUTEUR]! 78!
!
PROGRAMMATION!WEB!1!!!!!!!!!!!!!!CHAPITRE!8!:!PROPRIETES!DE!BOITES!,TABLEAU,D'AFFICHAGE!ET!DE!POSITIONNEMENT!!!!!!
!!!!!!
Type!d'élément!
display!
•!none!:!l'élément!ne!sera!pas!affiché!
!
•!block!:!l'élément!devient!de!type!"block"!(bloc,!
comme!<p>)!
•!inline! :! l'élément! devient! de! type! "inline"! (en!
ligne,!comme!<strong>!
•!listditem!:!l'élément!devient!de!type!"élément!
de!liste!à!puce"!(comme!<li>)!
Affichage!
visibility!
•!hidden!:!masqué!
!
•!visible!:!visible!(par!défaut)!
Rq:! display:none;! fait! disparaître! l'élément,!
tandis! que! visibility:hidden;! masque! l'élément,!
qui!continue!quand!même!à!prendre!de!la!place!
sur!l'écran!
Afficher! seulement! clip!
Indiquer!4!valeurs!comme!ceci!:!
une!partie!
clip:!rect(valeur1,!valeur2,!valeur3,!valeur4);!
!
Cela! permet! de! n'afficher! qu'une! partie! d'un!
élément.!
rect()!
permet!
d'indiquer!
les!
coordonnées!du!rectangle!qui!sera!affiché!
Les!valeurs!1!à!4!correspondent!respectivement!
aux!coins!haut,!droit,!bas!et!gauche!du!rectangle!
3.2.!LES!PROPRIETES!!DE!POSITIONNEMENT!!
Type!
Propriété!
Valeurs!possibles!
Flottant!
float!
•!left!:!flottant!à!gauche!!
•!right!:!flottant!à!droite!!
•!none!:!pas!de!flottant!(par!défaut)!
Stopper!un!flottant! clear!
•!left! :! supprime! l'effet! d'un! flottant! à! gauche!
précédent!
•!right! :! supprime! l'effet! d'un! flottant! à! droite!
précédent!
[NOM!DE!L’AUTEUR]! 79!
!
PROGRAMMATION!WEB!1!!!!!!!!!!!!!!CHAPITRE!8!:!PROPRIETES!DE!BOITES!,TABLEAU,D'AFFICHAGE!ET!DE!POSITIONNEMENT!!!!!!
!!!!!!
•!both! :! supprime! l'effet! d'un! flottant! précédent,!
qu'il!soit!à!gauche!ou!à!droite!
•!none! :! pas! de! suppression! de! l'effet! du! flottant!
(par!défaut)!
Type!
de! position!
•!absolute!:!position!absolue!par!rapport!au!coin!en!
positionnement!
haut!à!gauche!!
•!fixed! :! position! fixe! (fonctionne! comme! la!
position! absolue)! L'élément! reste! à! sa! position!
même!quand!on!descend!plus!bas!dans!la!page!!
•!relative! :! position! relative,! par! rapport! à! la!
position!"normale"!de!l'élément!
•!static!:!positionnement!normal!(par!défaut)!!
Position!
par! top!
Valeur! en! px,! %,! em...! à! utiliser! pour! un!
rapport!au!haut!!
positionnement!absolu,!fixe!ou!relatif!
Position!
par! bottom!
Idem!
par! left!
Idem!
rapport!au!bas!
Position!
rapport!à!gauche!
Position!
par! right!
rapport!à!droite!
Ordre!d'affichage!
Idem!
!
zdindex!
!
En!cas!de!positionnement!absolu!par!exemple,!si!2!
éléments! se! chevauchent,! zdindex! permet!
d'indiquer!quel!élément!doit!être!affiché!auddessus!
de!l'autre.!La!valeur!est!un!nombre.!Plus!ce!nombre!
est!élevé,!plus!l'élément!sera!affiché!en!avant.!
Exp:!si!2!éléments!sont!positionnés!en!absolu!avec!
un! zdindex! de! 10! pour! l'un! et! de! 20! pour! l'autre,!
celui!qui!a!un!zdindex!de!20!est!affiché!parddessus!
[NOM!DE!L’AUTEUR]! 80!
!
PROGRAMMATION!WEB!1!!!!!!!!!!!!!!CHAPITRE!8!:!PROPRIETES!DE!BOITES!,TABLEAU,D'AFFICHAGE!ET!DE!POSITIONNEMENT!!!!!!
!!!!!!
4.! LA!propriété!CURSOR!
Type!
Propriété!
Valeurs!possibles!
Curseur!de!souris!
cursor!
•!auto!:!curseur!automatique!(par!défaut)!
•!default!:!curseur!standard!!
•!pointer! :! curseur! en! forme! de! main,! comme!
quand!on!pointe!sur!un!lien!
•!text!:!curseur!utilisé!quand!on!pointe!sur!du!
texte!!
•!wait! :! curseur! utilisé! pour! indiquer! une!
attente!(sablier)!!
•!help! :! curseur! en! forme! de! point!
d'interrogation,!indiquant!une!aide!!
•!move!:!curseur!en!forme!de!croix,!indiquant!
un!déplacement!possible!!
•!ndresize!:!flèche!vers!le!nord!!
•!nedresize!:!flèche!vers!le!norddest!!
•!edresize!:!flèche!vers!l'est!!
•!sedresize!:!flèche!vers!le!suddest!!
•!sdresize!:!flèche!vers!le!sud!!
•!swdresize!:!flèche!vers!le!suddouest!!
•!wdresize!:!flèche!vers!l'ouest!!
•!nwdresize!:!flèche!vers!le!norddouest!!
•!url!:!curseur!personnalisé,!de!type!.cur!ou!.ani!
cursor:!url("images/curseur.cur");!
[NOM!DE!L’AUTEUR]! 81!
!
PROGRAMMATION!WEB!1!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!CHAPITRE!8!:!PROPRIETES!DE!MISE!EN!FORME!ET!LISTES!!!!!!
!
!
[NOM!DE!L’AUTEUR]! 82!
!