Cours de XHTML Et de Css Definitif UWB
Cours de XHTML Et de Css Definitif UWB
Cours de XHTML Et de Css Definitif UWB
Eléments d’Application et
Programmation Réseaux
Vol.1
2011-2012
Eléments d’application et de programmation réseaux
1. OBJECTIF
2. METHODES
3. ORGANISATION DU COURS
4. CONTACTS
UWB – RDC 2
Eléments d’application et de programmation réseaux
Plan du cours
Ière partie : Généralités sur le Client-Serveur
I.2.1. Définition
II.1. Introduction
UWB – RDC 3
Eléments d’application et de programmation réseaux
III.1. Définition
III.2. Les éditeurs
VI.6. Le lien vers une ancre située dans une autre page
UWB – RDC 4
Eléments d’application et de programmation réseaux
VIII.2. : La police
VIII.3. : L’alignement
VIII.5. : Le fond
XII.2. L’Hébergeur
UWB – RDC 5
Eléments d’application et de programmation réseaux
Tous les secteurs d’activités, aujourd’hui dans le monde, sont dans la course à la
productivité amenant les technologies à évoluer de plus en plus vite ; Le client–
serveur s’est taillé une place de choix depuis des années 1990. En effet, il faut
pouvoir disposer de systèmes d’information évolutifs permettant une coopération
fructueuse entre différentes entités de l’entreprise. Les systèmes des années 70 et
80 ne répondaient pas à ces exigences.
Ordinateur central
Base de données
Applications
Système
d’exploitation
Terminaux passifs
I.1.2. La période des années 1980
UWB – RDC 6
Eléments d’application et de programmation réseaux
locaux se sont développés. D’un autre côté, les micro–ordinateurs se sont imposés
dans l’entreprise et ont apporté des interfaces graphiques conviviales.
UWB – RDC 7
Eléments d’application et de programmation réseaux
Cette ère a vu les réseaux prendre une place capitale dans les organisations voire
dans les entreprises. Les vitesses de calcul des micros deviennent
impressionnantes et où le graphique est partout au niveau des interfaces. Le
besoin de partage des données est essentiel aussi bien pour l’accès décisionnel
marqué par le besoin de requêtes complexes sur de gros volumes des données. Il
faut développer vite, par exemple pour ne pas rater un mailing ciblé à une
campagne de promotion. La concurrence entre les entreprises est exacerbée ; la
flexibilité et la productivité de l’informatique font souvent la différence.
SGBD Règles
-----------
OS/2 , UNIX, NOVELLE, Données
Windows NT
Réquête Résultats
(Service)
Réseau d’entreprise
Clients
UWB – RDC 8
Eléments d’application et de programmation réseaux
2.2. Définition
En fait, l’architecture client–serveur est plus large où un réseau n’est pas toujours
nécessaire. Il est possible de la réaliser sur une même machine (et pourquoi pas
sur un mainframe) en dégageant deux processus, l’un – le client – qui envoie des
requêtes à l’autre – le serveur -, ce dernier traitant les requêtes et envoyant des
réponses. Une définition très large peut donc être proposée.
Dans notre contexte, nous nous concentrons généralement sur les architectures
client–serveur de données et procédures, où clients et serveurs communiquent par
un réseau, où les serveurs sont munis d’un SGBD, et où les clients, mais souvent
aussi les serveurs, sont capables d’exécuter des procédures applicatives.
Le type de client–serveur que nous étudions est celui aujourd’hui mis en œuvre
pour réaliser les systèmes d’information des entreprises. Il comporte les
composants suivants :
un système ouvert plus ou moins basé sur des standards publiés ou de
fait pour réaliser les fonctions de base du serveur.
un SGBD s’exécutant sur le serveur, généralement basé sur le modèle
relationnel et le langage SQL.
Des stations de travail personnelles avec interface graphique connectées
au réseau, par exemple des PC.
des outils de développement d’applications variés de plus en plus
fréquemment construits autour d’une approche objet.
des outils de conception, de déploiement et de maintenance pour
permettre le suivi du cycle de vie des applications.
UWB – RDC 9
Eléments d’application et de programmation réseaux
L’intérêt des utilisateurs pour les systèmes ouvert basés sur les standards est
évident. Ceci devrait en théorie permettre d’une part la portabilité des
applications, d’autre part la possibilité de remplacer un composant d’un
constructeur par celui d’un autre conforme aux standards. Aujourd’hui, les
groupes de standardisation sont parfois trop nombreux et trop dirigés par le
marketing, si bien qu’il est permis de se demander si des solutions théoriquement
basées sur des standards ne sont pas tout autant propriétaires que celles d’un
constructeur particulier.
3. LE ROLE DU C/S ?
Les contraintes internes se traduisent par des pressions sur les budgets, la
difficulté à absorber les technologies nouvelles, et un manque général de temps et
de moyens. Les budgets sont de plus en plus serrés, car la compression des
dépenses est nécessaire à l’équilibre de l’entreprise. De ce fait, les ressources sont
limitées, et les expérimentations avec des technologies nouvelles, souvent
coûteuses du fait du poids de plus en plus grand de l’histoire, ne peuvent être
menées à bien. Les ingénieurs et techniciens au fait des technologies nouvelles
manquent cruellement de temps, et la conversion des autres est difficile. Ainsi, on
observe dans la plupart des entreprises les problèmes suivants :
Une approche de solution aux problèmes mentionnés passe par une meilleure
organisation du système d’information qui doit devenir plus intégré, mais aussi
plus évolutif. Ceci nécessaire tout d’abord par l’adoption de systèmes ouverts,
obéissant à des standards permettant le choix d’un grand nombre de produits sur
le marché. Il faut donc à tout prix éviter les solutions s’enfermant sur un
constructeur ou développements « maison » ignorant les standards, solutions
propriétaires qui risquent à terme de limiter les choix et la concurrence des
fournisseurs, et donc d’augmenter les coûts. L’intégration et l’évolutivité passent
par l’architecture client–serveur, qui permet l’intégration des données mais aussi
des traitements communs de l’entreprise au sein du serveur relationnel, et
l’évolutivité des applications existantes ou développées sur les clients de type PC
ou station de travail. La réutilisation d’applications existantes ou développées
dans l’entreprise, avec possibilité d’adaptation ou de spécialisation, est aussi un
élément déterminant pour le choix d’une architecture client–serveur et des outils
de développement.
UWB – RDC 11
Eléments d’application et de programmation réseaux
Un élément clé qui milite pour choisir un SGBD relationnel dans une grande
entreprise est la nécessité de réutiliser les applicatifs développés au niveau des
différentes entités de l’entreprise. Avec un serveur relationnel et des outils clients
bien choisis, une entité pourra développer un projet pilote et le proposer aux
autres. Les projets pilotes pourront ainsi être transposés après une éventuelle
adaptation de succursale en succursale. Grâce aux procédures stockées sur le
serveur autour d’une base, des infrastructures d’applications communes pourront
être partagées et adaptées au niveau des clients. Par les techniques d’ouverture et
d’interopérabilité, l’existant sur calculateur central pourra être récupéré et
présenté comme une base intégrée à un serveur.
UWB – RDC 12
Eléments d’application et de programmation réseaux
La première génération née à la fin des années 80 est basée sur des outils client
autour des SGDB relationnels. Le développement s’effectue sur le serveur pour la
base de données et sur le client pour l’application. La base de données est
relationnelle et développe avec SQL. L’application est programmée sur le client à
partir d’un L4G intégrant une interface graphique des requêtes SQL au serveur.
Autour des requêtes, les traitements s’écrivent par des constructions procédurales
du type assignations, calculs, tests et boucles. Ils gèrent des affichages d’écrans et
les saisies. Tout le code applicatif est exécuté sur le client.
Celui-ci envoie des rêquetes SQL au serveur par un outil de connexion et récupère
les résultats. En résumé, l’architecture client-serveur de première génération est
schématisée ci-dessous :
BD relationnelle
Serveur
Table
SGBD
Table
OS
Table
Réseau d’entreprise
Clients
Ainsi, Les trois caractéristiques ci-dessus sont apparues essentielles pour les
applications afin d’optimiser les performances, de faciliter la réutilisation de
composants mémorisés dans un référentiel partagé, d’être capable de gérer des
configurations complexes avec un nombre important de clients et une diversité de
systèmes. Par exemple, la gestion des procédures stockées dans la base de
données et éxécutées par le serveur permettant de réduire le trafic réseau. La
modélisation objet permet de visualiser rapidement les classes d’objets mis en jeu
par un support graphique approprié d’utiliser des méthodologies de conception, de
reprendre des bibliothèques d’objets existantes en les adaptant aux procédures à
traiter. La gestion automatique de versions de code au niveau du référentiel
permet les mises à niveau souvent difficiles sur des configurations hétérogènes
ayant quelques centaines de postes clients. Le client-serveur de deuxième
génération illustré à la figure 5, qui pourrait dans un futur proche, s’appuyer sur
des outils d’échange de requêtes entre objets (Object Request Broker), paraît
promoteur. Il lui reste cependant à faire ses preuves.
Serveur BD relationnelle
étendue
Procédures applicatives
R Table
Référentiel SGBD E
G Table
OS L
E Table
Réseau d’entreprise
Clients
UWB – RDC 14
Eléments d’application et de programmation réseaux
II.1. Introduction
UWB – RDC 15
Eléments d’application et de programmation réseaux
Le client-serveur est avant tout une technique de dialogue entre deux processus,
l’un – le client – sous – traitant - à l’autre – le serveur – des fonctions à réaliser.
Nous allons dans cette section étudier plus en détail ce mode de dialogue.
En résumé, la figure n°5 illustre ces notions : un client exécute une application et
demande l’exécution d’une opération à un serveur par le biais d’une requête. Il
reçoit une réponse, lui indiquant par exemple que l’opération a été bien exécutée.
Les appels au service de transport mis en jeu sont au nombre de quatre :
SendRequest permet au client d’émettre le message décrivant la requête à une
adresse correspondant à la porte d’écoute du serveur : ReceiveRequest permet
au serveur de recevoir la requête sur sa porte d’écoute SendReply permet au
serveur d’envoyer la réponse sur la porte d’écoute du client.
UWB – RDC 16
Eléments d’application et de programmation réseaux
Client Serveur
Opération
Requête
Application
Réponse
SendRequest() ReceiveRequest()
ReceiveReply() SendReply()
Nous avons vu ci-dessus que quatre appels au service de transport (deux Send et
deux Receive) sont généralement nécessaires pour effectuer un dialogue client-
serveur. Dans des systèmes avancés comme Chorus et Mach, trois appels au
service de transport sont suffisants : le SendRequest et ReceiveReply effectués par
le client sont groupés en une seule opération appelée « DoOperation », qui permet
donc à la fois d’envoyer la requête et de recevoir la réponse. Ce mode de dialogue
souligne bien le fonctionnement client-serveur, où le client sous-traite finalement
l’exécution d’une opération au serveur.
UWB – RDC 17
Eléments d’application et de programmation réseaux
Lors de l’émission d’une requête, les paramètres doivent être arrangés et codés
sous-forme des messages : c’est l’assemblage. A l’arrivée, ils doivent être remis en
format interne de manière symétrique à partir du message reçus : c’est le
désassemblage.
Le RPC offre les fonctions de l’appelé à l’appelant sur le site de ce dernier. Il est
réalisé par introduction d’une souche de procédure (en anglais, stub) pour
transformer l’appel de procédure en un envoi de message depuis le site de
l’appelant au site de l’appelé. Là, une souche de procédure symétrique reçoit le
message et réalise l’appel effectif de l’appelé par débranchement. Les paramètres
de retour transitent par un chemin inverse via le réseau d’interconnexion.
UWB – RDC 18
Eléments d’application et de programmation réseaux
Appelant Appelant
Souche
Appelé
De manière plus détaillée, la figure 6 représente les flots de données entre client
et serveur.
Application
Proc.
Selection
Proc.
SendRequest() SendRequest()
ReceivReply() ReceivReply()
CLIENT SERVEUR
Lors de l’émission d’une requête par une commande SendRequest(), celle-ci peut
être émise immédiatement ou mise en fil d’attente pour émission ultérieure. Dans
ce dernier cas, la commande SendRequest() n’est généralement pas bloquante, et
l’utilisateur peut effectuer une autre tâche avant de venir attendre la réponse par
une commande ReceiveRequest. Cette dernière commande peut de même être
bloquante en attente de la réponse, ou non bloquante avec un code retour
signalant que la réponse n’est pas arrivée.
Ceci conduit à distinguer les notions de dialogue synchrone et de dialogue
asynchrone.
Typiquement, dans le cas synchrone, le client attend le serveur pendant que celui-
ci exécute une opération pour lui.
Type de dialogue géré avec fil d’attente, où au moins des commandes d’émission
ou de réception est non bloquante.
UWB – RDC 20
Eléments d’application et de programmation réseaux
Suivant la nature des services rendus par le serveur pour un client, différents
types de client-serveur se sont distingués. La figure 4 illustre diverses possibilités
reconnues. Selon la répartition des fonctions de présentation graphique (affichage
et saisie de données à partir d’icones graphiques par exemple) de gestion de
données (accès aux fichiers ou aux bases de données), d’exécution de code
applicatif (calculs de l’application, on distingue les types de client serveur décrits
ci-dessous.
Tout d’abord, l’architecture client-serveur peut être mise en œuvre afin d’assurer
une meilleure qualité du dialogue homme-machine. Un processus serveur,
souvent exécuté sur une machine séparée (par exemple un terminal intelligent)
exécute les fonctions d’entrées sorties graphiques pour un processus client qui
exécute le code applicatif. Cette organisation est appelée client-serveur de
présentation. Elle peut être utilisée pour transformer une interface homme-
machine caractères en interface graphique : on parle alors de rhabillage.
Client
Serveur
Symboles :
Présentation Données Code Applicatif
b) Rhabillage (Revampling)
UWB – RDC 21
Eléments d’application et de programmation réseaux
UWB – RDC 22
Eléments d’application et de programmation réseaux
Plus précisément, les composants d’une telle architecture (cfr. Figure n°5) sont le
suivant :
1. Les clients. Ils supportent le code de l’application non lié directement aux
données. Ce code est réalisé grâce à un outil de développement
d’application. Il implémente les dialogues interactifs avec les utilisateurs, les
traitements spécialisés des messages, l’affichage des résultats.
Application
Outil de connectabilité
Protocole réseau
Commandes SQL
Réseau
Résultat
Protocole réseau
Serveur BD
Base de données
UWB – RDC 23
Eléments d’application et de programmation réseaux
UWB – RDC 24
Eléments d’application et de programmation réseaux
3. Il fournit une base solide pour traiter les problèmes de cohérence des données, en
supportant notamment des contraintes d’intégrité basées sur la logique du premier
ordre, et la possibilité d’intégrer à la base des règles de gestion complexes.
4. C’est un modèle extensible permettant de modéliser et manipuler simplement des
données tabulaires, mais pouvant être étendu pour gérer des objets complexes
longs voire structurés.
UWB – RDC 25
Eléments d’application et de programmation réseaux
Les SGBD relationnels permettent donc de gérer des tables peuplées de tuples
dans la base. Afin de permettre une meilleure indépendance des programmes par
rapport aux données, ils supportent des tables virtuelles appelées vues.
Vue (View)
Table virtuelle est ceele manipulée par un utilisateur comme une table de base,
mais dont les tuples sont calculés par une question à partir d’autres tables.
Le langage SQL a été initialement développé par IBM à San-José dans le cadre du
projet Système R (comme relationnel). Tout d’abord appelé SEQUEL, il est devenu
le standard pour décrire et manipuler les bases de données relationnelles depuis
1986. A cette date, une première version fut normalisée sous le nom de SQL. En
1992, une version étendue appelé SQL2 a été acceptée comme standard
international. Une version très étendue, appelée SQL3, intégrant en particulier un
langage de programmation de modules et de procédures, mais aussi objet est en
préparation pour 1997-1998. Nous présentons ci-dessous succinctement ces trois
versions de SQL, appelées SQL1, SQL2 et SQL3 par le groupe de normalisation
nord américain (AINSI).
Les quatre verbes de base du langage sont SELECT, INSERT, UPDATE et DELETE.
Il existe de nombreuses opérations additionnelles afin de définir et modifier les
UWB – RDC 26
Eléments d’application et de programmation réseaux
schémas des tables, définir des contraintes d’intégrité, définir des vues, accorder
ou retirer des autorisations, gérer des transactions atomiques. Plus précisément,
le standard comporte quatre parties :
Le langage de définition de schémas comporte deux verbes afin de créer les tables
et les vues, CREATE TABLE et CREATE VIEW. Le langage de manipulation se
compose des verbes de base SELECT, INSERT, UPDATE, DELETE pour
respectivement sélectionner, insérer, mettre à jour, supprimer des tuples dans
une base. Les verbes OPEN, FETCH, et CLOSE permettent l’intégration aux
langages de programmation de troisième génération (Cobol, c, fortran, etc.) :
FETCH lit à chaque appel le tuple suivant du résultat d’un SELECT, pointé par un
curseur. Le curseur doit être préalablement ouvert par la commande OPEN
CURSOR. Il est fermé en fin d’utilisation par la commande CLOSE CURSOR.
Le langage SQL est enrichi par le langage de contrôle qui comporte les verbes
GRANT et REVOKE pour attribuer et retirer des droits d’accès aux utilisateurs,
BEGIN TRANSACTION, END TRANSACTION, COMMIT, et ROLLBACK pour gérer
des transactions atomiques.
NB : Nous nous limiterons dans ce volume, à titre documentaire, au SQL1. Tandis que le
SQL2 et le SQL3 seront détaillés dans le Volume 2 de ce même thème.
UWB – RDC 27
Eléments d’application et de programmation réseaux
La création d’un site web est une opération logique qui a pour sous-bassement, en
entrée, des informations orientées vers l'ordinateur. De ce point de vue, seul le
texte ne suffit pas dans le site, par contre, on aura à insérer des images, faire des
liens etc...
Ainsi, il existe des langages qui servent à créer des programmes, comme le C++ ou
encore le Java. Ces langages sont néanmoins complexes et destinés à des
personnes qui ont déjà quelques connaissances en informatique.
Cependant, les langages XHTML et CSS, eux, servent précisément à créer des sites
web, et ils ont été créés de manière à être simples à utiliser.
Dans ce cadre, nous allons essayer d’apprendre deux langages à la fois dans un
premier temps, et ces deux langages serviront à faire quelque chose de précis, tant
qu’ils se complètent tout naturellement pour aboutir à un site web.
III.1. Définition
Au côté de XHTML existe une autre version dénommée HTML. Les deux sont
quasiment identiques et peuvent être utilisées pour créer des pages web. Le
XHTML fonctionne cependant sur des règles un peu plus strictes que le
HTML.
Bref, savoir programmer en XHTML ayant plus de fonctionnalités, c’est
savoir programmer en HTML ayant moins de fonctionnalités.
Raison pour laquelle nous nous attarderons plus sur XHTML dans ce cours.
Ce langage sert uniquement à présenter la page web par une bonne mise en
page et une bonne mise en forme.
UWB – RDC 28
Eléments d’application et de programmation réseaux
III.2. Les éditeurs
Pour coder les instructions dans le langage XHTML ou CSS, nous aurions besoin
d’un Editeur afin de créer les sites web.
Et les logiciels permettant de créer des sites web en sont nombreux dans les
méandres informatiques, certains d’ailleurs reviennent à trop chers.
Par exemple dans CSS, vous avez les instructions qui demandent d’afficher "UWB
en gras", le navigateur n’affichera que ce qui lui est demandé, c'est-à-dire UWB en
gras.
Mozilla Firefox
Windows
Le navigateur de la fondation
Mac Téléchargeable
Mozilla, célèbre et réputé.
Linux
Internet Explorer
Installation par défaut avec le Le navigateur de Microsoft, qui
Windows
Windows et aussi téléchargeable équipe tous les PC Windows.
Safari
Windows Installation par défaut avec le Mac et Le navigateur d'Apple, qui équipe
Mac aussi téléchargeable sous Windows tous les Mac (et iPhone/iPad.)
Pour s'assurer que son site fonctionne normalement sur chacun d'eux, Il est
conseillé d'installer plusieurs navigateurs sur son ordinateur.
UWB – RDC 29
Eléments d’application et de programmation réseaux
Il existe de nombreux autres navigateurs, encore moins utilisés mais qu'il faut
connaître tout de même :
Opera
Netscape
Konqueror (pour Linux)
Lynx (pour Linux)
etc...
a) Internet Explorer
Et ses anciennes versions sont toujours utilisées. Elles supportent mal le CSS :
b) Google Chrome
Le Google Chrome est l’un des navigateurs le plus récent et le plus dynamique qui
a vu jour après l’Internet Explorer et Firefox. Il a connu une évolution très rapide
et il est aussi parmi les navigateurs les plus réactifs et rapides à s'exécuter.
Comme son nom l'indique, ce navigateur a été développé par Google. De nouvelles
versions paraissent régulièrement et prennent en charge les dernières
fonctionnalités des langages XHTML et CSS. Google Chrome a l'avantage de se
mettre à jour fréquemment sans intervention de l'utilisateur.
c) Mozilla Firefox
UWB – RDC 30
Eléments d’application et de programmation réseaux
<TexteTitre>< TexteCitation>
En XHTML, il existe 2 types de balises :
- balises paires ;
- balises singletons.
Les balises paires : ce sont les plus courantes. On écrit la première balise,
on tape du texte, puis on "ferme" la balise en la réécrivant avec un slash
devant "/". Par exemple :
La première balise <titre> indique le début du titre, et elle est refermée plus
loin avec </titre>.
Le navigateur comprend que ce qui est entre <titre> et </titre> est le titre de
votre site web, et que celui-ci est "Bienvenue sur le site de l’UWB!"
Ce type de balise se termine toujours par un slash "/", mais cette fois le
slash se trouve à la fin de la balise. Par exemple la balise qui permet
d'insérer une image :
1 <image />
Les attributs sont un moyen de donner des précisions sur une balise. On peut
trouver des attributs sur les deux types de balises (paire ou singleton).
UWB – RDC 31
Eléments d’application et de programmation réseaux
Ici, l'attribut est "nom", et il a pour valeur "ilungadeloux.jpg". Cela indique que
l'image que l'on veut insérer s'appelle "ilungadeloux.jpg".
Dans le cas de balises paires, les attributs sont dans la balise ouvrante et pas
dans la balise fermante. Par exemple, ce code indique que la citation est de
NSULU MUEMBO et qu'elle date du 01 mars 2009 :
Remarques :
Dans cette section, nous allons exploiter maintenant les éditeurs vus
précédemment, tels que le Bloc-notes, Notepad++ ou un autre et aussi tester la
première page web.
Voici le code de base d'une page web, qui va servir de point de départ à chacune
de nos pages :
Recopiez ce code dans votre éditeur, et faites « enregistrer sous » votre la page avec
l'extension .html ou .htm.
UWB – RDC 32
Eléments d’application et de programmation réseaux
UWB – RDC 33
Eléments d’application et de programmation réseaux
Cette balise sert à indiquer au navigateur que l’environnement est une page
XHTML, et que la version utilisée est 1.0 du langage XHTML.
2. Vient ensuite la balise <html>. C'est la balise principale qui englobera toute
la page (x)HTML. Elle est fermée en dernier lieu avec </html>, qui indique
que la page (x)HTML s'arrête et Il n'y a donc rien après le </html>.
UWB – RDC 34
Eléments d’application et de programmation réseaux
Les commentaires sont des informations qui sont saisies de manière brute et qui
ne sont susceptibles à être traitées, sinon à orienter l’informaticien dans sa
programmation.
Ils peuvent aussi utilisés pour marquer des repères si la page XHTML est très
vaste, ou pour servir de rappel.
UWB – RDC 35
Eléments d’application et de programmation réseaux
La première étape pour "remplir" un site, serait d'y saisir du texte en lui donnant
un contenu. Et dans ce texte, nous allons voir comment séparer les différents
types de texte selon leur nature.
En XHTML, les corps des textes sont repris en paragraphes et chaque paragraphe
se trouve entre les balises <p> et </p> (qui signifient "paragraphe").
Exemple :
<p> Différentes nouvelles fonctions tentent d'être attribuées aux chiens
1 policiers comme la recherche d'armes à feu, la détection de produits
inflammables à l'origine d'incendie, la détection de cadavres </p>
<p> signifie "Début du paragraphe"
</p> signifie "Fin du paragraphe"
Dans le chapitre précédent, nous avons vu que le contenu du site web doit être
dans les balises <body></body>.
Ici, nous allons mettre notre paragraphe entre ces deux balises, et nous aurons
enfin notre première page web avec du texte.
UWB – RDC 36
Eléments d’application et de programmation réseaux
Et si nous devons aller à la ligne, nous allons utiliser une balise qui sert juste à
indiquer qu'on doit aller à la ligne : <br />.
On doit obligatoirement la mettre à l'intérieur d'un paragraphe.
Exemple :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Bienvenue sur le site de l’UWB !</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<p>
Bonjour et bienvenue à l’UWB !<br />
Différentes nouvelles fonctions tentent d'être attribuées aux
chiens policiers comme la recherche d'armes à feu, la détection de produits inflammables à l'origine
d'incendie, la détection de cadavres .
</p>
<p>
Pour l'instant c'est un peu vide, mais revenez dans 2-3 jours quand j'aurai appris un peu
plus de choses, je vous assure que vous allez être surpris !
</p>
</body>
</html>
NB : Théoriquement en XHTML, on peut mettre plusieurs balises <br /> d'affilée pour faire
plusieurs sauts de lignes, ce qui ne sera pas le cas quand on fera le CSS.
<p> </p> : pour organiser le texte en paragraphes.
<br /> : pour aller à la ligne.
UWB – RDC 37
Eléments d’application et de programmation réseaux
<h1> </h1> : signifie "titre très important". En général, on s'en sert pour
afficher le titre de la page en haut.
<h2> </h2> : signifie "titre important". Utilisez-les par exemple pour
organiser vos paragraphes et leur donner un titre.
<h3> </h3> : pareil, c'est un titre un peu moins important (on peut dire un
"sous-titre" si vous voulez)
<h4> </h4> : titre encore moins important.
<h5> </h5> : titre pas important.
<h6> </h6> : titre vraiment pas important du tout.
NB : ne confondez pas avec la balise <title> qui affiche le titre de la page dans la
barre de titre du navigateur comme nous l'avons vu. Les titres <h1> et compagnie
eux, servent à créer des titres qui seront affichés sur la page web.
Exemple :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Bienvenue sur le site de l’UWB !</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<h1>Titre super important</h1>
<h2>Titre important</h2>
<h3>Titre un peu moins important (sous-titre)</h3>
UWB – RDC 38
Eléments d’application et de programmation réseaux
Dans l’exemple ci-après, nous allons voir comment se distinguent les différents
titres selon leur importance :
<p>
Bonjour et bienvenue aux Ingénieurs de L2 <br />
Votre Site est très pratique
</p>
Pour mettre "un peu" en valeur votre texte, vous devez utiliser la balise <em>
</em>. Son utilisation est très simple : entourez les mots à mettre en valeur par
ces balises, et c'est bon ! Je reprends un peu l'exemple de tout à l'heure, et j'y
mets quelques mots en évidence :
UWB – RDC 39
Eléments d’application et de programmation réseaux
Comme vous pouvez le voir, le texte avec la balise <em> est mis en italique. Vous
pouvez donc vous servir de cette balise pour mettre des mots en italique.
Pour mettre un texte bien en valeur, on utilise la balise <strong> qui signifie
"fort", ou "important" si vous préférez. Elle s'utilise exactement de la même
manière que <em> :
UWB – RDC 40
Eléments d’application et de programmation réseaux
a) Exposant et indice
Exemple :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
1
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
2
<head>
3
<title>Un peu d'histoire...</title>
4
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
5
</head>
6
<body>
7
<h1>Un peu d'histoire...</h1>
8
<p>
9
<em>Le saviez-vous ?</em><br />
10
Le langage XHTML est le langage qui nous permet de créer des sites web en ce début de
11
XXI<sup>ème</sup> siècle.<br />
12
Avant, vers la fin du XX<sup>ème</sup>, on utilisait le langage HTML, qui disparaît
13
aujourd'hui peu à peu au profit de XHTML
14
</p>
15
</body>
</html>
Pour mettre en indice (c'est-à-dire pour écrire le texte en bas de la ligne en petit),
on utilise cette fois la balise <sub>.
Exemple :
1 <p>
2 x<sub>n</sub> = x<sub>n - 1</sub> - 2x<sub>n-2</sub>
3 </p>
b) Les citations
UWB – RDC 41
Eléments d’application et de programmation réseaux
c) Les acronymes
Exemple :
<p>Le terme <acronym title="Local Area Network">LAN</acronym> désigne un réseau local qui
1
relie plusieurs ordinateurs dans une zone limitée.</p>
UWB – RDC 42
Eléments d’application et de programmation réseaux
Exemple : "fichiers/cible.html".
Les liens vers d'autres sites : ce sont des liens vers d’autres sites, du genre :
"http://www.UWB_rdc1.com", ou vers un fichier précis (par exemple
"http://www.uwb_rdc1.com/fichier.html"). Cette relation est appelée liens
absolus et, contrairement aux liens relatifs, ils commencent souvent par
"http://".
Cas pratique
Supposons maintenant que vous ayez 2 pages XHTML qui se trouvent dans le
même dossier sur votre disque dur :
c:\site\source.html
c:\site\cible.html
Vous voulez faire un lien de source.html vers cible.html. Ce cas est très simple,
comme les fichiers se trouvent dans le même dossier, il suffira juste d'écrire
"cible.html" !
NB : Sur le Web, on n’utilisera que des slash (/) et non des (\) utilisé par le
système d’exploitation de Windows.
UWB – RDC 43
Eléments d’application et de programmation réseaux
Pour réaliser un lien vers une autre page, on utilise la balise <a> à laquelle on
ajoutera l'attribut "href" pour indiquer l'adresse de la page cible (la page vers
laquelle le lien nous amène).
NB : Le texte du lien est placé entre les balises <a> et </a>, et l'adresse de la page
dans le href=""
Le lien ainsi crée, est appelé « lien absolu vers un autre site ("http://"...). Tandis
qu’un lien relatif est celui qui a les pages à relier se trouvant dans le même
dossier.
Exemple :
1 <h1>source.html</h1>
2
3 <p>Tu te trouves sur source.html<br />
4 Souhaites-tu visiter <a href="cible.html">Cliquez ici pour ouvrir le fichier ciblel</a> </p>
1 <h1>cible.html</h1>
2
3 <p>Bravo ! Tu viens d'atterrir sur cible.html !</p>
A l’aide de l’attribut title, XHTML nous crée une Info-bulle qui affiche un message
lié à l’objet pointé.
Exemple :
<p>Allez donc visiter le <a href="http://www.uwb_rdc1.com" title="Site réservé aux
1
Ingénieurs">Site de l’UWB</a></p>
Ce qui donne :
UWB – RDC 44
Eléments d’application et de programmation réseaux
Exemple :
<h2>Adressez-vous au Secrétariat de l’UWB</h2>
1
2
<p>Pour nous contacter, <a href="mailto:[email protected]">cliquez
3
ici</a> !</p>
Une ancre est un repère qui est placé dans des grandes pages XHTML et qui peut
être utile de faire un lien amenant plus bas dans la même page pour amener
l’utilisateur visiteur directement à la partie recherchée.
Pour créer une ancre, il suffit de rajouter l'attribut id à une balise qui va alors
servir de repère. Ce peut être n'importe quelle balise, un titre par exemple.
Utilisez l'attribut id pour donner un nom à l'ancre, ce qui va vous servir ensuite
pour faire le lien vers cette ancre.
Ensuite, il suffit de faire un lien comme d'habitude, mais cette fois l'attribut href
contiendra un dièse (#) suivi du nom de l'ancre.
Enfin cliquez sur le lien, nous amènera plus bas dans la même page (à condition
que la page comporte suffisamment de texte pour que les barres de défilement se
déplacent automatiquement).
<p>
Aller directement à la partie traitant de :<br />
<a href="#L2INFO">Ingénieur Concepteur</a><br />
<a href="#L1INFO">Futur Ingénieur</a><br />
<a href="#G3INFO">Gradué Analyste-Programmeur</a><br />
</p>
<h2 id="L2INFO">Ingénieur Concepteur</h2>
UWB – RDC 45
Eléments d’application et de programmation réseaux
manière de jouer, on observera une baisse de ses performances dans les jours ou
les semaines qui suivent cet effort d'introspection.
L'indépendance entre la base de connaissances et le moteur d'inférences est un
élément essentiel des systèmes experts. Elle permet une représentation des
connaissances sous forme purement déclarative, c'est-à-dire sans lien avec la
manière dont ces connaissances sont utilisées. L'avantage de ce type
d'architecture est qu'il est possible de faire évoluer les connaissances du
système sans avoir à agir sur le mécanisme de raisonnement. Il en est de même
pour nous : un accroissement ou une modification de nos connaissances n'entraîne
pas nécessairement une restructuration en profondeur de nos mécanismes de
fonctionnement.
</p>
UWB – RDC 46
Eléments d’application et de programmation réseaux
manière de jouer, on observera une baisse de ses performances dans les jours ou
les semaines qui suivent cet effort d'introspection.
L'indépendance entre la base de connaissances et le moteur d'inférences est un
élément essentiel des systèmes experts. Elle permet une représentation des
connaissances sous forme purement déclarative, c'est-à-dire sans lien avec la
manière dont ces connaissances sont utilisées. L'avantage de ce type
d'architecture est qu'il est possible de faire évoluer les connaissances du
système sans avoir à agir sur le mécanisme de raisonnement. Il en est de même
pour nous : un accroissement ou une modification de nos connaissances n'entraîne
pas nécessairement une restructuration en profondeur de nos mécanismes de
fonctionnement.
</p>
UWB – RDC 47
Eléments d’application et de programmation réseaux
VI.6. Le lien vers une ancre située dans une autre page
Le concept ici est de faire un lien qui ouvre une nouvelle page et qui amène
directement à une ancre située plus bas sur cette page.
En pratique cela est assez simple à faire : il suffit de taper le nom de la page, suivi
d'un dièse (#), suivi du nom de l'ancre.
Par exemple :
Cela nous amènera sur la page cible.html, directement au niveau de l'ancre appelé
"G3INFO".
Voici une page qui contient 3 liens, chacun amenant vers une des ancres se
trouvant dans les fichiers hmtl différents. Cela revient à dire qu’il faudrait, au
préalable, commencer par crée ces différents fichiers html.
Exemple :
- Créons quatre fichiers HTML distincts, nommés respectivement UWB0.HTML,
UWB1.HTML, UWB2.HTML, UWB3.HTML
- Le premier étant la source, doit nous amener vers les autres se trouvant
toujours dans le même site.
Résolution :
a) Créer le fichier source dans lequel nous aurons les éléments ci-après :
UWB – RDC 48
Eléments d’application et de programmation réseaux
<body>
<h1>Les profils des finalistes UWB<sup>ESU</sup></h1>
<p>
A l’UWB, nous avons les filières ci-après :<br />
<a href="UWB1.html#L2INFO">Ingénieur Concepteur </a><br />
<a href="UWB2.html#L1INFO">Futur Ingénieur Concepteur</a><br />
<a href="UWB3.html#G3INFO">Gradué Analyste-Programmeur</a><br />
</p>
b) Créer le 1er fichier cible dans lequel nous aurons les éléments ci-après :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.google.fr" xml:lang="fr" >
<head>
<title>Bienvenue sur le site de l'UWB !</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
UWB – RDC 49
Eléments d’application et de programmation réseaux
Comme nous l’avons vu dans le premier chapitre, le CSS qui signifie : "Cascading
Style Sheets" ou "Feuilles de style en cascade", qui permet de créer des fichiers
Web autonomes et indépendants de XHTML.
Dans la "Feuille de style en cascade" en règle générale, on y saisit des codes CSS
qui constituent un fichier à part qui a comme extension .css au lieu de .html.
Il renferme un fichier dans lequel on définit l'apparence qu’un site peut avoir :
la couleur ;
la police du texte ;
la taille des titres ;
la position des menus ;
la couleur ou l'image de fond etc...
Et le code CSS peut être saisi à 3 niveaux différents, selon les méthodes :
Méthode A : dans un fichier .css (la méthode la plus recommandée)
Méthode B : dans l'en-tête du fichier XHTML
Méthode C : dans les balises
Comme il est signalé ci-haut, le plus souvent on écrit du code CSS dans un
fichier spécial ayant l'extension .css (contrairement aux fichiers XHTML qui ont
l'extension .html).
C'est la méthode la plus pratique qui présente un grand nombre d’avantages
par la création de plusieurs designs.
UWB – RDC 50
Eléments d’application et de programmation réseaux
Exemple :
La balise singleton <link /> peut comporter plusieurs attributs. Ci-dessous, nous allons
modifier deux d'entre eux :
o title : c'est le nom qui est donné à la feuille de style (n’importe quel
nom peut être repris);
o href : c'est l'emplacement où se trouve la feuille de style sous forme
de lien relatif. Présentement dans cet exemple, le CSS se trouve dans
le même dossier.
o
Dans le header du fichier XHTML (Méthode B) :
UWB – RDC 51
Eléments d’application et de programmation réseaux
Notre attention est attirée sur cette seconde méthode qui ressemble beaucoup
à la première. Cependant, la première solution (utilise un .css externe) est
quand même bien plus pratique, car elle permet de faire changer directement le
design du site. De plus, le fichier ne sera téléchargé qu'une seule fois pour
toutes sur le site, ce qui allègera la taille des fichiers .html et rendra donc le
site plus rapide !
Partant, elle renferme tous les défauts de mauvaise performance d’un langage
de programmation ; Non seulement le CSS sera confus et peu lisible à
l'intérieur des balises, mais en plus il ne permettra pas de profiter de tous les
avantages du CSS, tel que le changement de couleurs de tous les titres du site
en un clic.
Remarque : L'idéal dans cette section serait d'utiliser une feuille de style
externe (= mettre du CSS dans un fichier .css).
Dans le dossier de votre site, il doit y avoir au moins 2 fichiers: un .html et un .css.
UWB – RDC 52
Eléments d’application et de programmation réseaux
Le fichier .css contient du code CSS (que nous allons apprendre à partir de
maintenant) :
UWB – RDC 53
Eléments d’application et de programmation réseaux
NB : Les résultats que va offrir le CSS, seront perceptibles à travers l’exécution du
fichier HTML (double-cliquez sur l'icône du fichier index.html dans l'explorateur).
N'essayez jamais d'ouvrir le .css : ce fichier ne produira aucun effet.
C'est le .html qui, lors de son ouverture, va charger le .css et appliquer les
informations de style.
Des propriétés CSS : les "effets de style" de la page sont rangés dans des
propriétés.
balise1
{
propriete: valeur;
propriete: valeur;
propriete: valeur;
}
balise2
{
propriete: valeur;
propriete: valeur;
propriete: valeur;
propriete: valeur;
}
balise3
{
propriete: valeur;
}
NB : Chaque propriété est suivie toujours des "deux-points" (:) puis de sa valeur
correspondante et chaque ligne se termine par un point-virgule (;).
Le point-virgule n'est pas obligatoire s'il n'y a qu'une seule propriété pour la balise
(comme c'est le cas pour la balise 3). Toutefois, il vaut mieux le mettre tout le
temps pour avoir un texte ordonné.
UWB – RDC 54
Eléments d’application et de programmation réseaux
Exemple : Supposons qu’on veut modifier tous les paragraphes pour qu'ils soient
écrits en bleu, avec une taille de 18 pixels.
Sachant que tous les textes des paragraphes sont entre des balises <p> </p>, on
écrira dans le fichier CSS :
p
{
color: blue;
font-size: 18px;
}
NB : Ne mettez jamais d'espace entre "18" et "px", car sinon le code CSS ne
fonctionnera pas.
<p>
Bonjour !<br />
Je suis une page XHTML apparemment banale, mais je sers en fait de test
de fichier <acronym title="Cascading Style Sheets">CSS</acronym> pour
apprendre aux ingénieurs de l’ITSIA qui travaillent aussi sur Google <a
href="http://www.google.cd">Site de Google de la RDC</a>
</p>
<p>
Comme l'a dit Neil Armstrong un certain 20 juillet 1969 : <q>C'est un
petit pas pour l'Homme, un grand pas pour l'Humanité</q><br />
J'aime la viande de chien en conserve.<br />
Vive les frites !
</p>
<p>
La vie d’un homme qui connaît les intérêts de l’humanité est plus celles
des mille personnes qui vivent dans l’ignorance.
</p>
</body>
</html>
UWB – RDC 55
Eléments d’application et de programmation réseaux
Revenons à notre fichier CSS, et reprenons chaque balise avec les mêmes
propriétés, on aura :
h1
{
color: red;
}
h2
{
color: red;
}
Cet exemple signifie que nos balises h1 doivent être en rouge, ainsi que nos
balises h2. Cela, comme on vient de le remarquer, est répétitif.
En CSS, on fusionne les styles pour avoir la même présentation en séparant les
noms des balises par des virgules :
h1, h2
{
color: red;
}
Cela peut s’appliquer aussi sur autant de balises auxquelles on peut attribuer le
même style. Par exemple, si vous voulez mettre en rouge les titres, les liens et les
citations, on fera : h1, h2, a, q
Ainsi, pour faire un commentaire, on : /*, suivi du commentaire, puis */ pour
terminer le commentaire. Et les commentaires peuvent être sur une ou plusieurs
lignes.
Par exemple :
/*
design.css
---------
p
{
color: blue; /* Les paragraphes seront bleus */
font-size: 18px; /* La taille de 18 pixels me semble pas mal */
}
UWB – RDC 56
Eléments d’application et de programmation réseaux
Les deux propriétés vues, jusqu’ici, appliquent impérativement leurs styles sur
tous les paragraphes sans aucune distinction. Cependant, les attributs spéciaux
« class » et « id », qui permettent de définir des styles personnalisés, ont la
possibilité de sélectionner pour que seulement certains paragraphes (ou certains
titres, ou certaines citations) soient écrits différemment, et cela sur toutes les
balises.
Les attributs class et id sont quasiment identiques. Cependant, une petite
différence se fera remarquer dans leur application.
a) L’attribut : class
1. Ce que sont les class et id et comment s'en servir
2. Les balises dites "universelles" et leur utilité
3. Les imbrications de balises
Comme il est signalé ci-haut, l’attribut « class » peut être placé dans n'importe quelle balise, aussi
bien dans les titres que dans les paragraphes, image etc...
<h1 class=""> </h1>
<p class=""></p>
<img class="" />
Et la valeur à placer pour l'attribut class n’est que tout simplement un nom, n’importe quel nom.
Exemple : Supposons que vous vouliez définir un style appelé "important" qui écrit le texte en
rouge / 18 pixels. Vous rajouterez dans le fichier HTML l'attribut class="important" à chacune des
balises que vous voulez modifier.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Page d'exemple pour tester le CSS crée à l’UWB</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="Essai 2"
href="design.css" />
</head>
<body>
<h1>Découverte du CSS</h1>
<p>
Bonjour !<br />
Je suis une page XHTML <em>apparemment</em> banale, mais je sers en fait de test
de fichier <acronym title="Cascading Style Sheets">CSS</acronym> pour faire
comprendre aux licenciés de l’UWB le site de google
<a href="http://www.google.com">Site de Google</a>
</p>
<h2>Citation de Monsieur Mobutu</h2>
<p>
Tellement qu’il a été fortement secoué par la pression interne qui a coïncidé
avec le courant de la perestroïka initié par Michael GORBATCHEV, un certain le
20 avril 1990, déclara <q class="important">: Je prends congé du Mouvement
Populaire de la Révolution. </q> Cela, était la résultante des
consultations populaires qu’il avait entamées pour sonder sa popularité.
Vive le Zaïre !
</p>
<p class="important">
La République Démocratique du Congo regorge dans le sol et sous-sol une
diversité des substances minérales, pétrolières et forestières disséminées dans
presque toutes les provinces.
</p>
</body>
</html>
Ensuite, à partir du fichier CSS, on peut déjà définir toutes les balises qui ont la
class "important" pour qu’elles soient écrites en rouge / 18 pixels".
UWB – RDC 57
Eléments d’application et de programmation réseaux
Dans cette syntaxe, au lieu de mettre le nom de la balise avant les accolades
(comme p ou encore h1), on saisit seulement un point suivi du nom de la class.
.important
{
color: red;
font-size: 18px;
}
b) L’attribut : id
Et généralement, en pratique, les "id" sont utilisés que sur des éléments qui sont
uniques sur la page, comme par exemple le logo :
1 #logo
2{
3 /* Mettez les propriétés CSS ici */
4} VI.5. Les balises universelles
Dans cette section, nous allons étudier comment isoler les mots qui ne sont
pas entourés par des balises pour leur appliquer un style à l’aide de l’attribut
« class ».
UWB – RDC 58
Eléments d’application et de programmation réseaux
Exemple :
Code : HTML
1 <p>Citation de <span class="important">Monsieur</span> Mobutu.</p>
Code : CSS
1 .important
2{
3 color: blue;
4}
Cette section constitue une des notions importantes pour indiquer l'ordre
d'imbrication des balises dans le CSS.
Exemple, nous sommes dans notre fichier CSS. Nous souhaiterions définir un
style uniquement pour les balises <em> qui se trouvent à l'intérieur d'un titre
<h3>.
Code : CSS
1 h3 em /* => tous les em situés à l'intérieur d'un h3 */
2{
3 color: blue;
4}
NB : On a juste séparé les 2 noms de balises par un espace, et non pas par une
virgule comme on l'a fait plus haut. Cela signifie que l’on a modifié le style de
toutes les balises <em> situées à l'intérieur de titres <h3>". On a indiqué dans le
CSS dans quel ordre devaient être imbriquées les balises.
L'ordre dans l’imbrication des balises est très important. Si on avait mis "em h3"
cela aurait voulu dire "Tous les <h3> situés à l'intérieur de balises <em>". Or c’est
impossible de mettre une balise de type block dans une balise de type inline.
Exemple :
Code : HTML
<h3>L'imbrication, c'est <em>pratique</em></h3>
UWB – RDC 59
Eléments d’application et de programmation réseaux
Exemple1 : p .important
Ce qui signifie : "Toutes les class "important" contenues dans des balises <p>".
Exemple2 :
blockquote p strong, h1 .important
NB : La virgule "coupe" la ligne en deux, elle signifie "ET". Pour bien voir que la
ligne est coupée en deux, je vais colorer les deux parties :
blockquote p strong, h1 .important
Ce qui veut dire : "Toutes les balises <strong> contenues dans un <p> elles-
mêmes contenues dans un <blockquote> ET toutes les class "important"
contenues dans un titre <h1>"
UWB – RDC 60
Eléments d’application et de programmation réseaux
Dans ce chapitre, nous allons étudier comment formater le texte pour modifier
l'apparence du texte dans le CSS, et aussi nous allons réutiliser ce que nous
avons vu dans le chapitre précédent.
Entre autre, nous allons voir, successivement, comment modifier la taille du texte,
changer la police, aligner le texte etc...
En pixels : c'est une façon très précise d'indiquer la taille du texte. C'est à
dire combien de pixels exactement doit faire le texte. Ainsi, pour avoir un
texte de 16 pixels de hauteur, on écrit : font-size:16px.
Les lettres auront une taille de 16 pixels, comme le montre l'image suivante :
Code : CSS
1 P
2 {
3 font-size: 14px; /* Paragraphes de 14 pixels */
4 }
5 h1
6 {
7 font-size: 22px; /* Titres de 22 pixels */
8 }
Indiquer la taille du texte en pixels, centimètres et millimètres est très pratique et très précis.
Certes, il est préférable d'indiquer une taille relative - comme nous allons le voir - afin que la
taille du texte s'adapte aux choix ; Par contre , il y a aussi des préférences pour avoir du texte
plutôt gros, petit, plus petit...
En donnant une valeur relative : c'est-à-dire en écrivant carrément "gros", "très gros", "petit",
"minuscule". Et en anglais, voici la liste des différentes valeurs que CSS propose ainsi que
leur signification :
o xx-small : minuscule
o x-small : très petit
o small : petit
o medium : moyen
o large : grand
o x-large : très grand
o xx-large : gigantesque
UWB – RDC 61
Eléments d’application et de programmation réseaux
Code : CSS
1 .minuscule
2 {
3 font-size: xx-small;
4 }
5 .trespetit
6 {
7 font-size: x-small;
8 }
9 .petit
10 {
11 font-size: small;
12 }
13 .moyen
14 {
15 font-size: medium;
16 }
17 .grand
18 {
19 font-size: large;
20 }
21 .tresgrand
22 {
23 font-size: x-large;
24 }
25 .supermegagigatresgrand
26 {
27 font-size: xx-large;
28 }
NB : Cette méthode qui utilise la valeur relative est avantageuse par rapport
aux pixels. Car, il rend le site plus "adaptable" aux différentes
configurations de vos visiteurs.
Code : CSS
1 .petit_em
2 {
3 font-size: 0.7em;
4 }
5 .grand_em
6 {
7 font-size: 1.3em;
8 }
UWB – RDC 62
Eléments d’application et de programmation réseaux
VIII.2. : La police
Par défaut, la polices "Times New Roman" et "Arial" sont celles qui s’installent et
s’utilisent automatiquement sur le système Windows. Tandis que sur les Mac,
"Time" et "Times New Roman".
Syntaxe : font-family:police;
Et pour éviter qu'il n'y ait de problème si l'on n'a pas la même police, on mettra en
général plusieurs noms de police, séparés par des virgules :
Cela veut dire que le navigateur essaiera d'abord de mettre la police1. S'il ne l'a
pas, il essaiera de mettre la police2. S'il ne l'a pas, il essaiera la police3 et ainsi de
suite.
En général, on met en tout dernier "serif", ce qui correspond à une police standard
(qui ne se met que si aucune autre police n'a été trouvée).
Exemple :
font-family:Impact, "Arial Black", Arial, Verdana, serif;
Ce qui veut dire : "Mets la police Impact, ou, si elle n'y est pas, Arial Black, ou
sinon Arial, ou sinon Verdana, ou si rien n'a marché mets une police standard
(serif)".
UWB – RDC 63
Eléments d’application et de programmation réseaux
Code : CSS
h1
1
{
2
font-family: "Arial Black", Arial, Verdana, serif; /* On essaie d'avoir Arial Black
3
en priorité */
4
}
5
p
6
{
7
/* La police Comic Sans MS est aussi agréable à lire pour les paragraphes */
8
font-family: "Comic Sans MS", "Trebuchet MS", Georgia, serif;
9
}
VIII.3. : L’alignement
Le langage CSS nous permet de faire tous les alignements que l'on connaît : à
gauche, centré, à droite et justifié.
Code : CSS
h1
1
{
2
text-align: center; /* Pour centrer le titre */
3
font-family: "Arial Black", Arial, Verdana, serif; /* Un titre en Arial
4
Black c'est mieux :o;) */
5
}
6
blockquote
7
{
8
text-align: justify; /* La citation sera justifiée */
9
}
10
.signature
11
{
12
text-align: right; /* Pour aligner à droite ma signature */
13
font-family: "Comic Sans MS", Georgia, "Times New Roman", serif;
14
font-size: 80%;
15
}
UWB – RDC 64
Eléments d’application et de programmation réseaux
Voici donc le code XHTML de cet exemple permettant de tester les alignements :
Code : HTML
<h1>L’adage d’un sage</h1>
<blockquote><p>Morbi fermentum libero non libero. Nunc in turpis in justo adipiscing scelerisque.
Donec id elit non diam aliquet semper. Maecenas pede. Maecenas fringilla. Fusce eleifend dui quis
lectus. Praesent facilisis, ligula a consequat posuere, metus purus porta mi, at consectetuer justo
wisi id dui. Maecenas mattis. Ut imperdiet pharetra enim. Suspendisse quis leo nec arcu interdum
aliquam. Vivamus dictum quam id tellus. Maecenas in quam sit amet risus semper auctor. Integer
leo dui, malesuada eu, fermentum at, vehicula at, nisl. Pellentesque hendrerit. Proin ut libero.
Curabitur sem ipsum, porta non, feugiat vel, mollis ut, justo. Sed a orci id metus pretium lobortis.
Morbi ultrices, quam a facilisis faucibus, odio nunc dignissim enim, eget rhoncus purus erat ac
quam.</p></blockquote>
NB : L'alignement du texte d'une balise inline ne peut être modifié (comme span,
a, em, strong...). L'alignement ne fonctionne que sur des balises de type block :
p, div, blockquote, h1, h2, ...).
VIII.3.2. L'indentation
L'indentation est une opération qui consiste à faire la mise en retrait du texte.
Cela permet par exemple de faire commencer un paragraphe un peu plus à droite,
ce qui rend la lecture beaucoup plus facile et agréable. C'est un procédé que l'on
retrouve dans la plupart des livres d'ailleurs.
Exemple :
Syntaxe : text-indent, suivi de la taille du retrait : qui peut être en pixels, en centimètres, en
millimètres...
Les pixels seraient les biens indiqués dans ce cas.
Exempe :
Code : CSS
P
{
text-indent: 30px; /* Les paragraphes commenceront 30 pixels sur la droite */
text-align: justify; /* Ils seront justifiés */
font-size: large; /* Allez, soyons fous, grossissons le texte :o;) */
}
UWB – RDC 65
Eléments d’application et de programmation réseaux
Le CSS étant est un langage de mise en forme, renferme une série de propriétés
qui permettent de donner de style aux pages web, par exemple la mise en gras,
italique, souligné à la mise en capitales, en passant par la possibilité de faire
clignoter le texte.
a) Mise en italique
Code : CSS
1 em
2{
3 font-style: normal;
4}
Dans l'exemple suivant, nous allons utiliser le font-style pour mettre en italique
tous les titres <h2> :
Code : CSS
h1
{
text-align: center;
font-family: Arial, "Times New Roman", Verdana, serif;
}
h2
{
font-style: italic; /* Les titres h2 seront en italique ! */
text-indent: 30px; /* On décale un peu les sous-titres */
font-family: Arial, "Times New Roman", "Arial Black", Verdana, serif;
}
UWB – RDC 66
Eléments d’application et de programmation réseaux
b) Mise en gras
La mise en gras permet de mettre rendre gras les mots sélectionnés, les titres
sélectionnés, et même certains paragraphes entiers etc...
La propriété CSS pour mettre en gras est font-weight, qui prendra les valeurs
suivantes :
bold : le texte sera en gras ;
normal : le texte sera écrit normalement (par défaut).
Exemple :
Code : CSS
1p
2{
3 font-weight: bold;
4}
c) Mise en majuscules
Exemple :
Code : CSS
1p
2{
3 font-variant: small-caps;
4}
UWB – RDC 67
Eléments d’application et de programmation réseaux
Dans l’exemple ci-après, nous allons faire recours à l’attribut class dans le code
XHTML :
Code : HTML
<h1>Je suis très ému du cours de l’APR donné à l’UWB...</h1>
Code : CSS
h1
{
text-align: center;
font-family: Arial, "Times New Roman", Verdana, serif;
text-transform: capitalize; /* Les premières lettres des mots du titre seront
en majuscules */
}
.important
{
text-transform: uppercase; /* le texte sera en majuscules à l’aide de la
class important*/
}
.chuchoter
{
text-transform: lowercase;
font-style: italic; /* Le texte chuchoté sera en minuscules et italique */
}
NB : Cette propriété ne marche pas sous Internet Explorer ni sous Google
Chrome. Elle fonctionne en revanche bien sur tous les autres navigateurs,
dont Mozilla Firefox.
UWB – RDC 68
Eléments d’application et de programmation réseaux
Code : HTML
<h1>A ne pas manquer !</h1>
Code : CSS
h1
{
text-align: center;
font-family: "Arial Black", Arial, "Times New Roman", serif;
text-decoration: blink; /* Le titre sera clignotant ! (ne fonctionne pas
sous Internet Explorer) */
}
.souligne
{
text-decoration: underline;
}
.barre
{
text-decoration: line-through;
}
.ligne_dessus
{
text-decoration: overline;
}
NB : L'intérêt du CSS c'est aussi de pouvoir cumuler les styles. Dans notre
exemple, la class "souligne" est là juste pour souligner, mais dans la pratique on
crée souvent des class combinant les styles, comme par exemple la class
"important" peut souligner le texte, mettre en gras et écrire en plus gros
e) La mise en couleur
Le langage CSS renferme plusieurs possibilités pour appliquer une couleur ou des
couleurs à un texte. Et ici, nous allons voir quelles sont les possibilités qu'offre le
CSS pour choisir une couleur.
UWB – RDC 69
Eléments d’application et de programmation réseaux
Ci-dessous, les 16 couleurs dont on peut utiliser en tapant juste leurs noms :
Couleur Aperçu
White
Silver
Grey
Black
Red
Maroon
Lime
Green
Yellow
Olive
Blue
Navy
Fuchsia
Purple
Aqua
Teal
Exemple :
Code : HTML
<h1>De toutes les couleurs</h1>
<p>Salut et bienvenue dans cette page haute en couleurs ! J'utilise des <strong>noms
de couleurs standards</strong> dans mon CSS pour égayer un peu la page. Ainsi, "red"
signifie "rouge", "blue" signifie "bleu" etc.</p>
Code : CSS
h1
{
text-align: center;
font-family: Arial, "Arial Black", "Times New Roman", serif;
text-decoration: underline;
color: green; /* Le titre en vert (pourquoi pas ?) */
}
p
{
text-indent: 20px;
color: blue; /* Les paragraphes en bleu */
}
strong /* ... et les mots importants en rouge clignotant ! */
{
color: red;
text-decoration: blink;
}
Il existe aussi d’autres méthodes pour la notation des valeurs à associer aux
UWB – RDC 70
Eléments d’application et de programmation réseaux
couleurs :
- Notation hexadécimale
color : #FF5A28
Ces chiffres ou lettres fonctionnent en couple de deux par deux. Les 2 premiers
indiquent une quantité de rouge, les 2 suivants une quantité de vert, et les 2
derniers une quantité de bleu. Et quand on fusionne, en terme de quantités, (qui
sont les composantes Rouge-Vert-Bleu de la couleur) on fini par obtenir la couleur
voulue.
- Notation RGB
UWB – RDC 71
Eléments d’application et de programmation réseaux
Code : CSS
h1
{
text-align: center;
color: rgb(243,65,243);
}
Comme vous avez pu le constater dans l'exemple, pour utiliser la méthode RGB il
faut taper rgb (Rouge, Vert, Bleu) en remplaçant "Rouge, Vert, Bleu" par les
nombres correspondants. Et ces nombres vont de 0 à 255.
VIII.5. : Le fond
Le fond ne désigne pas seulement le fond d’une page web, mais par contre il peut
aussi s’appliquer aux titres ou aux paragraphes, ou encore à certains mots d'un
paragraphe.
UWB – RDC 72
Eléments d’application et de programmation réseaux
a) La couleur de fond
Code : CSS
body /* Dans la section body, la couleur s’appliquer sur toute la page */
{
background-color: black; /* Le fond de la page sera noir */
color: white; /* Le texte de la page sera blanc */
}
NB : Tout le texte apparaît en une seule couleur qui est blanche, qui a été
appliquée à la balise <body>, et tous les titres <h1> ainsi que tous les paragraphes
<p> ont hérité la même couleur définie dans le fichier CSS ; autrement dit, ils ont
hérité les propriétés que renferme le fichier CSS.
Et ce phénomène s'appelle l'héritage.
Cela veut dire aussi que quand on applique un style à une balise, toutes les
balises se trouvent à l'intérieur de cette balise prendront le même style.
Cependant, la sélection des différents éléments peut aussi être appliquée. Par
exemple on veut mettre les titres en rouge ; La priorité sera accordée d’abord aux
titres qui prendront la couleur rouge. Et en revanche, si rien n’est indiqué, les
titres hériteront de la couleur blanche.
Et pour annuler un héritage pour que les titres ne soient pas écrits en blanc sur
un fond jaune, on peut utiliser le surlignage avec les propriétés de la manière
suivante : Code : CSS
Body
{
background-color: black;
color: white; /* Toutes les balises contenues dans body verront leur texte
coloré en blanc... */
}
h1
{
color: red; /* ... sauf si je demande expressément de changer la couleur par
la suite */
}
.surligne /* Un style qui permet par exemple de surligner certains mots d'un texte */
{
background-color: yellow;
color: black; /* Le texte surligné sera écrit en noir, parce que le blanc sur
fond jaune on voit rien ;o) */
}
UWB – RDC 73
Eléments d’application et de programmation réseaux
b) L’image de fond
NB : Le fond n'est pas seulement en PNG, mais aussi en JPEG ou en GIF.
NB : Pour un travail qui se fait en local, on détermine le chemin du répertoire avec
des slashs qui sépare les sous-répertoires. Et une image censée être appliquée sur
toute la page, on utilise la balise <body></body>.
Exemple :
Code : CSS
body
{
background-image: url("../images/boni.jpg");
}
h1
{
font-style: italic;
font-family: "Arial Black", Arial, Verdana, serif;
text-align: center;
}
blockquote p /* Tous les paragraphes contenus dans un blockquote */
{
text-align: justify;
text-indent: 25px;
}
Naturellement une image de fond appliqué à une page est toujours mobile, c’est-à-
dire qu’elle est censée bougée avec le texte quand ce dernier monte, descend, ou
glisse à droit et à gauche. Le langage CSS permet de "fixer" le fond, de manière à
ce que le fond (image) ne pas bouge pas en même temps avec le texte.
Exemple :
Code : CSS
UWB – RDC 74
Eléments d’application et de programmation réseaux
1 body
2 {
3 background-image: url("../images/neige.png");
4 background-attachment: fixed; /* Le fond restera fixe */
5 }
6 h1
7 {
8 font-style: italic;
9 font-family: "Arial Black", Arial, Verdana, serif;
10 text-align: center;
11 }
12 blockquote p
13 {
14 text-align: justify;
15 text-indent: 25px;
16 }
En des deux propriétés ci-dessous, nous avons encore deux autres propriétés
relatives avec les images de fond.
La première propriété est celle qui assure la répétition de l'image de fond.
Elle s'appelle background-repeat et peut prendre les quatre valeurs ci-après :
no-repeat : le fond ne sera pas répété. L'image sera donc unique sur la page.
repeat-x : le fond sera répété uniquement sur la première ligne, horizontalement.
repeat-y : le fond sera répété uniquement sur la première colonne, verticalement.
repeat : le fond sera répété (par défaut).
Exemple, avec l’image ci-après s’appelle boni.jpg, nous allons essayer de la répéter en
autant de fois en position verticale :
Code : CSS
body
{
background-image: url(boni.jpg");
background-repeat: repeat-y; /* Le fond ne se répètera que sur la
première colonne, verticalement */
}
h1
{
font-style: italic;
font-family: "Arial Black", Arial, Verdana, serif;
text-align: center;
}
blockquote p
{
text-align: justify;
text-indent: 25px;
}
UWB – RDC 75
Eléments d’application et de programmation réseaux
Une image de fond peut aussi être positionnée sur la page web à l’aide de la
propriété background-position. Cette propriété n'est utilisée que si
"background-repeat: no-repeat;" est aussi définie.
NB : La combinaison des mots est aussi possible en CSS, soit par exemple pour
aligner une image en haut à droite, on tapera : background-position: top right;
Exemple :
Code : CSS
body
{
background-image: url(boni.jpg"); /* Le fond est l'image "boni.gif" */
background-repeat: no-repeat; /* Le fond ne se répète pas */
background-position: top right; /* Le fond est aligné en haut à droite */
background-attachment: fixed; /* Le fond est fixé */
}
h1
{
font-style: italic;
font-family: "Arial Black", Arial, Verdana, serif;
text-align: center;
}
blockquote p
{
text-align: justify;
text-indent: 25px;
}
UWB – RDC 76
Eléments d’application et de programmation réseaux
f) Mégo-propriété de backgroung
Exemple :
Code : CSS
body
{
background: url("boni.jpg") no-repeat top right fixed;
}
h1
{
font-style: italic;
font-family: "Arial Black", Arial, Verdana, serif;
text-align: center;
}
blockquote p
{
text-align: justify;
text-indent: 25px;
}
Dans les chapitres et sections précédents, nous avons fait recours à un bon
nombre de propriétés qui façonnent et qui donnent du style au texte en modifiant
la taille, la police, la couleur etc...
Et dans cette section, nous allons apprendre un nouvel aspect du langage CSS
dénommé «pseudo-formats» qui va nous permettre d’appliquer par exemple, à des
moments ou des endroits précis, une modification à l'apparence d'un lien au
passage de la souris, et aussi à modifier automatiquement la première lettre d'un
paragraphe etc...
Et le pseudo-format est un nom ajouté après celui de la balise ou de la class qui
change l’apparence selon les critères qui lui sont donnés.
Ces éléments vont nous permettre d'ajouter encore plus de dynamisme au site
web.
UWB – RDC 77
Eléments d’application et de programmation réseaux
Ci-dessous, quelques styles pris à titre d’exemple qui peuvent modifier les styles à
un lien :
a
{
text-decoration: none; /* Les liens ne seront plus soulignés */
color: red; /* Les liens seront en rouge au lieu de bleu */
font-style: italic; /* Les liens seront en italique */
}
Nous allons voir comment modifier l'apparence des liens dans les cas suivants :
Quand l’utilisateur fait passer la souris sur le lien;
Quand l’utilisateur clique sur le lien ;
Quand l’utilisateur sélectionne le lien ;
Quand l’utilisateur découvre une page.
a) Au passage de la souris
Code : CSS
a
{
text-decoration: none; /* Les liens ne seront plus soulignés */
color: red; /* Les liens seront en rouge au lieu de bleu */
font-style: italic; /* Les liens seront en italique */
}
a:hover /* Quand le visiteur pointe sur le lien */
{
text-decoration: underline; /* Le lien deviendra souligné quand on pointera
dessus */
color: green; /* Le lien sera écrit en vert quand on pointera dessus */
}
UWB – RDC 78
Eléments d’application et de programmation réseaux
b) Au moment du clic
UWB – RDC 79
Eléments d’application et de programmation réseaux
Dans cet exemple, nous avons constaté que le lien garde sa couleur de fond un
peu plus longtemps. Et il serait avantageux d’utiliser: focus à la place de :active.
NB : Comme l’ancienne version de l’IE ne prend pas le focus, il serait prudent
d'appliquer le même style au :focus et au :active, comme on a appris à le faire
dans le premier chapitre CSS, en séparant les noms par une virgule. Exemple :
Code : CSS
a:active, a:focus /* Appliquer le même style aux liens actifs et focus */
{
background-color: #FFCC66;
}
Cette astuce a comme avantage dans la mesure où si le navigateur est IE, il fera
recours uniquement le :active (et le fond sera un peu coloré), par contre si c'est un
navigateur autre que l’IE, le fond gardera pendant longtemps son apparence grâce
au :focus.
UWB – RDC 80
Eléments d’application et de programmation réseaux
Une liste à puces est une forme qu’on applique pour créer un menu sur la page
web en énumérant une série d’options et même de citations en différentes lignes ;
distinguées par des puces, des points, des numéros, etc..
Dans un premier temps nous allons voir comment créer des listes à puces en
XHTML, et ensuite, nous allons décorer ces listes au travers de nouvelles
propriétés CSS.
Une liste non ordonnée est obtenue à l’aide de la balise <ul></ul, qui prend toute
la liste et chaque élément de la liste doit être précédé de la balise <li></li>, ce qui
va restituer la forme ci-dessous :
Licence ;
Maîtrise ;
Doctorat.
Cette liste nous restitue une suite d'éléments, sans notion d'ordre (il n'y a pas de
"premier" ni de "dernier").
L’imbrication des listes à puces peut aussi s’appliquer dans des menus
complexes. Il suffira d’ouvrir une seconde balise <ul> à l'intérieur d'un élément
<li></li>.
b) Liste ordonnée
Une liste à puces ordonnée est celle qui renferme une numérotation ou des
références en ordre alphabétique. Et pour l’ordonner, On change cette fois-ci la
balise <ul></ul> qui devient cette fois <ol></ol> A l'intérieur, on ne change rien :
chaque élément de la liste être toujours précédé de la balise <li></li>.
UWB – RDC 81
Eléments d’application et de programmation réseaux
NB : La différence avec la liste ordonnée est la seule balise <ol></ol> qui a
remplacé <ul></ul>.
c) Liste de définitions
Code : HTML
<dl>
</dl>
Ici, la seule différence avec les deux premières, pour indiquer les éléments de la
liste, on a 2 types d'éléments :
Les mots
Les définitions
NB : Les définitions sont placées en retrait par rapport aux mots principaux.
L’apparence est loin d’être appréciée, néanmoins avec le CSS on fera en sorte que
les mots et leurs éléments soient très bien présentés.
La liste à puces peut être embellie par une suite de propriétés dans le CSS, selon
les besoins. A titre d’exemple, nous allons faire en sorte que les définitions soient
clignotantes sur fond rouge.
UWB – RDC 82
Eléments d’application et de programmation réseaux
Code : CSS
dd
{
background-color:red;
/* ... */
}
Cette propriété permet d'indiquer si la liste peut être mise en retrait ou non.
Elle s'appelle list-style-position, et peut prendre 2 valeurs :
inside : la liste n'est pas mise en retrait.
outside : la liste est mise en retrait (par défaut).
Code : CSS
.pas_de_retrait
{
list-style-position: inside;
}
.retrait
{
list-style-position: outside;
}
Code : HTML
<p>Voici une liste avec retrait (par défaut) :</p>
<ul class="retrait">
<li>Liste<br />à puces</li>
<li>Ligne 1<br />Ligne 2</li>
<li>Vous pouvez voir<br />que le texte est décalé sur la droite</li>
</ul>
<ul class="pas_de_retrait">
<li>Liste<br />à puces</li>
<li>Ligne 1<br />Ligne 2</li>
<li>Vous pouvez voir<br />que le texte n'est pas décalé sur la droite</li>
</ul>
NB : Pour bien voir la différence au niveau du retrait, il faut que les éléments de la
liste comportent au moins 2 lignes à l’aide de la balise <br />. En pratique, on ne
désactive pas le retrait des listes à puces, sauf quand on se sert des listes pour
créer le menu de son site comme on le verra plus tard.
b) Représentation de la puce
UWB – RDC 83
Eléments d’application et de programmation réseaux
<p>Voici une liste à puce non ordonnée sans modification (= <em>disc</em>) :</p>
<ul>
<li>Liste</li>
<li>à</li>
<li>puces</li>
</ul>
UWB – RDC 84
Eléments d’application et de programmation réseaux
.cercle
{
list-style-type: circle;
}
.carre
{
list-style-type: square;
}
.rien
{
list-style-type: none;
}
.commence_a_zero
{
list-style-type: decimal-leading-zero;
}
.lettres_minuscules
{
list-style-type: lower-alpha;
}
.chiffres_romains
{
list-style-type: upper-roman;
UWB – RDC 85
Eléments d’application et de programmation réseaux
}
.lettres_grecques
{
list-style-type: lower-greek;
}
h2
{
text-indent: 20px;
font-family: Arial, Verdana, "Times New Roman", serif;
}
em
{
background-color: yellow;
}
strong
{
color: red;
}
a:hover
{
text-decoration: underline;
}
UWB – RDC 86
Eléments d’application et de programmation réseaux
Le chapitre présent est celui qui va nous permettre de donner une stature de bon
site web avec des designs adaptés à l’environnement et aux applications.
Cependant dans les chapitres précédents, nous avons vu les balises inline /
block, pour lesquelles nous essayerons de faire un petit rappel.
Durant les chapitres précédents, on avait utilisé à maintes reprises les mots
"inline" et "blocks".
Ici, nous allons relever la différence qui peut exister entre les balises inline et
block. Et comme on parle des balises, on peut classer les balises XHTML dans
une des 2 catégories suivantes : inline et block (en français : "En ligne" et
"Bloc") ; ce classement nous amènera à distinguer si une balise est inline ou
block.
NB : le fond bleu renferme le type block et tandis que le fond jaune, est du type
inline.
UWB – RDC 87
Eléments d’application et de programmation réseaux
Comme on peut le voir, les blocks se poursuivent les uns en-dessous des autres.
La balise inline <a></a> se trouve surtout à l'intérieur d'une balise block.
Ci-dessous, nous allons étaler une petite liste listant quelques balises courantes :
IX.1.1. : La taille
La taille dont il est question, présentement, est celle qui sera appliquée sur des
balises de type "block".
Code : HTML
<p>La FBK est une nouvelle fondation qui, jusqu’à présent, renferme tous les
jeunes intellectuels de la Province du Kasaï-Oriental. La FBK est une nouvelle
fondation qui, jusqu’à présent, renferme tous les jeunes intellectuels de la
Province du Kasaï-Oriental. La FBK est une nouvelle fondation qui, jusqu’à
présent, renferme tous les jeunes intellectuels de la Province du Kasaï-Oriental.
La FBK est une nouvelle fondation qui, jusqu’à présent, renferme tous les jeunes
intellectuels de la Province du Kasaï-Oriental. La FBK est une nouvelle fondation
qui, jusqu’à présent, renferme tous les jeunes intellectuels de la Province du
Kasaï-Oriental. </p>
Dans l’exemple ci-dessous, nous allons essayer de modifier la largeur des paragraphes dans le CSS en leur donnant la largeur de 60%.
Code : CSS
P
{
width: 60%;
text-align: justify; /* Texte justifié pour mieux voir la largeur du block */}
UWB – RDC 88
Eléments d’application et de programmation réseaux
Code : CSS
p{
width: 250px;
text-align: justify;
}
Mais cependant, si le texte n'a pas assez de place pour être visible dans son entièreté, il va s’empiéter
sur lui-même. C’est pourquoi, la propriété overflow donne la possibilité, soit de rendre visible, de
couper, de cacher, d’utiliser les barres de défilement ou de restituer le texte de manière automatique.
UWB – RDC 89
Eléments d’application et de programmation réseaux
Dans l’exemple ci-dessous, nous allons essayer de tester les quatre valeurs en
CSS, à tours de rôle sur les paragraphes saisis en XHTML :
p /* Tous les paragraphes auront ces propriétés CSS */
{
width: 250px;
height: 100px;
text-align: justify;
}/* Et chacun des paragraphes aura en plus une valeur d'overflow différente */
.coupe{
overflow: hidden;
}
.barres_defilement{
overflow: scroll;
}
.auto{
overflow: auto;
}
La propriété auto est celle qui sera beaucoup plus utilisée pour résoudre les cas
d’incohérence des cadres avec les corps des textes à l'intérieur des pages web.
Les bordures, dans le langage CSS, sont des objets qui encadrent les textes ou
tout autre objet se trouvant sur la page web.
Les propriétés qui traitent les bordures sont nombreuses à tel point que nous
serons contraints de recourir à une méga-propriété qui va regrouper toutes les
autres, à l’instar de background vue précédemment.
UWB – RDC 90
Eléments d’application et de programmation réseaux
Exemple dans le Code CSS où nous allons essayer à tours de rôle les différentes :
p
{
width: 300px; /* Tous les paragraphes font 300px */
text-align: justify; /* Tous les paragraphes sont justifiés */
}
.rien
{
border: none;
}
.solid
{
border: 2px solid black;
}
.dotted
{
border: 2px dotted green;
}
.dashed
{
border: 2px dashed red;
}
.double
{
border: 4px double maroon;
}
.groove
{
border: 4px groove teal;
}
.ridge
{
border: 4px ridge fuchsia;
}
.inset
{
border: 3px inset black;
}
.outset
{
border: 3px outset black;
}
UWB – RDC 91
Eléments d’application et de programmation réseaux
Une bordure peut être placée sur n’importe quel côté du block ou du paragraphe
(haut, bas, gauche ou droite,..). Dans ce cas, nous utiliserons les 4 propriétés ci-
dessous :
border-top : bordure en haut.
border-bottom : bordure en bas.
border-left : bordure à gauche.
border-right : bordure à droite.
Ces propriétés sont aussi des méga-propriétés, elles fonctionnent comme border
mais ne s'appliquent donc qu'à un seul côté.
Code : CSS
p
{
width: 350px;
}
h2
{
border-bottom: 2px solid black;
}
.haut_bas
{
border-top: 1px dashed red;
border-bottom: 1px dashed red;
}
.points
{
border-top: 3px dotted blue;
border-left: 2px solid green;
border-right: 2px solid green;
border-bottom: 3px dotted blue;
}
.tres_solide
{
border-left: 6px solid black;
border-right: 6px solid gray;
}
NB : Utilisez border qui s'applique à tous les 4 côtés simultanément dans le cas
où l’on cherche le même design.
Les propriétés CSS que nous voyons dans ces chapitres s'appliquent le plus
souvent aux blocks et aussi bien sur quelques balises inline, telle que <img />
(pour les images).
Exemple en Code : HTML
<p>
Vous souhaitez vous rendre vers un le site de Google ? cliquez sur l'image
ci-dessous :<br />
<a href="http://www.google.com"><img src="boni.jpg" alt="Photo de FBK"
title="Clique pour ici pour lancer google !" /></a>
</p>
UWB – RDC 92
Eléments d’application et de programmation réseaux
Code : CSS
a img /* Toutes les images contenues dans un lien */
{
border: none; /* Pas de bordure */
}
NB : On peut bien aussi utiliser border:0px" ou encore "border:0" à la place de border:none
Tous les blocks possèdent des marges. Ce qui est important, c'est de savoir qu'il
existe 2 types de marges :
les marges intérieures ;
les marges extérieures.
Exemple :
Dans l’exemple ci-dessus, il y a un cadre ou une bordure pour bien identifier les
bords. En effet, l'espace entre le texte et la bordure est la marge intérieure (en
vert). Et l'espace entre la bordure et le prochain block est la marge extérieure (en
rouge).
Dans le langage CSS, nous avons des 2 propriétés suivantes, pour modifier la
taille des marges :
padding : indique la taille de la marge intérieure. A exprimer en pixels (px).
margin : indique la taille de la marge extérieure. Là encore, on utilise le
plus souvent des pixels.
Prenons 2 paragraphes par exemple auxquels on peut ajouter une petite bordure :
UWB – RDC 93
Eléments d’application et de programmation réseaux
Code : CSS
p
{
width: 250px;
border: 1px solid black;
text-align: justify;
}
Et aussi, les marges dites par défaut ne sont pas identiques pour toutes les
balises block. En appliquant le CSS à des balises <div> qui contiennent du texte
par exemple, on constatera qu’il n'y a ni marge intérieure et ni marge extérieure.
Dans cet exemple CSS, nous allons ajouter une marge intérieure de 12px aux
paragraphes :
1p
2{
3 width: 350px;
4 border: 1px solid black;
5 text-align: justify;
6 padding: 12px; /* Marge intérieure de 12px */
7}
Les propriétés margin et padding s'appliquent aux 4 côtés du block pour indiquer
une marge en haut, en bas, à gauche et à droite, en les associant top, bottom, letf
et right :
UWB – RDC 94
Eléments d’application et de programmation réseaux
h1
{
margin-left: 30px;
}
Le centrage de block est l’une des opérations régulières qui doit s’appliquer quand
on ne connaît pas la résolution de l’utilisateur. Et cette option ne fonctionne que
si une largeur précise (width) a été indiquée au block.
Revenons à nos petits paragraphes auxquels on a déjà donné une largeur précise ;
Et si on veut les centrer sur l’écran, on mettra la valeur "auto" à la propriété
margin, comme ceci :
Code : CSS
p
{
width: 350px; /* On a indiqué une largeur (obligatoire) */
border: 1px solid black;
text-align: justify;
padding: 12px;
margin: auto; /* On peut donc demander à ce que le block soit centré avec
"auto" */
margin-bottom: 20px;
}
A titre rappel, dans les sections précédentes de ce chapitre "Mise en boîte", il a été
question de modifier l'apparence et la taille des blocks avec des propriétés
appropriées pour :
modifier la taille des blocks ;
modifier la bordure des blocks ;
modifier la marge des blocks.
Et dans les sections qui suivent, nous allons voir comment les placer sur une
page web en les associant avec d’autres objets, tels que les images, les menus, etc.
UWB – RDC 95
Eléments d’application et de programmation réseaux
La transformation des balises de type inline en balises de type des blocks s’obtient
à l’aide de la propriété display qui prend beaucoup de valeurs parmi lesquelles
nous en verrons deux : block et inline.
Cette propriété CSS est très pratique qu’il faudrait l’utiliser avec beaucoup plus de
précautions ; Elle nous restitue les possibilités suivantes :
block : la balise concernée deviendra de type block.
inline : la balise concernée deviendra de type inline.
Dans cet exemple, on veut transformer toutes les images qui, au départ, sont
généralement du type inline en type block, on fera :
Code : CSS
img
{
display: block;
}
NB : Les images prenant le type block, iront automatiquement à la ligne.
L’attribut display peut s’utiliser en faisant recours à l’attribut class dans le fichier
XHTML sur une balise afin de lui donner une présentation différente.
Par exemple :
Code : HTML
<img src="image.png" alt="Cette image est normale (type inline)" />
<img src="image.png" class="imageblock" alt="Cette image est modifiée (type
block)" />
En revanche, pour transformer une balise de type block en balise de type inline, la
procédure reste toujours la même : display:inline;
Les flottants sont des techniques qui permettent de rendre flottant une image ou
un objet qui sera entouré d’un texte. Et c’est la propriété float qui le rend possible
en prenant 2 valeurs :left : l'élément flottera à gauche et right : l'élément flottera... à droite.
UWB – RDC 96
Eléments d’application et de programmation réseaux
NB : La propriété float peut s’utiliser sur des balises block que sur des balises inline.
a) Flottement d’image
Dans ce point, nous allons voir comment faire flotter une image qui, au départ, est
du type "inline" dans le code XHTML. Le principe à respecter serait de déclarer,
dans un premier temps l’image <img/> qui sera entouré du texte ensuite, du texte
dans un paragraphe comme repris dans cet exemple :
<p>Ceci est un texte normal de paragraphe, écrit à la suite de l'image mais qui
l'"entourera" car l'image est flottante.<br />
Uyrirur rjhfjhdfsjkhf fdsjhfdsjkhfds fdskhfdjkhfds dfskjhdfskjhfd dfskjhfdjhgfdof
fglkjghjkhfgh dvhvvbvdkldf qkjfgkkjhgfdjkhgf ,nhdgjkhg fgjkhg Uyrirur
rjhfjhdfsjkhf fdsjhfdsjkhfds fdskhfdjkhfds dfskjhdfskjhfd dfskjhfdjhgfdof
fglkjghjkhfgh dvhvvbvdkldf qkjfgkkjhgfdjkhgf ,nhdgjkhg fgjkhg Uyrirur
rjhfjhdfsjkhf fdsjhfdsjkhfds fdskhfdjkhfds dfskjhdfskjhfd dfskjhfdjhgfdof
fglkjghjkhfgh dvhvvbvdkldf qkjfgkkjhgfdjkhgf ,nhdgjkhg fgjkhg Uyrirur
rjhfjhdfsjkhf fdsjhfdsjkhfds fdskhfdjkhfds dfskjhdfskjhfd dfskjhfdjhgfdof
fglkjghjkhfgh dvhvvbvdkldf qkjfgkkjhgfdjkhgf ,nhdgjkhg fgjkhg Uyrirur
rjhfjhdfsjkhf fdsjhfdsjkhfds fdskhfdjkhfds dfskjhdfskjhfd dfskjhfdjhgfdof
fglkjghjkhfgh dvhvvbvdkldf qkjfgkkjhgfdjkhgf ,nhdgjkhg fgjkhg </p>
Code : CSS
.imageflottante
{
float: left;
}
UWB – RDC 97
Eléments d’application et de programmation réseaux
b) La lettrine
Une lettrine est la première lettre d'un paragraphe mise en évidence dans un
caractère spécial (gras de grande taille). A l’instar des quotidiens économiques,
politiques et sociaux qui utilisent ce genre de caractère pour donner beaucoup
plus d’importance à l’article et attirer l’attention des lecteurs.
Nous allons expliquer cette technique par un exemple en utilisant d’abord le code XHTML, qui reste
inchangé.
<p>jfufjfkjhfd fdkjhfdjkhfd fdkjhfdjhfd cbcvbnvcsy dfljefg efgkljfgpfbfd
jhgfdhgsdf dfdjhgdf shfgfd fshjgf fjhgfnb dchjkhf fdsjkhjkhfds. jfufjfkjhfd
fdkjhfdjkhfd fdkjhfdjhfd cbcvbnvcsy dfljefg efgkljfgpfbfd jhgfdhgsdf dfdjhgdf
shfgfd fshjgf fjhgfnb dchjkhf fdsjkhjkhfds. jfufjfkjhfd fdkjhfdjkhfd
fdkjhfdjhfd cbcvbnvcsy dfljefg efgkljfgpfbfd jhgfdhgsdf dfdjhgdf shfgfd fshjgf
fjhgfnb dchjkhf fdsjkhjkhfds. jfufjfkjhfd fdkjhfdjkhfd fdkjhfdjhfd cbcvbnvcsy
dfljefg efgkljfgpfbfd jhgfdhgsdf dfdjhgdf shfgfd fshjgf fjhgfnb dchjkhf
fdsjkhjkhfds. jfufjfkjhfd fdkjhfdjkhfd fdkjhfdjhfd cbcvbnvcsy dfljefg
efgkljfgpfbfd jhgfdhgsdf dfdjhgdf shfgfd fshjgf fjhgfnb dchjkhf
fdsjkhjkhfds.</p>
Et dans cette suite des propriétés, seule font-size, conviendrait pour modifier la
taille de la première lettre qui varie en hauteur de lignes. Une lettrine peut
prendre 3 hauteurs de lignes, cela donnerait "3em". On peut aussi utiliser la
taille en pourcentage, comme "300%" ; Par contre, les valeurs en pixels seraient
inopportunes, d’autant plus qu'on ne connaît pas la taille exacte d'une ligne qui
peut varier à tout moment, par exemple "40px".
UWB – RDC 98
Eléments d’application et de programmation réseaux
Cela revient à dire que tout flottant est toujours entouré d’un texte et cependant, on aura aussi besoin
d’une propriété pouvant nous aider à mettre fin la suite ou la forme que prendre tout un texte se
plaçant au coté de la lettrine ou de l’image. Cela serait possible à l’aide de la propriété clear qui
permettra de poursuivre en-dessous de la lettrine.
Dans l’exemple ci-dessous, nous allons utiliser la propriété clear:both, qui tourne
après un flottant à gauche et après un flottant à droite.
Code : CSS
.imageflottante
{
float: left;
}
.dessous
{
clear: both;
}
Le positionnement des blocks s’applique sur des balises de type inline comme on
l’a vu avec la balise <img />. Toutefois, il sera plus utilisé sur des balises block
que sur des balises inline.
UWB – RDC 99
Eléments d’application et de programmation réseaux
Il faut d'abord faire son choix entre les 3 modes de positionnement disponibles en
utilisant la propriété CSS position à laquelle on donne une de ces valeurs :
absolute : positionnement absolu ;
fixed : positionnement fixe ;
relative : positionnement relatif.
a) Le positionnement absolu
La propriété position est appliquée avec au moins l’une des 4 propriétés ci-dessus
(top, left, right ou bottom).
Cet exemple signifie que le block doit être positionné tout en bas à droite (0 pixels
par rapport à la droite de la page, 0px par rapport au bas de la page).
Pour bien illustrer cet exemple, nous prendrons la balise universelle <div> (de type
block) où nous allons rédiger un paragraphe et mettre dans le block <div> deux ou
trois mots :
Code : HTML
<p>
Ceci est un paragraphe normal.<br />
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Integer vel libero.
Cras dolor. Quisque quis odio eget justo pulvinar aliquet. Morbi luctus mi. Fusce
leo. Integer eleifend condimentum felis. Phasellus vitae nibh. Mauris
pellentesque porta magna. Quisque at turpis. Praesent semper odio eget risus.
Praesent bibendum imperdiet massa. Quisque ac arcu ac augue dapibus vestibulum.
Pellentesque gravida. Mauris turpis. Aenean molestie. Praesent at quam et ligula
pellentesque luctus.
</p>
<div>Block positionné</div>
Ici, on a un paragraphe suivi d'un block div qui contient un peu de texte.
Ensuite, on va ajouter un peu de CSS pour positionner le block div :
Code : CSS
div
{
background-color: yellow;
border: 1px solid green;
position: absolute;
left: 35px;
top: 50px;
}
NB : Le fond est en jaune avec une bordure pour que le block soit bien repéré.
Comme on l’a remarqué le block se place au-dessus du paragraphe avec le risque
de masquer le texte repris en dessous. Cela constitue l’un des grands avantages et
défauts du positionnement absolu.
Un autre exemple du Code : CSS
div
{
background-color: yellow;
border: 1px solid green;
position: absolute;
right: 50%;
bottom: 20px;
}
Dans le cas où l’on veut positionner un block B en absolu dans le block A en
absolu reconnu initial, ce positionnement ne se fera plus par rapport au coin en
haut à gauche de la fenêtre mais, au contraire, par rapport au coin en haut à
gauche du block A.
b) Le positionnement fixe
Le position:fixed; est couramment utilisé dans les menus qui sont censés rester
toujours visible :
Code : CSS
div
{
background-color: yellow;
border: 1px solid green;
width: 150px;
height: 250px;
position: fixed;
right: 40px;
top: 60px;
}
p
{
width: 300px;
}
c) Le positionnement relatif
Le positionnement relatif, moins utilisé d’ailleurs, est celui qui sert généralement à
faire des "ajustements" des blocks.
Prenons par exemple un texte important, situé entre 2 balises <strong> qui doit
être mis sur un fond rouge pour qu'on puisse mieux le repérer :
Code : CSS
strong
{
background-color: red; /* Fond rouge */
color: yellow; /* Texte de couleur jaune */
}
Dans l’exemple qui suit, nous allons décaler de 55 pixels vers la droite et de 10
pixels vers le bas. :
Code : CSS
strong
{
background-color: red;
color: yellow;
position: relative;
left: 55px;
top: 10px;
}
Le texte s'est décalé par rapport à sa position initiale, comme ceci :
Et aussi, ce même chapitre nous servira de Travail Pratique dans lequel nous
allons créer un design complet du site web. Cette gymnastique exige certaines
qualités du Webmaster, tels que de la créativité, de l’imagination, de la préférence
dans les couleurs, du talent et enfin de l'expérience.
A tire de rappel, une page web c'est une combinaison de 2 fichiers distincts, à
savoir :
fichier XHTML (.html ou .htm) : Est le fichier dans lequel se trouve le contenu de
la page (le texte). Il est constitué de balises comme <strong> qui servent à indiquer
si tel texte est important, si c'est un paragraphe ou une citation etc...
fichier CSS (.css) : Est le fichier qui permet de créer la présentation de la page
web. En théorie, le CSS est facultatif d’autant plus qu’il améliore la présentation
des pages web.
Ce qui revient à dire que dans ce chapitre, nous allons prendre la démarche
suivante :
1. Saisir le contenu de la page (XHTML)
2. Et ensuite on modifie la présentation de la page (CSS)
- Design fixe
Un design est dit fixe, quand sa largeur detient une taille fixée (par exemple de
800 pixels). Il y a en général une marge à gauche et à droite, et le contenu du site
se trouve au milieu.
- Design extensible
De ces deux designs, le design extensible est plus préférable quand il n’autorise
pas d’avoir une partie de l’écran inutilisée. Mais cependant, les designs fixes sont
très faciles à concevoir, raison pour laquelle ils sont très rependus.
La structure d’une page web se construit avec la balise de blocks <div>, appelée
aussi balise universelle de type "block" qui va répartir les espaces en au moins 4
blocks, présentés comme ceci :
Code : HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Bienvenue sur mon site !</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
</body>
</html>
Ce qui revient à dire que notre développement se fera seulement dans les balises
<body></body>.
En XHTML, nous allons commencer par va créer les 4 blocks à l'aide de 4 <div>
différents :
<div id="menu">
<!-- Ici on mettra le menu -->
</div>
<div id="corps">
<!-- Ici on mettra le contenu principal de la page (tout le texte quoi) -->
</div>
<div id="pied_de_page">
<!-- Enfin, on mettra en bas de la page le nom de l'auteur, un copyright... --
>
</div>
Dans cette partie, nous allons utiliser des attributs id à la place des class.
Comme nous l’avons déjà vu dans les chapitres précédents, l’attribut id et
l’attribut class ont pratiquement le même principe de fonctionnement, sauf qu'on
ne peut utiliser un id qu'une seule fois, contrairement aux class qu'on peut
utiliser plusieurs reprises.
L'ordre de saisie des <id> dans le code XHTML correspond à l’ordre d’affichage sur
les pages web. Ce qui veut dire qu’en premier lieu l'en-tête est suivi du pied de
page.
Pour ce qui est du menu et du corps qui se trouvent au même niveau, l'ordre
entre eux n'importe pas. La position dans le CSS peut être modifiée suivant le
contexte (menu à gauche, ou menu à droite).
a) L'en-tête
En général, la partie en-tête reprend juste une bannière (une image), voire un
simple titre <h1> (titre du site).
Il existe deux possibilités pour placer une image dans le <div> de l'en-tête :
Par la création de la balise <img /> et insérer l’image. Méthode d’ailleurs
facile pour insérer les images.
Par la création de la balise <div id="en_tete"> et mettre la bannière sous
forme d'image de fond dans le CSS.
Code : HTML
<div id="en_tete">
</div>
NB : Entre le <div> et le </div>, on ne saisit rien.
b) Le Menu et sous-menus
Partant du block Menu, plusieurs sous-blocks peuvent être crées pour séparer les
différents éléments du menu portant les mêmes affinités.
Exemple dans le schéma ci-dessous : Nous dérivons deux sous-menus dont
chacun ayant des élements qui lui sont particuliers.
Le block Menu renferme 2 sous-blocks qui sont des sous-menus imbriqués dans
dans le block principal.
<div class="element_menu">
Texte du second menu
</div>
</div>
Les balises <div>, dites balises blocks universelles, sont appellées aussi "balises
génériques". Des commentaires accompagnent les codes source pour bien repérer
à quoi correspond chaque <div>. Le premier englobe tous les autres sous-
menus (sous-menus une class "element_menu")
Nous allons ajouter, par un exemple, le texte à l'intérieur du menu pour faire
comme dans le dernier schéma et placer aussi un titre de menu dans chaque
"element_menu". Et c’est la balise du genre <h1> à <h6> par laquelle nous
commencerons pour terminer avec une liste à puces (<ul>) afin d’avoir un menu
bien organisé.
<div class="element_menu">
<h3>Titre menu</h3>
<ul>
<li><a href="page1.html">Lien</a></li>
<li><a href="page2.html">Lien</a></li>
<li><a href="page3.html">Lien</a></li>
</ul>
</div>
<div class="element_menu">
<h3>Titre menu</h3>
<ul>
<li><a href="page4.html">Lien</a></li>
<li><a href="page5.html">Lien</a></li>
<li><a href="page6.html">Lien</a></li>
</ul>
</div>
</div>
c) Le corps
Le corps de la page Web est la partie principale de la page qui renferme tout le
contenu à exposer sur l’espace public.
Pour bien structurer la page, on va placer d’abord un titre <h1> qui sera le titre
principal de la page. En général, le titre de la balise <title> de <head> est le même
que celui de la balise <h1>. Ensuite, viennent les paragraphes <p> éventuellement
séparés par des sous-titres <h2>.
Code : HTML
<div id="corps">
<h1>Super site des étudiants de l’UWB</h1>
<p>
Ururbr rjhf dfbfdjhgfjhfd fjkhfdkjhfd fdjhgfdhjgfd fhjgfd f hjgfgf fkhf
fhgfh fhf Ururbr rjhf dfbfdjhgfjhfd fjkhfdkjhfd fdjhgfdhjgfd fhjgfd f
hjgfgf fkhf fhgfh fhf Ururbr rjhf dfbfdjhgfjhfd fjkhfdkjhfd fdjhgfdhjgfd
fhjgfd f hjgfgf fkhf fhgfh fhf Ururbr rjhf dfbfdjhgfjhfd fjkhfdkjhfd
fdjhgfdhjgfd fhjgfd f hjgfgf fkhf fhgfh fhf
</p>
d) Le pied de page
Comme nous l’avons dit ci-haut, le pied de page est une partie de la page Web qui
sert à écrire le nom de l'auteur en général, un copyright, etc…
Après avoir décortiqué tous les détails sur chacun des 4 gros blocks du design,
nous allons maintenant assembler tous les codes sur lesquels on a travaillé, en
reconduisant toujours en haut les balises DOCTYPE, <html>, <head>, <body>
etc...
Code : HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Super site des étudiants de l’UWB</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<!-- L'en-tête -->
<div id="en_tete">
</div>
Ce dernier est la première page XHTML développée avec tous les outils vus jusqu’à lors.
Cette partie du CSS est très importante dans la mesure où chaque ligne de code
qui s’applqiue, modifie directement le design.
a) Centrage du design
Sachant bien que toutes les opérations se développent sur la balise <body> du
code XHTML, cette dernière va renfermer tout le contenu de la page Web et a une
dimension en largeur et en hauteur, peut aussi avoir une des marges automatique
et être déclarée fixe, etc..
Exemple, nous allons donner une taille à la page, de 760 pixels, sachant que la
taille totale est de 800px et que les visiteurs qui sont en résolution 800*600
n'auront pas à se déplacer vers la droite pour voir le reste de la page.
NB : Le margin:auto ne marche pas sous IE 5 : leurs designs placés est placé à
gauche.
b) L'en-tête
Ainsi à titre d’exemple, la démarche suivante peut être suivie pour afficher la
bannière avec uniquement du CSS :
1. La première chose à faire, pour que la bannière soit visible, il faut agrandir la taille du block
"en_tete" afin qu'il puisse contenir la bannière entière.
Comme la bannière fait 758x100pixels, on va définir une largeur et une hauteur de ces
dimensions :
width:758px;
height:100px;
2. Ensuite, on va indiquer quelle image de fond on veut mettre à notre grand block qui est pour
l'instant vide :
background-image:url("images/banniere.png");
3. En principe le fond ne peut apparaître qu'une seule fois, néanmoins on peut toujours vérifier
si cette image ne sera pas répétée en mosaïque avec background-repeat :
background-repeat:no-repeat;
4. Enfin, pour éviter que l'en-tête ne soit trop collé avec ce qui se trouvera dessous (le menu et
le corps), on va définir une petite marge en-dessous (margin-bottom) de quelques pixels :
margin-bottom:10px;
Rappel :
Pour une class, on met un "." (point) devant le nom dans le CSS.
Pour un id, on met un "#" (dièse) devant le nom dans le CSS. Et en XHTML, "en_tete" est un id !
Une taille par exemple de 120 pixels au menu est raisonable pour qu'il ne soit pas
trop grand sur la page Web.
NB : Il y a toujours le risque de voir le texte du corps passer sous le menu flottant ; c’est pourquoi, il
faudra prévoir une marge à gauche du corps (margin-left).
Le principal qu'il faut bien comprendre ici, est qu’opn fera recours aux
"imbrications de balises".
Exemple : .element_menu ul
C’est-à-dire que le CSS va concerner les balises <ul> se trouvant à l'intérieur d'un
element_menu.
Pour améliorer davantage le design, l'effet du :hover sur les liens du menu sera très facile à réaliser.
d) Le corps
Le corps est une partie capitale de la page Web qui renferme le contenu à
soumettre à la lecture des visiteurs. Et pour cela, il serait important de définir les
bonnes marges de manière à ce que le texte du corps ne passe pas "sous" le menu
quand il est trop long. Cette conséquence ne s’aperçoit qand on utilise le code
float:left sur le menu.
- Il suffit de modifier la marge "à gauche" du corps. C'est une marge extérieure,
donc un margin-left.
- Donner une valeur suffisamment grande pour "pousser" le corps sur la droite,
afin qu'il ne passe plus sous le menu (donc une valeur supérieure à la largeur
du menu). Ici par exemple, on va mettre une valeur de 140px.
- Rajouter un margin-bottom afin que le pied de page en-dessous ne soit pas trop
"collé" au corps. Exemple : margin-bottom:20px;
- mettre un padding (marge intérieure) sur tous les côtés afin que le texte ne colle
pas trop avec les bords du corps ; Exemple : padding:5px;
- mettre une couleur de fond, une petite image de fond qui se répète
horizontalement, une bordure...
Code : CSS
body
{
width: 760px;
margin: auto;
margin-top: 20px;
margin-bottom: 20px;
background-image: url("images/fond.png");
}
/* L'en-tête */
#en_tete
{
width: 760px;
height: 100px;
background-image: url("images/banniere.png");
background-repeat: no-repeat;
margin-bottom: 10px;
}
/* Le menu */
#menu
{
float: left;
width: 120px;
}
.element_menu
{
background-color: #626262;
background-image: url("images/motif.png");
background-repeat: repeat-x;
border: 2px solid black;
margin-bottom: 20px;
}
/* Quelques effets sur les menus */
.element_menu h3
{
color: #B3B3B3;
font-family: Arial, "Arial Black", "Times New Roman", Times, serif;
text-align: center;
}
.element_menu ul
{
list-style-image: url("images/puce.png");
padding: 0px;
padding-left: 20px;
margin: 0px;
margin-bottom: 5px;
}
.element_menu a
{
color: #B3B3B3;
}
.element_menu a:hover
{
background-color: #B3B3B3;
color: black;
}
/* Le corps de la page */
#corps
{
margin-left: 140px;
margin-bottom: 20px;
padding: 5px;
color: #B3B3B3;
background-color: #626262;
background-image: url("images/motif.png");
background-repeat: repeat-x;
padding-left: 30px;
color: #B3B3B3;
text-align: left;
}
c) Le pied de page
Le modifications à appliquer dans cette partie sont similaires au reste. Telles que :
- mettre une couleur de fond, une bordure, vérifier la position des marges
- Mettre un "clear: both" pour supprimer l'effet flottant du menu. Cela permet de s'assurer que
le pied de page est bien sous le menu.
}
/* Le corps de la page */
#corps
{
margin-left: 140px;
margin-bottom: 20px;
padding: 5px;
color: #B3B3B3;
background-color: #626262;
background-image: url("images/motif.png");
background-repeat: repeat-x;
border: 2px solid black;
}
#corps h1
{
color: #B3B3B3;
text-align: center;
font-family: Arial, "Arial Black", "Times New Roman", Times, serif;
}
#corps h2
{
height: 30px;
background-image: url("images/titre.png");
background-repeat: no-repeat;
padding-left: 30px;
color: #B3B3B3;
text-align: left;
}
/* Le pied de page (qui se trouve tout en bas, en général pour les copyrights) */
#pied_de_page
{
padding: 5px;
clear: both;
text-align: center;
color: #B3B3B3;
background-color: #626262;
background-image: url("images/motif.png");
background-repeat: repeat-x;
border: 2px solid black;
}
Pour faire appliquer les instructions du Code CSS par le fichier XHTML, il faut
rajouter la ligne suivante entre <head> et </head> :
Bref, modifier le CSS c’est modifier le design. Ce qui peut être à une personne qui
change de vêtement : on modifie son look (son apparence), mais la personne à
l'intérieur est toujours la même
Ensuite, dans la balise <table> </table>, nous allons placer 2 nouvelles balises
pour indiquer les limites de la ligne et les contenus des cellules :
<tr> </tr> : indique le début et la fin d'une ligne du tableau.
<td> </td> : indique le début et la fin du contenu d'une cellule.
Cellules <td>
NB : La construction du tableau se fait ligne par ligne avec la balise (<tr>),
c’est-à-dire autant de (<tr>) autant de lignes.
Exemple en Code HTML, construire un tableau à cinq lignes, avec quatre cellules par lignes (donc 4 colonnes) :
<table>
<tr>
<td>Deloux Ilunga</td>
<td>L2 Info</td>
<td>35 ans</td>
<td>Kinshasa</td>
</tr>
<tr>
<td>One NSULU</td>
<td>L2 Info</td>
<td>20 ans</td>
<td>Lubumbashi</td>
</tr>
<tr>
<td>Jean KALENDA</td>
<td>L2 Info</td>
<td>25 ans</td>
<td>Likasi</td>
</tr>
<tr>
<td>Remy KAZADI</td>
<td>L2 Info</td>
<td>35 ans</td>
<td>Kinshasa</td>
</tr>
<tr>
<td>Marie MWISANGE</td>
<td>L2 Economie</td>
<td>22 ans</td>
<td>Kinshasa</td>
</tr>
</table>
Ensuite, avec le CSS, nous allons essayer d’ajouter des bordures, avec les codes
CSS que nous avons déjà vus.
Code : CSS
td /* Toutes les cellules des tableaux... */
{
border: 1px solid black; /* ... auront une bordure de 1px */
}
Le tableau que restitue le CSS, jusque là, n’est pas un tableau parfait qui
nécessite une seule bordure entre 2 cellules.
Nous avons une propriété CSS spécifique aux tableaux : border-collapse, qui
signifie "coller les bordures entre elles". Et cette propriété peut prendre 2 valeurs :
collapse : les bordures seront collées entre elles, c'est l'effet qu'on
recherche.
separate : les bordures seront dissociées (valeur par défaut)
Code : CSS
Table
{
border-collapse: collapse; /* Les bordures du tableau seront collées */
}
td
{
border: 1px solid black;
}
NB : Dans les sections prochaines, plus loin, nous allons voir d'autres options
CSS à titre documentaire pour améliorer davantage le design des tableaux.
a) La ligne d'en-tête
La ligne d'en-tête d’un tableau est la partie supérieure qui reprend les noms des
rubriques expliquant la nature des contenus dans les cellules.
Dans notre exemple, les en-têtes sont "Nom", "Promotion", "Age" et "Ville" ? Et celle
ligne d'en-tête se crée avec un <tr> comme l’on vu jusqu'ici, mais les contenus des
cellules sont définis avec <th> et non pas des <td>.
NB : Après la définition de la balise th dans le CSS, le navigateur met le texte des
cellules d'en-tête en gras. Cette option peut toujours être modifiée et adaptée avec
les différentes propriétés dans le CSS.
b) Titre du tableau
<tr>
<th>Nom</th>
<th>Promotion</th>
<th>Age</th>
<th>Ville</th> NB : La balise <caption> se place
</tr> toujours après la balise <table>.
<tr>
<td>Deloux Ilunga</td>
<td>L2 Info</td>
<td>35 ans</td>
<td>Kinshasa</td>
</tr>
<tr>
<td>One NSULU</td>
<td>L2 Info</td>
<td>20 ans</td>
<td>Lubumbashi</td>
</tr>
…
</table>
Un tableau complexe n’est autre qu’un tableau simple bien structuré qui se
construit avec les 2 techniques ci-après :
Pour les gros tableaux, la procédure est de les diviser en 3 parties :
o En-tête ;
o Corps du tableau ;
o Pied de tableau.
Pour certains tableaux, la procédure est de fusionner des cellules entre elles.
Dans le cas où le tableau est assez gros, l’intérêt est de le découper en plusieurs
parties. Pour cela, il existe des balises XHTML qui permettent de définir les 3
« zones » du tableau :
L’en-tête (en haut) : il se définit avec les balises <thead></thead> ;
Le corps (au centre) : il se définit avec les balises <tbody></tbody> ;
Le pied du tableau (en bas) : il se définit avec les balises <tfoot></tfoot>.
Dans le pied de tableau d’un long tableau, généralement, la partie des cellules
d’en-tête peut être recopiée en autant de fois pour mémoire, afin de faire
correspondre la suite du corps aux titres des colonnes.
NB : Dans ce découpage, la disposition des balises doit suivre l'ordre suivant :
1. <thead> ;
2. <tfoot> ;
3. <tbody>.
NB : L’utilisation de ces 3 balises (thead, tbody, tfoot) sur un tableau n’est pas
une contrainte ; néanmoins, on pourra toujours s’en servir dans le cas où le
tableau devient complexe et qu’il nécessite une organisation assez systématique.
La fusion est une opération qui s’applique sur certains tableaux complexes, où les
données peuvent partager la même nature dans les colonnes tout comme dans les
lignes. Ce qui revient à dire que deux ou plusieurs colonnes peuvent être
fusionnées en une seule cellule et deux ou plusieurs lignes peuvent être
fusionnées aussi en une seule cellule.
Et pour effectuer une fusion, on fait recours à la balise <td> qui utilise deux
attributs, qui sont le type de fusion :
la fusion de colonnes : Est celle qui s'effectue horizontalement avec l'attribut colspan.
la fusion de lignes : Est celle qui s'effectue verticalement avec l’attribut rowspan.
Les attributs colspan et rowspan sont censés recevoir des valeurs qui déterminent
le nombre de cellules à fusionner entre elles.
C'est-à-dire : "Cette cellule est la fusion de 2 cellules"
Exemple : <td colspan="2">
Il est possible de fusionner plus de cellules à la fois (3, 4, 5...).
- la fusion de colonnes
- la fusion de lignes
Dans cet environnement, nous ferons recours aux propriétés CSS pour changer
l’apparence du tableau, ci-dessous dans les différents cas par quelques exemples :
Pour modifier la bordure des cellules, il suffit d'utiliser border ;
Pour modifier la couleur de fond d'une cellule, on utilisera background-color ;
Pour modifier l'image de fond d'une cellule, on utilisera background-image ;
Pour modifier la taille (font-size) et la police (font-family) du texte des cellules d'en-
tête, en appliquant les propriétés adaptées aux balises <th> ;
UWB – RDC 126
Eléments d’application et de programmation réseaux
Pour agrandir le tableau tout entier : (width), le centrer (margin:auto car le tableau
est un block) ;
Pour centrer le texte à l'intérieur des cellules (text-align:center) ;
Pour modifier les marges intérieures des cellules : (padding) afin d’aérer le tableau.
NB : Les propriétés évoquées dans les exemples ci-dessus, sont censées être
appliquées aux balises appropriées selon le contexte. Par exemple, si on place une
couleur de fond noire à la balise <table>, tout le tableau sera noir. Tandis que si
on place la couleur de fond sur les balises <th>, seules les cellules d'en-tête.
Code : CSS
caption /* Titre du tableau */
{
margin: auto; /* Centre le titre du tableau */
Comme on connaît déjà border-collapse, je vais me contenter de vous montrer un CSS de tableau
qui utilise le vertical-align et le caption-side.
J'utilise les mêmes fichiers XHTML et CSS que tout à l'heure, mais je rajoute dans le CSS les deux
propriétés qu'on vient d'apprendre :
Dans ce chapitre, nous allons voir comment expédier un site sur le Web par la
réservation d’un domaine, l’occupation d’un espace auprès de l’hébergeur et le
transfert des fichiers par le protocole client FTP.
uwb_rdc.cd
1 2
La partie 1, constitue le nom de domaine proprement dit qui est donné librement
par le Webmaster et qui peut contenir des lettres et des chiffres, mais pas de
symboles particuliers (comme le ç français, le é, le è, les espaces, etc). Et ce nom
est censé être unique sur l’environnement Web.
La partie 2, l'extension (aussi appelée tld). Il existe des extensions reprenant et
typifiant les noms des pays.
Exemple : .cd pour la RDC, .fr pour la France, .be pour la Belgique, .ca pour le
Canada).
En général, un site web se fait toujours précéder par "www", comme par exemple
"www.uwb_rdc.cd". Le «www » ne fait pas partie du nom de domaine; Et d’après
Wikipedia, Le World Wide Web (WWW), littéralement la « toile d’araignée
mondiale », communément appelé le Web, parfois la Toile, est un système
hypertexte public fonctionnant sur Internet qui permet de consulter, avec un
navigateur, des pages accessibles sur des sites. L’image de la toile d'araignée vient
des hyperliens qui lient les pages web entre elles.
Un nom de domaine est une entité qu’on peut réserver à un WebMaster contre
paiement d’une caution annuelle qui varie généralement entre 7 et 12 € pour un
an.
Le prix d’un domaine peut aussi varier en fonction de l'extension tandis que les
domaines qui portent l'extension .info sont généralement à plus bas prix.
Et pour avoir une réservation d’un nom de domaine, nous avons 2 solutions
possibles :
Passer par un registrar spécialisé, qui est un organisme qui sert d'intermédiaire
entre l'ICANN (l'organisation qui gère les noms de domaine au niveau international,
tel les .com) et le WebMaster.
XII.2. L’hébergeur
Dans l’environnement Web, tous les sites web sont stockés sur des ordinateurs
particuliers appelés "Serveurs". Et ces ordinateurs sont généralement de grande
capacité et de grandes vitesses, qui restent allumés en permanence.
Et ces serveurs contiennent des pages des sites web et les délivrent aux
internautes qui les demandent par des requêtes appropriées cela, de manière
permanente.
NB : Le serveur ne possède pas d'écran car, la plupart du temps, il tourne tout
seul sans avoir besoin qu'on fasse quoi que ce soit dessus. Comme on le voit, les
serveurs sont très plats : c'est un format spécial de serveur (appelé "1U"). Cela
permet de les empiler dans des baies (une sorte d'armoire climatisée pour
serveurs). Ci-dessous, une baie type :
L'hébergeur est une entreprise qui se charge de gérer des baies de serveurs. Elle
s'assure du bon fonctionnement des serveurs 24h/24 et 7j/7. En effet, si l'un
d'eux tombe en panne, tous les sites présents sur la machine deviennent
inaccessibles. Ces baies se situent dans des lieux particuliers appelés
datacenters. Les datacenters sont donc des "entrepôts à serveurs" et leur accès
est hautement sécurisé.
En théorie, un site Web peut aussi être hébergé sur un ordinateur propre en
réunissant les critères ci-après :
- Avoir comme système d’exploitation Linux ;
- Avoir un ordinateur assez puissant qui doit fonctionner jour et nuit ;
- Avoir une connexion à très haut débit (en upload, la vitesse d'envoi des fichiers
compte énormément) ;
- Au besoin, avoir un câblage en fibre optique (pour une vitesse de plusieurs Gbps).
Bref, gérer un serveur soi-même est activité très complexe, et la plupart du temps
les particuliers et les entreprises font appel à des hébergeurs professionnels.
Les hébergeurs, contrairement aux registrars, sont très nombreux sur le marché
de l’Internet. Cependant, il y a ci-dessous, trois types d’hébergeurs :
Hébergement mutualisé : C’est un hébergement où le site est placé sur un
serveur gérant plusieurs sites à la fois (Exemple une centaine, ou même
plus). Cette offre est la moins chère.
Hébergement dédié virtuel : C’est un hébergement où le serveur ne gère
que très peu de sites (généralement moins d'une dizaine). I
Hébergement dédié : C’est un hébergement où le serveur gère uniquement
un seul site. Mais, c’est un environnement qui coûte quand il s’agit
d’administrer le serveur à distance.
- PlanetHoster : www4.smartadserver.com/call/cliccommand/4446357
L’ébergement est une opération pour laquelle les hébergeurs proposent les offres
de différents types selon les trois catégories de plan :
Plan essentiel : 10 Go d'espace disque et 250 Go de trafic.
UWB – RDC 132
Eléments d’application et de programmation réseaux
Les différentes catégories de plan ci-dessus, sont en fait très similaires mais elles
diffèrent seulement au niveau de l'espace de stockage et du trafic.
Et le trafic dont il est question ici, est une quantité de données envoyées par mois
aux visiteurs du site. A titre d’exemple, une image de 1 Mo sur le site et qui est
chargée 500 fois dans le mois par les visiteurs, amènera le WebMaster de créer un
trafic de 500 Mo.
En pratique, les navigateurs utilisés par les visiteurs mettent en cache les images,
ce qui leur évite d'avoir à recharger plusieurs fois une même image. Cela diminue
d'autant plus le trafic nécessaire.
Cela revient à dire qu’un site sollicité par beaucoup de visiteurs (donc beaucoup
de trafics), nécessite un choix d’un plan approprié pour assurer un trafic intense.
commande.
- Ensuite, l’hébergeur envoie plus tard un e-mail indiquant toutes les
informations nécessaires pour mettre en place le site.
- Enfin, lorsque les identifiants parviennent au WebMaster, on passe à
l'étape suivante : envoyer votre site web sur le serveur de votre
hébergeur !
Le FTP qui signifie « File Transfer Protocol » est le moyen utilisé pour envoyer les
fichiers.
La première étape dans cette section qui concerne l’installation du client FTP,
serait de se "connecter" au serveur de l’hébergeur.
Après être en possession de ces informations, le WebMaster est censé les confier au
FileZilla pour se connecter au serveur.
- Hôte : est l’espace où l’on doit indiquer l'adresse ip, du genre ftp.attitude-nature.com).
- Pour pouvoir entrer le login / mot de passe, on doit cocher Type d'authentification : Normal
- Le login est attitudeU et le mot de passe est caché
- Ensuite, cliquez sur "Connexion" pour lancer le site.
Si la connexion a réussi, alors la suite serait simple : dans la partie de gauche, on cherche où se
trouvent sur le disque dur les fichiers .php, .html et .css et aussi les images .jpg, .png, .gif etc...
Ensuite, on double-clique sur le fichier à transférer à gauche, il apparaîtra à droite, ce qui voudra dire
qu'il a été correctement envoyé sur le serveur, donc qu'il est accessible sur Internet.
Les fichiers, généralement, à envoyer sont des fichiers de types : .php, .html, .css et des images,
mais aussi .pdf, .zip, etc.
NB : Index.html apparaît à droite, ce qui veut dire qu'il est maintenant disponible
sur le serveur Web, Et il doit aussi servir de page d'accueil. Elle est la page qui
sera chargée lorsqu'un nouveau visiteur arrivera sur votre site.
Les dossiers entiers peuvent aussi être transférés d'un seul coup quand ont fait
glisser-déplacer depuis la partie de gauche jusqu'à la partie de droite de la fenêtre.