Académique Documents
Professionnel Documents
Culture Documents
et de la Recherche Scientifique
Direction Générale des Etudes Technologiques
Institut Supérieur des Etudes Technologiques de Djerba
Support de cours
Programmation Web 1
Elaboré par :
Olfa HAMROUNI
Mouna KORT
Maèl SALAH JRAD
Public cible :
Classe de 1ère année
Licence appliquée : Technologies de l’informatique
Fiche Matière
Fiche descriptive de la matière : Programmation Web 1
Domaine de formation : Sciences et technologies
Mention : Technologie de l’informatique (TI)
Parcours : Tronc commun (TC)
Semestre : S1
Unité d’enseignement : Développement Web et Multimédia 1
Volume horaire : 21 heures (CI)
Coefficient : 2
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é-requis
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 Web1
Annexe1 ............................................................................................................... 69
Annexe2 ............................................................................................................... 75
Chapitre 1
Introduction au Web
Objectifs Spécifiques
A la fin de ce chapitre, l’étudiant sera capable de :
- Connaitre l’origine et l’utilisation d’Internet.
- Identifier les principaux services d'Internet et leurs utilisations.
- Savoir différencier entre le Web et l’Internet.
- Avoir une idée sur les différentes technologies utilisées pour le
développement des sites web.
- Connaitre le cycle de vie d’un site web passant de l’idée vers
l’administration.
Plan du chapitre
1. Introduction
2. Définition
3. Principe
4. Evolution du Web
5. Les étapes de développement d’un site web
6. L'hébergement
7. Le référencement
Volume horaire
- 3 heures
1
Programmation Web 1 Introduction au Web
1. Introduction
Le Web n’est qu’une des applications d’Internet. Il existe d’autres applications qui sont:
Messagerie électronique
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'est-à-dire 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
2
Programmation Web 1 Introduction au Web
Chat) avec un logiciel spécialisé (MSN par exemple), de choisir un pseudo puis de
répondre en direct aux phrases qui s’affichent à l’écran.
2. Définition
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
3
Programmation Web 1 Introduction au Web
le disque dur du serveur. L’URL peut ê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
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
4.1. Web 1.0 [1995->2003]
4
Programmation Web 1 Introduction au Web
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.
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 peut-être partagé 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 wiki, 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).
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.
5
Programmation Web 1 Introduction au Web
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.
Le premier wiki est créé en 1995 et appelé WikiWikiWeb. En 2010, le plus consulté
de tous les wikis est l'encyclopédie libre Wikipédia.
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.
6
Programmation Web 1 Introduction au Web
Le système SPIP
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.
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.
7
Programmation Web 1 Introduction au Web
5.3. Conception
8
Programmation Web 1 Introduction au Web
5.4. Réalisation
6. L'hébergement
6.1. Définition
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 »
Par contre, l’inconvénient majeur est que les performances sont moyennes voire
même médiocres dans certains cas
3
Source : dicodunet.com
9
Programmation Web 1 Introduction au Web
7. Le référencement
7.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.
10
Programmation Web 1 Introduction au Web
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
sous-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.
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 : 123-informatique.com, annuaire.aformaclic.fr
o Domaine loisir et tourisme : annuaire-des-vacances.com, univers-
nature.com
o Domaine immobilier : immo-annuaire.com, immo-immo.com
o Domaine automobile : best-of-auto.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.
4
Fr.wikipedia.org
5
Source : accesstoebusiness.com
11
Programmation Web 1 Introduction au Web
On trouve également des méta-moteurs, c'est-à-dire 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.
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 :
12
Programmation Web 1 Introduction au Web
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.
13
Chapitre 2
Le langage XHTML
Objectifs Spécifiques
A la fin de ce chapitre, l’étudiant doit être capable de :
- Enumérer et décrire les éléments d’une page web.
- Connaitre la syntaxe des principales balises du langage XHTML.
- Manipuler le langage XHTML.
Plan du chapitre
1. Historique
2. XHTML en tant que langage de balisage
3. HTML ou XHTML ?
4. La différence entre HTML et XHTML
5. Les éditeurs HTML
6. Les éditeurs visuels
7. Les éditeurs classiques
8. La structure de base d’un document XHTML
Volume horaire
- 3 heures
14
Programmation Web 1 Le langage XHTML
1. Historique 6
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
15
Programmation Web 1 Le langage XHTML
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 ?
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 :
7
Source : openweb.eu.org
16
Programmation Web 1 Le langage XHTML
Toutes les balises doivent avoir une fermeture mais également les balises qui
n'ont pas de balises fermantes. On aura donc <br />, <img />, etc.
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>".
Exemple :
<meta name="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 :
<h1 name="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.
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.
8
Source : wikipédia.org
17
Programmation Web 1 Le langage XHTML
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…
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 ci-dessus. Exemple : Nvu.
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
18
Programmation Web 1 Le langage XHTML
fichier xhtml11.dtd qui contient la DTD elle-même. Rappelons que la DTD est
l’ensemble des règles qui précisent « la grammaire du langage ».
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 : "<!--" au début du commentaire et "-->" à la fin de celui-ci. , 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 ci-
dessus.
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.
L’élément <head> englobe six sous-éléments différents qui ont chacun un rôle bien
déterminé. Il s’agit des sous-é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 sous-éléments inclus dans <head>:
19
Programmation Web 1 Le langage XHTML
La plupart des valeurs des attributs name et http-equiv sont des mots-clés qui
seront utilisés par les moteurs et les annuaires de recherche.
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 mots-
clé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.
http-equiv="refresh" Force le navigateur à recharger la page. L’attribut content
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…)
http-equiv="expires" Force le navigateur à actualiser la page. L’attribut content
définit la date et l’heure de mise à jour (format anglais de
date et heure)
20
Programmation Web 1 Le langage XHTML
- Pour afficher une description d’une page qui sera indexée par les moteurs de
recherche :
- Pour que la page sera mise à jour le 11 juillet 2005 à 18 h 34 min 45 en temps
GMT
L’exemple suivant donne un code possible de la balise <head> avec quelques sous-
éléments :
21
Programmation Web 1 Le langage XHTML
<head>
<title>Titre de la page</title>
<meta name="Author" content="Jean ENGELS"/>
</head>
22
Chapitre 3
Mise en forme, liste, tableau
Objectifs Spécifiques
A la fin de ce chapitre, l'étudiant doit être capable de:
- Créer des pages web contenant des tableaux.
- Introduire les notions HTML avancées tels que les tableaux, les
listes.
Plan du chapitre
1. Les titres
2. Les divisions de la page
3. Les styles physiques
4. les listes
5. Les tableaux
Volume horaire
- 3 heures
23
Programmation Web 1 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.
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 enligne comme des images, des objets multimédia ou des
composants de formulaire si l’élément <p> est inclut lui-même dans un
formulaire.
24
Programmation Web 1 Mise en forme, liste et tableau
2.2. L’élément<DIV>
25
Programmation Web 1 Mise en forme, liste et tableau
4. Les listes
4.1. Les listes ordonnées
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>
</ol>
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>.
26
Programmation Web 1 Mise en forme, liste et tableau
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> lui-
mê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 :
<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 de cré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 de pages dynamiques...</fieldset></dd>
<dt>SQL</dt>
<dd><fieldset>Structured Query Language : le langage d’interrogation
des bases de données...</fieldset></dd>
</dl>
27
Programmation Web 1 Mise en forme, liste et tableau
5. Les tableaux
5.1. La structure générale d’un tableau
<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>
28
Programmation Web 1 Mise en forme, liste et tableau
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 Définit la largeur totale du tableau dans la
width = "N%" page. La possibilité de définir une largeur
relative en pourcentage est très pratique pour
adapter le tableau à l’écran du visiteur.
cellpadding = "N px" ou Définit la largeur de l’espacement entre le
cellpadding = "N%" contenu d’une cellule et sa bordure.
cellspacing = "N px" ou définit l’espacement entre les bordures de
cellspacing = "N%" 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.
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
29
Programmation Web 1 Mise en forme, liste et tableau
<tableborderheight="300"width="400">
<tralign="center">
<tdrowspan="3">A</td>
<tdcolspan="2">B</td>
<td>C</td>
</tr>
<tralign="center">
<td>D</td>
<td>E</td>
<tdrowspan="2">G</td>
</tr>
<tralign="center">
<tdcolspan="2">F</td>
</tr>
</table>
30
Programmation Web 1 Mise en forme, liste et tableau
31
Chapitre 4
Les formulaires
Objectifs Spécifiques
A la fin de ce chapitre, l'étudiant doit être capable de:
- Introduire les notions HTML avancées tels que les images, les
fichiers audio, les fichiers vidéo, les liens hypertextes.
Plan du chapitre
1. Les images
2. L'audio
3. La vidéo
4. Les liens hypertextes
Volume horaire
- 3 heures
32
Programmation Web 1 Images, Audio, Vidéo et Lien Hypertextes
1. Les images
1.1. Les types d’images
• 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’élément<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
33
Programmation Web 1 Images, Audio, Vidéo et Lien Hypertextes
bloc, dans une liste, ou encore d’autres éléments. C’est un élément vide, d’où
l’utilisation du symbole 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.
34
Programmation Web 1 Images, Audio, Vidéo et Lien Hypertextes
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.
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:
3. La vidéo
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>…
35
Programmation Web 1 Images, Audio, Vidéo et Lien Hypertextes
</video>
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 celle-ci 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:
36
Programmation Web 1 Images, Audio, Vidéo et Lien Hypertextes
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, celui-ci 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 elle-même.
_top: pour afficher la cible dans la fenêtre de plus haut niveau.
37
Programmation Web 1 Images, Audio, Vidéo et Lien Hypertextes
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:
38
Programmation Web 1 Images, Audio, Vidéo et Lien Hypertextes
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/>
Avec chap1, chap2 et chap3 sont des ancres à définir dans le fichier xhtml.html grâce à
l’attribut id
4.4. Les liens déclenchant l’envoi d’un e-mail
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 e-mail 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 e-
mail du contact.
Exemples
<div> <a href="mailto:webmaster@gmail.com"> Contactez nous! </a></div>
<p>Demande de <a href="mailto:xhtml@gmail.com?subject=Demande de
renseignements">documentation</a></p>
39
Chapitre 5
Les formulaires
Objectifs Spécifiques
A la fin de ce chapitre, l'étudiant doit être capable de:
- Réaliser des formulaires dans des pages web.
Plan du chapitre
1. Introduction
2. Structure d’un formulaire
3. Les attributs de l’élément <form>
4. Les éléments intègres dans l'élément form
5. Apports du html5
Volume horaire
- 3 heures
40
Programmation Web 1 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 mot-clé 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.
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>.
41
Programmation Web 1 Les formulaires
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.
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.
42
Programmation Web 1 Les formulaires
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.
43
Programmation Web 1 Les formulaires
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"
<input type="image" src="../images/val1.gif"value="Envoi1"
</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"/>
<input type="image" src="../images/annul1.gif"
value="annuler1" name="BtAnnul1" title="Bouton d'annulation
image"onclick="reset()"/>
</fieldset>
</form>
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"
- Maxlength="N"
- Disabled="disabled"
44
Programmation Web 1 Les formulaires
- readonly="readonly"
Permet d’utiliser une zone de saisie pour afficher une information. Celle-ci ne
peut donc pas être modifiée, mais est en lecture seule
Exemple
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 lui-mê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="" />
45
Programmation Web 1 Les formulaires
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.
46
Programmation Web 1 Les formulaires
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/>
<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>
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.
47
Programmation Web 1 Les formulaires
Exemple
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 :
48
Programmation Web 1 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"/> <
<!--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/>
<input type="submit" value="valider"/>
<input type="reset" value="rétablir"/><br/>
</fieldset>
</form>
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
49
Programmation Web 1 Les formulaires
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[]").
50
Programmation Web 1 Les formulaires
Exemple
<form action="exemple.php"method="post">
<fieldset>
<legend><b>Veuillez compléter le questionnaire</b></legend>
<label>Nom : </label>
<inputtype="text"name="nom"size="40"maxlength="256"value="votre
nom"onclick="this.value=����"/><br/>
<!-- Liste à choix unique -->
<label>Votre pays</label>
<selectname="pays"size="1">
<optionvalue="null"disabled="disabled"> Votre
pays</option>
<optionvalue="France"> France</option>
<optionvalue="Belgique"> Belgique</option>
<optionvalue="Suisse"> Suisse</option>
<optionvalue="Canada"> Canada</option>
</select
<!-- Liste à choix multiples -->
<h3>Vos connaissances informatique <small>(Pour faire plusieurs
choix maintenir la touche CTRL enfoncée)</small></h3>
<selectname="savoir[]"size="4"multiple="multiple">
<optionvalue="C++"selected="selected">
C++</option>
<optionvalue="Java"> Java</option>
<optionvalue="PHP"> PHP</option>
<optionvalue="SQL"> SQL</option>
</select><br/>
<inputtype="submit"value="Envoyer "/>
<inputtype="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>
</optgroup>
<!-- Autres groupes -->
</select>
51
Programmation Web 1 Les formulaires
Exemple
<form action="trait.php"method="post">
<fieldset>
<legend><b>Veuillez compléter le questionnaire</b></legend>
<!-- Liste à choix unique -->
<label>Nom : </label>
<input type="text" name="nom"/>
<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"> Allemagne</option>
</optgroup>
<optgroupl abel="Autres">
<option value="Europe"> Europe </option>
<option value="Asie"> Asie </option>
<option value="Amériques"> Amériques </option>
<option value="Océanie"> Océanie</option>
</optgroup>
</select></h3>
<input type="submit" value="Envoyer"/>
<input type="reset" value=" Effacer tout"/><br/>
</fieldset>
</form>
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.
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
52
Programmation Web 1 Les formulaires
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 :
<formaction="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>
<inputtype="file"name="fichier"accept="image/jpeg,image/png"/>
</fieldset>
</form>
5. Apports du HTML5
5.1. Les nouveaux objets
53
Programmation Web 1 Les formulaires
"value".
Champ ressemblant, en
apparence, à celui de type text,
url mais il n'acceptera que les <input type="url" name="t" />
formats url de type: ftp://,
mailto:// ou http://.
Champ très proche du
type text. La valeur saisie doit
avoir le format d'un email: au
email minium un caractère (caractère <input type="email" name="t" />
non accentué comprenant - et
_) suivi d'un @ suivi à son tour
d'un caractère.
54
Chapitre 6
Les feuilles de style
Objectifs Spécifiques
A la fin de ce chapitre, l'étudiant doit être capable de:
- Introduire la mise en page des pages web en utilisant le langage
CSS ;
- Décrire les concepts des feuilles de style ;
- Utiliser les feuilles de style dans la mise en forme des pages web;
- Réaliser une maquette, pour un site web, avec les feuilles de style.
Plan du chapitre
1. Introduction
2. Les avantages des CSS
3. Définition
4. La syntaxe
5. Les sélecteurs
6. Où écrire les styles ?
7. Le positionnement
Volume horaire
- 6 heures
55
Programmation web 1 Les feuilles de style CSS
1. Introduction
Le langage CSS (Cascading Style Sheets) est utilisé pour définir l’aspect futur des sites
web, comme par exemple la couleur du fond de la page ou le type de police. Plus
concrètement, le CSS (ou feuille de style) est un document numérique qui va pouvoir
spécifier toutes les caractéristiques de mise en forme du document lié à la balise à
laquelle elle s'applique.
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.
3. Définition
Les propriétés sont regroupées par blocs de règles, délimités par les accolades {}.
Chaque bloc est précédé d'un sélecteur désignant les éléments structurels auxquelles
les propriétés concernées doivent être appliquées (balise, classe, ..).
4. 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 ;
56
Programmation web 1 Les feuilles de style CSS
}
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,
- background-color désigne la couleur de fond, yellow est sa valeur.
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.
5. Les sélecteurs
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.
Effet: le texte de tous les paragraphes s'affiche en jaune sur fond bleu.
57
Programmation web 1 Les feuilles de style CSS
Exemple:
h1,div,p {color : black ; background-color : red;}
div {margin : 20px;}
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.
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:
*{background-color : yellow;}
p{background-color : gray;}
Effet: tous les éléments ont un fond jaune, sauf <p> aura un fond gris.
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>
58
Programmation web 1 Les feuilles de style CSS
Effet: le paragraphe aura comme couleur de texte rouge. Il est distingué du reste du
texte qui aura la couleur par défaut.
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.
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>
59
Programmation web 1 Les feuilles de style CSS
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>
60
Programmation web 1 Les feuilles de style CSS
Exemple :
a:link {color: blue;}
a:visited {color: red;}
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’est-à-dire 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 pseudo-é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 :
:first-letter, 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;}
61
Programmation web 1 Les feuilles de style CSS
Les styles CSS peuvent être intégrés dans le document XHTML de plusieurs manières :
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 <!-- et --> ou des commentaires CSS délimités
par /* et */.
Exemple 1:
<head>
<style type= "text/CSS">
div,p {font-style: italic;}
h1,h2 {color: red;}
62
Programmation web 1 Les feuilles de style CSS
</style>
</head>
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.
63
Programmation web 1 Les feuilles de style CSS
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.
7. Le positionnement
7.1. Généralités
64
Programmation web 1 Les feuilles de style CSS
fera précéder et suivre d'un saut de ligne; la balise « SPAN », conçue comme
simple marqueur, sera utilisée pour encadrer un paragraphe.
Exemple d'application :
Soit l'image un.jpg :
toto {position:absolute; top:10px; left:10px;}
<BODY BGCOLOR="#000080" TEXT="#FF0000">
<IMG SRC="1.jpg" BORDER=0 WIDTH=50 HEIGHT=50>
<B><DIV CLASS="toto">Toto et titi</DIV></B>
65
Programmation web 1 Les feuilles de style CSS
7.2. Attributs
7.2.1. Clip
66
Programmation web 1 Les feuilles de style CSS
Donne :
7.2.2. Z-index
Z-index, c'est l'attribut qui permet de définir l'empilement des feuilles de styles.
Il indique l'axe vertical d'empilement, ou la priorité d'affichage entre les
éléments superposés. Il s'applique à tous les éléments de position relative ou
absolue. Plus l'index est grand, plus l'élément est situé dessus. Deux éléments
de même index vont se superposer. C'est très pratique pour afficher du texte
sur une image, ou vice-versa.
Exemple avec les deux images un.jpg et deux.jpg :
<STYLE TYPE="text/css">
<!--
.toto {
position:absolute; top:10px; left:10px;
}
.titi {
position:absolute; top:30; left:30; z-index:2;
} -->
</STYLE>
</HEAD>
<BODY BGCOLOR="#000080" TEXT="#FF0000">
<DIV CLASS="toto"><IMG SRC="1.jpg" BORDER=0 WIDTH=50
HEIGHT=50></DIV>
<DIV CLASS="titi"><IMG SRC="2.jpg" BORDER=0 WIDTH=50
HEIGHT=50></DIV>
67
Programmation web 1 Les feuilles de style CSS
Donne :
68
Programmation web 1 Annexes
Annexe1
Les unités 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 (%).
69
Programmation web 1 Annexes
70
Programmation web 1 Annexes
L'alignement
71
Programmation web 1 Annexes
Définit l'espacement
letter-spacing entre chaque lettre d'un Indiquer une valeur en pixels (px)
texte
Définit l'espacement
word-spacing entre chaque mot d'un Indiquer une valeur en pixels (px)
texte
72
Programmation web 1 Annexes
défaut)
Répétition du background- repeat : le fond se répète (par défaut)
fond repeat repeat-x : le fond ne se répète que sur une
ligne, horizontalement
repeat-y : le fond ne se répète que sur une
colonne, verticalement
no-repeat : le fond ne se répète pas, il n'est
affiché qu'une fois
Position du background- 2 façons de faire :
fond position - En notant une distance en px ou %, par
rapport au coin en haut à gauche.
background-position:50px 200px; /* 50 px à
droite, 200px en bas */
- 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
background-position : bottom right; /* en
bas à droite */
Méga- background Indique dans n'importe quel ordre des
propriété de valeurs possibles pour background-image,
fond background-repeat, background-
attachment et background-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") no-
73
Programmation web 1 Annexes
74
Programmation web 1 Annexes
Annexe2
Les bordures
75
Programmation web 1 Annexes
76
Programmation web 1 Annexes
77
Programmation web 1 Annexes
78
Programmation web 1 Annexes
79
Programmation web 1 Annexes
La propriété CURSOR
80