Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
// HTML, Javascript
XHTML & CSS
version 1.3
date 15 / 09 / 2011
auteur Loïc Swiny
contact mr@sweeen.com
HTML, Javascript, XHTML & CSS
// sommaire
HTML
JAVASCRIPT
XHTML
CSS
2
HTML, Javascript, XHTML & CSS
I. GENERALITES
II. le contenu
IV. l’architecture
1. Arborescence
2. Liens
3. Modularité
V. la forme
1. Zoning
2. Format technique
3. Format visuel
3
HTML, Javascript, XHTML & CSS 02. Introduction au webdesign
I. GENERALITES
Vous êtes designer graphique et vous souhaitez ajouter les joies du webdesign et de l'intégration HTML aux cordes
de votre arc ?! Formidable !
Mais ne nous emballons pas.... avant de se lancer dans l’habillage graphique et à fortiori dans l’intégration d’un
produit, il convient de réfléchir à sa finalité et de définir son contenu, son architecture, et sa forme générale.
N'oubliez pas que l'un des objectifs de ce metier est de génerer du sens.
Pour ce faire, des outils sont à votre disposition : le brief créatif, le benchmark de referencement sectoriel, une
bonne connaissance de la typologie, des contraintes d’intégration et de l’architecture de l’information des sites
internet (cf. Methodologie des metiers du design interactif).
Ajoutez à l’ensemble un gout prononcé pour la culture design et ses publications, votre curiosité naturelle, une
bibliothèque de sources graphiques bien fournie (images bitmap & vectorielles, fontes, brosses photoshop...) et un
peu de talent... mais n’oubliez jamais qu’au début tout commence toujours par une page blanche et un stylo pour
esquisser vos premières rec
4
HTML, Javascript, XHTML & CSS 02. Introduction au webdesign
II. le contenu
La définition du contenu de tout produit de communication interactive est certainement un des points les plus
important à dégager en amont. C’est sa définition exhaustive qui vous permettra de calibrer correctement le contenu
de chaque rubrique et donc de le valoriser de façon la plus efficace possible.
Il n’est en effet rien de plus désagréable à consulter qu’une page au contenu mal calibré, soit parce que trop "vide"
soit parce que trop "riche" en information. Une bonne définition des contenus donnera à vos visiteurs l’envie de
revenir sur votre produit, c’est donc une phase de construction à ne surtout pas négliger.
• Maîtrisez le sujet abordé : Même si vous n’êtes pas familier du produit traité, prenez le temps de vous renseigner
sur ce dernier, vous serez par la suite plus à l’aise lorsqu’il s’agira d’architecturer l’info.
• Dégagez les principales rubriques : Soyez à même de proposer un rubriquage le plus cohérent possible par
rapport au produit à traiter ; ce faisant en devancant la demande du client vous eviterez l’ecueil d’une arborescence
mal équilibrée.
• Préparez vos sources : Réunissez et contrôlez textes, paragraphes, orthographe, images, contenus interactifs...
plus vous aurez une vision complète de la quantité de contenu à integrer, plus votre produit sera cohérent et efficace.
5
HTML, Javascript, XHTML & CSS 02. Introduction au webdesign
III. l’architecture
Sous peine de courir très vite à la catastrophe (dans le cas de produits à grande profondeur éditoriale et/ou
évolutive) et de perdre un temps précieux lors de la phase d’intégration, dégagez au plus tôt l’architecture physique
(arborescence) de votre site.
A l’instar de votre dossier de travail une bonne nomenclature de dénomination de l'arborescence est essentielle à
l’accompagnement d’un travail propre et clair. Si vous suivez le protocole de gestion des fichiers évoqué dans le
premier dossier du manuel "méthodologie des metiers du design interactif", la localisation physique de votre produit
se situe dans le dossier "web" de ce dernier.
# web
• index.html fichier html de la page d’accueil
• style.css feuille de style du produit
• javascript.js moteurs javascript du produit
# images dossier des images communes à TOUTES les pages du site (fonds, navigation, etc...)
# nom de rubrique_01 dossier de la rubrique
• index.htm fichier html de la page de la rubrique
# images dossier des images communes à la rubrique UNIQUEMENT
# nom de rubrique_02 dossier de la rubrique
• index.htm fichier html de la page de la rubrique
# images dossier des images communes à la rubrique UNIQUEMENT
# etc... dossier de la rubrique
• index.htm fichier html de la page de la rubrique
# images dossier des images communes à la rubrique UNIQUEMENT
NB : En raison des standards referentiels (google et autres moteurs de recherche), votre première page (page
d’accueil, homepage, ...), doit se nommer index.html. Il est de plus, préférable que les noms de vos pages et
dossiers ne dépassent pas 8 caractères.
Pour bien visualiser la navigation entre les pages de votre produit, rien ne vaut un bon croquis qui vous permettra de
formaliser correctement cette dernière lorsque vous la formaliserez physiquement dans votre code (cf. Methodologie
des metiers du design interactif / 08. Architecture de l’information).
3. Modularité du produit.
En fonction de sa profondeur et/ou de la commande client, pensez à architecturer votre produit pour qu’il puisse, au
cas échéant, accueillir de nouvelles rubriques. Dans cette optique votre maquette se doit de ne pas être trop "rigide"
graphiquement parlant.
6
HTML, Javascript, XHTML & CSS 02. Introduction au webdesign
V. la forme
1. Zoning
Afin de faciliter l’intégration du code avec un éditeur html, n’hésitez pas à réaliser un gabarit structurant de votre
future maquette faisant apparaitre le "zoning" de votre produit ; ceci également dans le but d’affecter aux éléments
des côtes en pixels pour une mise en page soignée.
900px
120px navigation principale
7
HTML, Javascript, XHTML & CSS 02. Introduction au webdesign
2. Format technique
Le developpement d’un produit de communication interactive, de par la finalité de son support de diffusion (écran) ne
s’envisage pas de la même manière qu’un produit imprimé.
Voiçi un rappel des différences principales à prendre en considération lors de la création de la maquette :
(cf. Methodologie des metiers du design interactif / 09. Contraintes html des projets de communication interactive)
3. Format visuel
A contrario de l’édition de documents imprimés (dans un format fixe), l’un des paramètres les plus importants à
prendre en compte lors de la construction d’un site est la modularité du support final. Vous allez vous heurter à ...
... pour ne citer que les paramètres les plus importants. On pourrait aussi évoquer la puissance des connexions
proposées par les fournisseurs d’accès, la qualité d’affichage des couleurs à l’écran et la puissance des machines.
Il est donc essentiel lors de la création d’une interface de penser à tout ces paramètres pour éviter de vous
confronter à un conflit (voir une impossibilité) d’intégration d’élément lors de la découpe de ce dernier.
Pour eviter les migraines, et dans le cadre de la construction d’un produit classique à diffusion d’information verticale
(ceci excluant de facto les formats et expérimentation plus exotiques) il est conseillé de travailler à partir d’un gabarit
au format max de 1600x1200 pixels incluant une "zone utile" centrée de 1000 pixels de large.
1600
1200 1000
8
HTML, Javascript, XHTML & CSS
I. HISTORIQUE
9
HTML, Javascript, XHTML & CSS 02. Introduction au HTML
Le HTML ou HyperTexte Markup Language est le langage de publication utilisé sur le World Wide Web.
Très facile à maîtriser, il s’agit tout simplement d’un langage à balises ("tags" au format ASCII), délimitées entre
crochets et affinées dans leur formes par des attributs ; ces instructions placées dans un simple fichier texte au
format .html (ou .htm) sont ensuite interprétées par les différents navigateurs pour en faire apparaitre le contenu sur
votre écran…
I. HISTORIQUE
C’est Tim Berners-Lee qui a écrit et développé ce langage pour répondre aux besoins du système d’échange
d’informations qu’il venait d’inventer : le World Wide Web.
Pour expliciter physiquement ces échanges entre machine, un protocole spécifique a été mis en place, c’est le HTTP
(Hyper Text Transfert Protocol) ; moyen simple et efficace d’accéder sur un réseau à des documents liés entre eux
par des hyperliens.
Ecrits en HTML, les documents s’enchaînent les uns les autres par un simple clic de souris et sont transportés
jusqu’au lecteur grâce au protocole HTTP.
2000 / XHTML
Mise à jour majeure du langage qui devient XHTML. Avec l'inclusion des feuilles de style (CSS / cascading style
sheet) qui séparent le fond de la forme, c’est l’avènement du Web 2.0.
Avant d’arriver au stade de produit fini permettant la consultation par l’internaute des informations qu’il contient, la
vie d’un site Internet se construit en suivant plusieurs étapes dont la construction HTML n’est qu’un des jalons.
Dans le process moderne de la construction d’un produit de communication interactive, ce sont les intégrateurs,
situés juste après les infographistes et juste avant les developpeurs (ingénieurs informaticiens responsables de
l’implémentation des fonctions dynamiques du produit) qui sont en charge de la construction des pages HTML.
Ils y incluent textes, images, documents flash, sons et vidéos en fonction des recommandations graphiques des
studios créatifs… et c’est à eux tout particulièrement que l’on demande une excellente connaissance du code.
10
HTML, Javascript, XHTML & CSS 02. Introduction au HTML
Si vous n’avez jamais consulté le code source d’une page HTML, connectez-vous sur une page avec votre
navigateur favori et consultez son fichier "source" (Affichage/Source, ou "Afficher la source" avec le clic droit de la
souris lorsque le pointeur est sur la page).
De par sa structure des plus élémentaire ainsi que par sa simplicité physique, apprendre le HTML pour integrer un
ensemble de pages web et les rendre cohérentes entre elles ne nécessite aucune compétence en terme de langage
de programmation.
On peut écrire du HTML avec un éditeur de texte de base (Notepad, ou Simple Text), ou en utilisant un traitement de
texte à condition d’enregistrer le fichier au format "texte seulement", avec l’extension .html.
On peut également utiliser des éditeurs à interface d’intégration accompagnée de type Dreamweaver, mais il est
toutefois recommandé de bien connaître la base du langage pour les utiliser correctement afin d’en optimiser les flux
de production.
A l’arrivée, la phase la plus délicate de la construction d’un produit de communication interactive ne réside pas
dans son intégration mais plus dans la compréhension et l’application des process et méthodes qui vont rendre sa
création plus fonctionnelle, fluide et efficace.
11
HTML, Javascript, XHTML & CSS
I. introduction
12
HTML, Javascript, XHTML & CSS 03. HTML, les bases
I. introduction
Comme nous l’avons vu dans le premier chapitre, le HTML est un langage de description qui pour formater et
mettre en page ses contenus utilise des balises (tags) délimitées entre crochets et affinées dans leur formes par des
attributs. A l’aide de ces attributs et des valeurs insérées, vous allez définir la forme de votre texte (gras, italique,
polices...), inclure des images, des animations, de la vidéo, du son, et des liens vers d’autres pages... qui seront
ensuite interprétées par les différents navigateurs pour en faire apparaitre le contenu sur votre écran…
Une page HTML est divisée en deux parties : l’en-tête (HEAD) et le corps (BODY) de la page...
<html>
<head>
<title> Le titre de la page</title>
</head>
<body>
<font face="arial" size="1">texte</font>
</body>
</html>
Invisible à l’écran, cette partie regroupe toutes les informations nécessaires à un bon affichage de votre page par les
différents navigateurs Internet. Dans cette partie vont se joindre :
<title>titre de la page</title>
• Les balises <meta> : Aussi appellées "meta-balises". Principalement utilisées pour l’indexation et le
référencement des sites par les moteurs de recherche, ces dernières sont devenues facultatives, voire
obsolètes. Les seules balises absolument nécessaires à une page sont TITLE et DESCRIPTION.
• Le character set : HTML etant optimisé pour une utilisation en langue anglaise (langage n’utilisant pas
d’accent), il vous est plus que fortement conseillé d’appliquer une méta balise de définition d’alphabet
prenant en compte ces derniers sous peine d’être condamné à les signigfier physiquement dans le code
<style type="text/css">...</style> pour un style interne à la page et appliqué à une balise de type inline
<link rel="stylesheet" type="text/css" href="monstyle.css"> pour une feuille de style externe à la page
• L’appel des javascript : Utilisé pour les parties dynamiques de votre page
<script src="javascript.js" type="text/javascript" charset="iso-8859-1"></script>
2. Le corps / BODY
C’est la partie où, toujours grâce à l’utilisation des balises, vous intégrerez les différents éléments de votre page
visibles à l’écran : texte, hyperliens, images, animations, vidéo, son...
13
HTML, Javascript, XHTML & CSS 03. HTML, les bases
1. Généralités
• Les balises sont des séquences de caractères interprétées par les navigateurs Web. Lorsque l’on regarde
le contenu d’une page HTML, on repère assez facilement les balises HTML, ce sont les portions de texte
semblables à celle-ci :
• Une balise est facilement identifiable, elle est constituée d’un mot (ou plusieurs dans certain cas) encadrée
par les signes inférieur < et supérieur >.
• La majorité des balises servent à la mise en page (texte en gras, tableaux...), mais toutes ne sont pas
dédiées à la mise en page des documents, en effet, le HTML permet par exemple de donner des informations
sur le document lui même (informations qui ne seront pas affichées), d’appeler des fichiers externes comme
des images, des animations Flash, des sons...
• Etant donné que c’est un langage de description, il n’est pas sensible à la casse, en effet on peut aussi bien
écrire :
Bien que la définition de cette notion soit un peu prématurée à ce stade (nous y reviendrons lorsque nous aborderons
l’utilisation des CSS), il s’agit d’une notion essentielle à prendre en considération.
• les balises de type BLOC : dont le développement vertical est généralement dédié aux définitions structurelles des
contenus de votre page (listes, tableaux, etc...)
<TABLE>
<TR>
<TD>
</TD>
</TR>
</TABLE>
• les balises de type INLINE : dont le développement horizontal est généralement dédié aux définitions d’apparence
des contenus de votre page (images, textes, etc...)
14
HTML, Javascript, XHTML & CSS 03. HTML, les bases
Ce sont les spécifications particulières de chaque balise (dont nous verrons la liste afférente à chacune lorsque
abordé). Ils permettent de modifier l’effet de la balise ou précisent son action.
Les attributs figurent après le nom des balises dans les < > ; ils sont séparés par des espaces et leur valeur est
indiquée entre guillemets.
Dans cet exemple concernant une ligne de texte, cette dernière a reçu une balise de définition de police de caractère
font qui elle-même a reçu un attribut de famille face et de taille size
• Pratiquement toutes les balises vont par paire (balises d’ouverture et de fermeture)
par exemple : <b> et </b>
• Ecrivez vos balises en minuscules, cela peut faciliter le transfert de votre code vers le XHTML
• Essayer d’aérer votre code au maximum en utilisant la tabulation de votre clavier à chaque implementation
descendante de code (cf. exemple de squelette de page au début de ce dossier)
15
HTML, Javascript, XHTML & CSS
Structure fondatrice des éléments qui seront visibles sur votre page, la balise <BODY> est à même de recevoir un
certain nombre d’attributs dont certains sont incontournables
16
HTML, Javascript, XHTML & CSS
05. Le texte
I. Le CARACTERE
V. Les paragraphes
17
HTML, Javascript, XHTML & CSS 05. Le texte
Au sein d’une page HTML le texte s’implémente entre les balises "body". Ce dernier se doit d’être bien entendu lui
aussi codé. Voici les codes d'intégration de texte les plus courant…
I. Le CARACTERE
I. Les styles
Bien entendu, les styles peuvent se cumuler pour une même portion de texte.
Dans ce cas, l’ordre de définition des balises de style importe peu.
Même si l’utilisation judicieuse d’un character set Européen (gérant les les accents) placé en meta balise dans votre
header est censé vous eviter ce genre de désagrément... il faut savoir que dans l’absolu les accents se codent !
il se peut donc que vous ayez besoin de coder un accent au format ascii ou d’utiliser un caractère spécial. Pour ce
faire, le principe est le suivant commencez par & puis la lettre à accentuer puis le codage de l’accent et terminez par
un point virgule... Ainsi pour é : vous écrirez é
18
HTML, Javascript, XHTML & CSS 05. Le texte
Utilisés pour le titrage, ils changent la taille des caractères et génèrent un retour à la ligne automatique.
• h1 <h1>titre</h1>
• h2 <h2>titre</h2>
• h3 <h3>titre</h3>
• h4 <h4>titre</h4>
• h5 <h5>titre</h5>
• h6 <h6>titre</h6>
En terme de gestion du texte, les retours à la ligne dans le code, de même que les sauts de ligne et les tabulations ne
sont pas pris en compte. Il faudra donc les signifier par des balises spécifiques dédiés.
Lorsque vous développez vos pages, il existe deux balises qui permettent d’obtenir, soit un saut de ligne, soit le
commencement d’un nouveau paragraphe.
V. Alignement / Ferrage
Pour ferrer un ou plusieurs bloc de texte, on appliquera l’attribut align soit aux en-têtes, soit au paragraphe.
En l’absence de l’une ou l’autre de ces balises il est toujours possible de ferrer un texte en utilisant la balise
universelle <div>...
19
HTML, Javascript, XHTML & CSS 05. Le texte
Utiliser des lignes ou des filets horizontaux est très pratique pour séparer les différentes parties de votre document.
Cette méthode s’obtient avec la balise <hr> et ne nécessite pas de balise de fermeture.
Elle possède plusieurs attributs :
VII. LISTES
La liste est une balise de type bloc relativement facile à mettre en place en html. On en distingue deux type.
Toutefois, nous verrons par ailleurs que ce formatage sera géré de façon plus complète avec les CSS…
20
HTML, Javascript, XHTML & CSS
I. GENERALITES
21
HTML, Javascript, XHTML & CSS 06. Les liens
I. GENERALITES
A l’intérieur de votre document, la balise <a> permet d’établir un lien hypertexte (l’essence même du Web) vers un
autre document ou encore vers l’extérieur (vers un autre site web).
Tout ce qui se trouve entre la balise <a> et </a> sera considéré un lien et apparaîtra par défaut souligné à l’écran.
• Les noms de vos fichiers et de vos dossiers vont constituer vos urls ; sachant que c’est un des premiers endroits
que les moteurs de recherche vont analyser pour trouver les mots-clés, il est judicieux de choisir des noms de
dossiers en rapport avec le contenu de vos pages.
Par exemple une page portfolio, aura plus de chances d’être trouvée si l’url est portfolio/index.htm que 02/index.htm
• Les accents, les espaces et les caractères de ponctuation sont INTERDITS dans les noms de dossiers et de
fichiers, il est néanmoins possible d’inclure des tirets et des tirets bas (underscore).
• Il est recommandé de n’utiliser que des minuscules, car une fois vos pages sur un serveur, les urls deviennent
sensibles à la casse.
22
HTML, Javascript, XHTML & CSS 06. Les liens
• Si le fichier se trouve dans un autre dossier, il faut indiquer le chemin d‘accès au fichier.
• Pour aller d’un fichier qui se trouve dans un dossier vers un fichier qui se trouve dans un autre dossier, il
faut monter l’arborescence pour redescendre.
<a href="../dossier/fichier.html">texte</a>
Ici ../ permet de sortir du dossier en cours, puis il faut redescendre dans l’arborescence et indiquer dans quel
dossier on veut aller.
Généralement lorsque l’on cherche à placer un lien vers un site externe à celui qui est en cours de développement, il
faut indiquer ce dernier dans sa version complète et conforme au protocole HTTP (ou autre). Le principe de création
des liens absolus est le même que pour les liens relatifs. <a href="http://www.google.com">texte</a>
Les liens internes permettent de se déplacer à l’intérieur d’un même fichier html sans que le visiteur soit obligé de
faire "scroller" la fenêtre du navigateur. L’utilisateur va donc cliquer sur un lien et il sera amené vers la destination du
lien interne.
Il n’est pas nécessaire, dans ce cas précis, de mettre un texte ou une image, entre les balises d’ouverture et de
fermeture, mais le nom ne doit pas contenir d’espaces, ni d’accents, ni de caractères spéciaux.
Cas particulier parmis les attributs de la balise <a>. Il s’agit d’un lien de messagerie qui fait apparaître le client de
messagerie du navigateur (Outlook Express pour IE par exemple).
<a href="mailto:nom@url.com">Contact</a>
Pour prédéfinir l’objet du mail vous pouvez rajouter ?subject= au corps de l’attibut...
<a href="mailto:nom@url.com?subject=l’objet de votre mail">Contact</a>
23
HTML, Javascript, XHTML & CSS
24
HTML, Javascript, XHTML & CSS 07. Les images
Pour afficher une image dans une page HTML on utilise la balise <img> assortie de ses attributs afférents, dont les
plus courants sont présentés ci après…
Généralement les éléments graphique d’une même page sont stockés dans le repertoire "images" d’une même
rubrique.
25
HTML, Javascript, XHTML & CSS 07. Les images
Il s’agit de définir des zones sensibles (donc cliquables) dans une image.
Il faut alors calculer les coordonnées de ces zones.
Il est possible de faire des zones carrées ou rectangulaires, des cercles et des polygones.
Les coordonnées du carré/rectangle sont les coordonnées x et y des coins supérieurs gauche et inférieur droit.
ici : 198, 5, 297, 221
<map name="lecture">
<area shape="rect" coords="198,5,297,221" href="fleurs.html">
<area shape="circle" coords="119,73,65" href="jeune_fille.html">
<area shape="poly" coords="4,169,51,179,102,198,131,211,144,222,5,219" href="journal.html">
</map>
26
HTML, Javascript, XHTML & CSS
I. generalités
1. L’attribut colspan
2. L’attribut rowspan
2. Les attributs colspan & rowspan
27
HTML, Javascript, XHTML & CSS 08. Les tableaux
I. generalités
La balise <table> permet d’insérer un tableau à votre page et c’est l’une des balises les plus utilisées.
En effet les tableaux permettent une meilleure présentation des informations, nombreux sont les sites qui utilisent les
tableaux pour obtenir une mise en page de type journal.
Bien entendu, toutes ces balises doivent êtres fermées pour indiquer la fin du tableau, d’une ligne ou d’une cellule.
<table>
<tr>
<td>
cell1
</td>
</tr>
</ table >
colspan unité numérique définit la fusion de 2 cellules adjacentes sur une ligne
rowspan unité numérique définit la fusion de 2 cellules adjacentes sur une colonne
28
HTML, Javascript, XHTML & CSS 08. Les tableaux
En principe, la hauteur et la largeur d’une cellule s’adaptent automatiquement aux données (texte ou image),
néanmoins, vous pouvez définir une hauteur et une largeur pour un tableau ou une cellule ; l’espacement des cellules
et la taille des bordures peut être aussi paramétrés.
• La taille fixe a pour avantage de garder la mise en page, la taille en pourcentage s’adaptera à la taille de
l’écran mais risque de modifier la mise en page.
<tr bgcolor="#99ffff">
</tr>
<tr>
</tr>
</table>
29
HTML, Javascript, XHTML & CSS 08. Les tableaux
Les lignes et cellules d’un tableau peuvent êtres fusionnés, afin d’obtenir des zones de mise en forme de contenu
modulables et adaptées aux besoins d’une maquette.
• Pour fusionner 2 cellules adjacentes sur une ligne, l’attribut COLSPAN est requis
• Pour fusionner 2 cellules adjacentes sur une " colonne ", l’attribut ROWSPAN est requis
1. L’attribut COLSPAN
Sur plusieurs lignes : La ligne du haut s’étend sur 2 cellules même chose pour la ligne du bas
</TABLE>
2. L’attribut ROWSPAN
La 1e ligne comporte la cellule 1 qui s’étend sur 3 rangées de "colonne". Le terme "colonne" n’étant pas tout à fait
exact syntaxiquement parlant puisqu’il s’agit en fait d’un ensemble de cellules situées les unes sous les autres
30
HTML, Javascript, XHTML & CSS 08. Les tableaux
Comme vous pouvez vous en douter, les attributs colspan et rowspan peuvent s’utiliser conjointement dans une
même construction tabiulaire.
Néanmoins prenez garde à la compléxité syntaxique que de telles architectures peuvent engendrer.
En fonction de ce que vous choisirez de construire ou une logique et une ecriture irréprochable (à défaut une bonne
dose d’aspirine) seront requises.
31
HTML, Javascript, XHTML & CSS
I. generalités
1. Qu’est ce que les frames ?
2. Comment ca marche ?
3. Les attributs ROWS & COLS
4. Les liens appliqués aux frames
5. Compatibilité des navigateurs
32
HTML, Javascript, XHTML & CSS 09. Les frames
I. generalités
Auparavant les navigateurs ne pouvaient afficher qu’un seul fichier HTML, mais on peut désormais diviser en
plusieurs zones la page affichée. Ces zones ou fenêtres ou encore cadres se nomment frame.
Les frames sont apparues avec la version 3.0.d’HTML et même si bon nombre de Webmasters les utilisaient, elles
n’étaient pas une composante officielle du langage.
Après quelques années d’utilisation intensives dans la fin de la période pré web 2.0, les frame sont tombés en
disgrace pour des raisons d’optimisation des protocoles de referencement. Elles ne sont donc presque plus utilisées
aujourd’hui.
Il n’en reste pas moins que lorsqu’utilisées avec parcimonie et à bon escient, elles sont toujours un outil fort pratique.
2. Comment ca marche ?
Dans une page d’index, la balise <frameset> prend la place de la balise <body> ; c’est elle qui dans un premier
temps va définir les cadres, qu’ils soient verticaux ou horizontaux, ainsi que leurs dimensions (en % ou en pixels).
Voici deux exemples parmis les plus courants ainsi que leur code source...
<html> affichage
<head> zone 1 zone 2
<title>page avec frames</title>
</head>
construction
<frameset cols="20,80"> frameset
<frame src="zone1.htm" name="zone1">
zone 1 zone 2
<frame src="zone2.htm" name="zone2">
</frameset>
</html>
<html> affichage
<head> zone 1
<title>page avec frames</title>
</head> zone 2 zone 3
Bien entendu, la famille des balises <frame> va se voir enrichie par un certain nombre d’attributs qui vont spécifier le
comportement de ces dernières.
33
HTML, Javascript, XHTML & CSS 09. Les frames
<frame> src url relatif ou absolu à définir définit la source relative ou absolue des frames
name variable à définir définit une identité à chaque frame
<html>
<head>
<title>page avec frames</title>
</head>
rows et cols définissent le type de cadre, qui peut être horizontal (rows/rangée) ou vertical (cols/colonnes).
Ils prennent une serie de valeurs séparées par des virgules. Ces valeurs sont exprimées en pourcentage (valeurs
relatives) ou plus généralement en pixel (valeurs absolues).
Une valeur "exotique", l’étoile (*) fera s’ajuster automatiquement la colonne ou la rangée concernée sur l’espace
maximum laissé par les autre dans l’ensemble de frame.
<frameset cols="50,*">
Normalement, les pages appelées par des liens s’affichent dans la frame où les liens ont été activés, mais l’attribut
de lien target permet d’appeler un cadre par son nom défini avec l’attribut name.
34
HTML, Javascript, XHTML & CSS 09. Les frames
Même si il est de plus en plus rare de trouver des navigateurs non compatibles, il faut néanmoins ne pas négliger cet
aspect, sous peine de se passer de quelques visiteurs.
La technique consiste à utiliser la balise <noframes> qui permet de spécifier un texte HTML en version normale.
Entre ces balises il faut donc, théoriquement, développer un deuxième site : vous pouvez pour simplifier le travail
préciser des regrets polis et insérer des liens vers les sites officiels des navigateurs pour que le visiteur opte pour une
mise à jour.
<frameset rows="20,80">
<frame src="zone1.htm" name="zone1">
<frame src="zone2.htm" name="zone2">
</frameset>
<noframes>
<body>
Désolé mais ce site utilise la technique des frames. Merci de faire la mise à jour de votre navigateur.
</body>
</noframes>
La technique des cadres locaux s’obtient avec la balise <iframe> elle permet d’insérer une fenêtre à n’importe quel
endroit de votre document. Cette fenêtre fera référence à un autre document HTML.
La balise <iframe> doit être insérée dans le corps de votre document, c’est-à-dire entre <body> et </body>.
Elle a les mêmes attributs que la balise <frame> plus les attributs width et height
35
HTML, Javascript, XHTML & CSS
I. generalités
II. CREATION
1. Method
2. Action
3. Enctype
36
HTML, Javascript, XHTML & CSS 10. Les formulaires
I. generalités
Les formulaires permettent avant tout de faire réagir votre visiteur, de l’inviter à laisser ses impressions, ses
commentaires.
La création des formulaires se réalise grâce à plusieurs champs, dans lesquels le visiteur va entrer une information
ou opter pour un choix. L’information est ensuite envoyée, à l’aide de scripts, sur le serveur qui vous héberge puis
renvoyée, dans la plupart des cas, sur l’adresse électronique de votre choix.
II. CREATION
Nous traitons ici la structure du formulaire en html, l’envoi des données se faisant par .
1. Method
2. Action
Adresse le formulaire vers l’URL du script CGI (fourni par le serveur qui héberge vos pages), qui accepte l’information
et vous le retourne suivant les paramètres définis.
3. Enctype
Cet attribut spécifie le format des données envoyées, dans le cas où un protocole n’imposerait pas de format précis.
37
HTML, Javascript, XHTML & CSS 10. Les formulaires
<input> type text / radio / checkbox définit le type de champ de saisie (texte ou bouton)
submit / reset
size pixel définit le nombre de caractères visibles dans le champ
maxlength pixel définit le nombre de caractères maximum à la saisie
name variable à définir définit l’identité d’un ou de plusieurs champs
value variable à définir définit le contenu du champ lors de la réception
1. Champ de texte
oui non
38
HTML, Javascript, XHTML & CSS 10. Les formulaires
4. Liste déroulante
<select name="pays">
<option>france</option>
<option>allemagne</option>
<option>espagne</option>
<option>italie</option>
</select>
france
5. Boite de dialogue
6. Boutons
Envoyer Annuler
39
HTML, Javascript, XHTML & CSS
I. body
V. listes
VI. liens
VII. images
VIII. tableaux
IX. frames
X. i-frames
XI. formulaires
40
HTML, Javascript, XHTML & CSS 11. Recap’ des balises
I. BODY
41
HTML, Javascript, XHTML & CSS 11. Recap’ des balises
V. listes
VI. liens
42
HTML, Javascript, XHTML & CSS 11. Recap’ des balises
VII. images
VIII. tableaux
colspan unité numérique définit la fusion de 2 cellules adjacentes sur une ligne
rowspan unité numérique définit la fusion de 2 cellules adjacentes sur une colonne
43
HTML, Javascript, XHTML & CSS 11. Recap’ des balises
IX. frames
<frame> src url relatif ou absolu à définir définit la source relative ou absolue des frames
name variable à définir définit une identité à chaque frame
X. i-frames
44
HTML, Javascript, XHTML & CSS 11. Recap’ des balises
XI. formulaires
<input> type text / radio / checkbox définit le type de champ de saisie (texte ou bouton)
submit / reset
size pixel définit le nombre de caractères visibles dans le champ
maxlength pixel définit le nombre de caractères maximum à la saisie
name variable à définir définit l’identité d’un ou de plusieurs champs
value variable à définir définit le contenu du champ lors de la réception
45
HTML, Javascript, XHTML & CSS
12. Javascript
I. introduction
46
HTML, Javascript, XHTML & CSS 12. Javascript
I. introduction
Je ne saurai trop le répéter… comme nous l’avons évoqué en début d’année le but de ces leçons n’est pas de vous
transformer en ingénieur informaticien.
L’objectif de cette partie est de vous dégrossir l’aspect quelque peu rébarbatif d’une approche du langage Javascript
et de vous transmettre quelques unes des utilisations les plus utiles que vous aurez à utiliser dans la construction de
vos architectures les plus courantes.
Le Javascript (ne pas confondre avec JAVA) est un langage informatique de type dynamique qui vous sera utile pour
améliorer la présentation et l’interactivité de vos pages Web.
Dynamique ?
Jusqu’ici, toutes vos pages HTML étaient statiques. Cela veut dire que le visiteur pouvait consulter votre site, mais
pas plus. Grâce à un langage dynamique, le visiteur peut lui-même "modifier" ou interagir sur certains éléments de
votre site.
Très utile pour traiter les événements occasionnés par un internaute sur une page web, le Javascript permet la mise
en place de menus dynamiques, d’ouvrir et/ou fermer des fenêtres "pop-up", de forcer une fenêtre de navigateur à
s’ouvrir en plein écran, et bien plus encore…
Ne pas confondre ces deux langages totalement différents. JAVA est un langage beaucoup plus complexe que
Javascript notamment parce que son code source est compilé avant son exécution ce qui assure notamment la
confidentialité de ce dernier (on n’accède pas au code en faisant clic droit Afficher la source !!!).
Et ça veut dire quoi, compilé ? Une fois compilé, le script ne peut plus être modifié à moins d’être décompilé. Un
script compilé voit sa source cachée.
A l’inverse, le Javascript et le HTML sont interprétés, c’est-à-dire que le code source sera visible et le fichier ne sera
pas "compressé".
Retenez qu’à part les syllabes "java" qui reviennent dans les deux noms ces deux codes n’ont rien en commun.
47
HTML, Javascript, XHTML & CSS 12. Javascript
Il s’agit de balises que l’on place généralement entre les balises <head> et <body> d’une page html, mais que l’on
peut placer presque partout.
JavaScript s’intègre directement dans votre page HTML entre les deux balises <script> et </script>.
De plus, afin de solliciter l’interpréteur JavaScript, on précise dans la balise ouvrante : <script langage="JavaScript">
<html>
<head>
<title>Mon premier script !</title>
</head>
<body>
</body>
</html>
Pour ce faire, il vous faut créer à la racine du site une simple page au format .js (script.js par exemple) qui accueillera
la partie du code scripté.
Il ne restera plus qu’a "appeller" cette partie depuis votre page html en utilisant la ligne de code suivante (toujours
placée entre le header et le body) :
48
HTML, Javascript, XHTML & CSS
I. Navi simple
1. onmouseout, on mouseover
2. onmouseout, on mouseover multiple
3. onmouseout, on mouseover, onclick (2 images)
4. onmouseout, on mouseover, onclick (3 images)
49
HTML, Javascript, XHTML & CSS 13. JS / Menus dynamiques
I. Navi simple
1. onmouseout, on mouseover
Pour rendre ce même menu dynamique par l’utilisation du langage Javascript il faudra d’abord placer entre le header
et le body de la page la balise javascript suivante :
<script language="JavaScript">
function MM_findObj(n, d) { //v3.0
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x;
}
function MM_nbGroup(event, grpName) { //v3.0
var i,img,nbArr,args=MM_nbGroup.arguments;
if (event == "init" && args.length > 2) {
if ((img = MM_findObj(args[2])) != null && !img.MM_init) {
img.MM_init = true; img.MM_up = args[3]; img.MM_dn = img.src;
if ((nbArr = document[grpName]) == null) nbArr = document[grpName] = new Array();
nbArr[nbArr.length] = img;
for (i=4; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) {
if (!img.MM_up) img.MM_up = img.src;
img.src = img.MM_dn = args[i+1];
nbArr[nbArr.length] = img;
}}
} else if (event == "over") {
document.MM_nbOver = nbArr = new Array();
for (i=1; i < args.length-1; i+=3) if ((img = MM_findObj(args[i])) != null) {
if (!img.MM_up) img.MM_up = img.src;
img.src = (img.MM_dn && args[i+2]) ? args[i+2] : args[i+1];
nbArr[nbArr.length] = img;
}
} else if (event == "out" ) {
for (i=0; i < document.MM_nbOver.length; i++) {
img = document.MM_nbOver[i]; img.src = (img.MM_dn) ? img.MM_dn : img.MM_up; }
} else if (event == "down") {
if ((nbArr = document[grpName]) != null)
for (i=0; i < nbArr.length; i++) { img=nbArr[i]; img.src = img.MM_up; img.MM_dn = 0; }
document[grpName] = nbArr = new Array();
for (i=2; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) {
if (!img.MM_up) img.MM_up = img.src;
img.src = img.MM_dn = args[i+1];
nbArr[nbArr.length] = img;
}}
}
</script>
50
HTML, Javascript, XHTML & CSS 13. JS / Menus dynamiques
PAS DE PANIQUE !
Même si cette balise et ses attributs peuvent vous sembler d’une approche quelque peu barbare, ne vous inquiétez
pas de cette dernière. Il s’agit tout simplement du " moteur " de votre script et ce dernier a été généré par fireworks.
Vous n’aurez JAMAIS à intervenir dessus, gardez juste en mémoire que son incrémentation est nécessaire au bon
fonctionnement de votre menu dynamique
Une fois ce moteur mis en place (en interne où en externe), la première chose à faire pour rendre actif les différents
éléments bitmap (les images) de votre navigation va être dans la balise <img> de donner un attribut de nom à chacun
de ces derniers (en général le même que l’image concernée) :
L’étape suivante sera de définir les attributs de changement d’état de vos images, pour cela nous utiliserons les
attributs onMouseOut et onMouseOver que nous placerons dans la balise <a> après l’attribut href.
Notez bien que si l’attribut onMouseOut est strictement invariable, l’attribut onMouseOver devra faire l’objet de
modifications récurrentes pour chaque image concernée.
Tout d’abord la mise à l’équivalent de l’attribut " name " appelé par le code javascript
onMouseOver="MM_nbGroup(‘over’,’navi_01’,’images/navi_01_f2.jpg’,’images/navi_01_f2.jpg’,1);"
Puis l’appel de la deuxième image qui apparaîtra lors du passage de la souris sur l’image
onMouseOver="MM_nbGroup(‘over’,’navi_01’,’images/navi_01_f2.jpg’,’images/navi_01_f2.jpg’,1);"
Pour ce cas de figure qui peut s’avérer très pratique à l’occasion il s’agit tout simplement de doubler l’appel d’image
au sein du onMouseOver
Attention ! Notez bien que pour éviter la confusion dans l’appel de l’image, Javascript demande à ce que l’appel de
l’image concernée ne soit pas le même que la première appelée, d’où l’intérêt de la définition d’un attribut " name "
unique à chaque image.
51
HTML, Javascript, XHTML & CSS 13. JS / Menus dynamiques
Si vous souhaitez qu’une image cliquée faisant apparaître son deuxième état reste apparente sur votre barre de
navigation vous allez devoir utiliser l’attribut onClick à l’intérieur de votre balise <a> à la suite des deux précédents
attributs
C’est cet attribut qui définira quelle image reste affichée après l’action.
Attention ! Dans le cas présenté, l’attribut Javascript ‘navbar1’ est le dénominatif de votre barre de navigation. Le
script global prendra donc en considération tous les autres éléments utilisant ce même attribut comme faisant partie
de la même navigation.
Si vous souhaitez qu’une image cliquée fasse apparaître un troisième état il vous suffira de changer l’appel de l’image
à afficher dans ce même attribut onClick
NB : Pour plus de facilité de compréhension de votre code lorsque vous l’incrémenterez, il vous est conseiller de
normer l’appellation de vos différentes images selon le protocole suivant
52
HTML, Javascript, XHTML & CSS
II. Attributs
53
HTML, Javascript, XHTML & CSS 14. JS / Popup
A l’instar d’une fenêtre de navigateur qui s’ouvrirait suite à la définition d’un attribut de target _blank dans une balise
d’action, une pop up est une fenêtre de navigateur paramétrable qui s’ouvre à l’extérieur de la page consultée.
II. Attributs
Avant de définir votre action il faudra placer ce code entre le header et le body de votre page
<script language="javascript">
function OpenPopup(POP)
{
window.open (POP,’popup’,’width=300,height=200,directories=no,history=no,status=no,toolbar=no,menubar=no,scro
llbars=no,resizable=no’);
}
</script>
… ensuite via un " onClick " il n’y a plus qu’à faire appel au code sus défini lors de l’établissement du lien :
54
HTML, Javascript, XHTML & CSS 14. JS / Popup
La méthode est similaire à la première sauf que cette fois ci nous allons inclure directement le code javascript à
l’intérieur de la balise <a>
Ces deux méthodes fonctionnent aussi bien avec du texte qu’avec une image…
Attention : Il est à noter toutefois que l’utilisation de la première méthode est plus indiquée lorsqu’il s’agit d’appeler
une popup depuis un document flash.
Dans ce cas de figure le code action script à utiliser sur le bouton concérné sera :
on (release) {
getURL("javascript:OpenPopup(‘popup.htm’);");
}
Dans la fenetre concernée et sans ajout de code séparé il suffira d’inclure un onClick circonstancié à la définition de
l’action
55
HTML, Javascript, XHTML & CSS
Très simple d’utilisation et très pratique pour " forcer " l’ouverture d’une page en plein écran…
ATTENTION : Nonobstant que ce script ne fonctionne qu’avec IE, il n’est pas toujours très apprécié par les
internautes qui peuvent y voir une agression manifeste de leurs habitudes de consultation de pages Internet.
<script language="JavaScript">
function fullscreen(){
window.open("fenetre.htm","","fullscreen=yes, scrollbars=auto")
}
</script>
56
HTML, Javascript, XHTML & CSS
<SCRIPT language="JavaScript">
<!--
var message=" © Copyright, All rights reserved.";
function click(e) {
if (document.all) {
if (event.button==2||event.button==3) {
alert(message);
return false;
}
}
if (document.layers) {
if (e.which == 3) {
alert(message);
return false;
}
}
}
if (document.layers) {
document.captureEvents(Event.MOUSEDOWN);
}
document.onmousedown=click;
// -->
</SCRIPT>
Ce dernier " invalidera " les options de récupération d’élément du bouton droit de la souris.
Bien entendu cette option n’empêchera en rien un utilisateur averti d’aller récupérer la source via l’option affichage/
source du menu de son navigateur et de récupérer ce qui l’intéresse au sein de la page.
57
HTML, Javascript, XHTML & CSS
I. GENERALITES
VI. en resumé
58
HTML, Javascript, XHTML & CSS 17. Introduction au XHTML
I. GENERALITES
Ce chapitre expose les règles d’écriture qui caractérisent XHTML par rapport à HTML. Ces règles garantissent une
meilleure adaptabilité de vos pages aux futurs développement du Web et aux évolutions des navigateurs et des outils
de visualisation utilisés (téléphones mobiles, PDA etc...) ainsi qu’une plus grande facilité de mise à jour et de mise
aux normes d’accessibilité.
XHTML présente les mêms balises et attributs que HTML. Bien qu’ils soient accéptés par XHTML et les navigateurs,
certains éléments sont déconseillés parce que défavorables à l’accéssibilité et aux tendances modernes.
Signalons que ces recommandations qui, sans être imposées par le langage, constituent en quelque sorte des règles
de bon sens.
Ce même bon sens qui implique ces recommandations... mais sans dogmatisme.
• HTML4.01 transitionel
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
• HTML4.01 strict
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
• HTML4.01 frameset
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
• XHTML1.0 strict
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
• XHTML1.0 transitionel
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
• HTML4.01 frameset
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/frameset.dtd">
3. Choisir sa DTD
De façon générale utilisez de préférence XHTML1.0 Strict, c’est a priori la plus adaptée à vos besoins.
C’est aussi la plus facile à utiliser et à apprendre.
59
HTML, Javascript, XHTML & CSS 17. Introduction au XHTML
En fait, un fichier XHTML est un fichier XML. Il faut donc définir ce qu’on appelle son espace des noms. Cela se fait
dans la balise <html> qui s’écrit :
<html xmlns="http://www.w3.org/1999/xhtml">
La balise <html> a aussi deux paramètres facultatifs qui précisent la langue utilisée. Pour XML anglais, avec un
contenu français, on écrira :
<html xmlns="http://www.w3.org/1999/xhtml"
xml:lang="en" lang="fr">
1. Généralités
Nous venons de voir deux différences entre HTML et XHTML ; la nécessité du DOCTYPE et celle du paramètre xmlns
dans <html>. De fait, il n’y en a pas beaucoup d’autres.
Tout ce que nous avons vu dans les chapitres précédents fonctionne aussi bien en HTML qu’en XHTML car nous
avons obéi à peu de choses près aux règles d’écriture de XHTML.
• Majuscules et minuscules
HTML est indifférent aux deux alors qu’XHTML exige des minuscules pour toutes les balises et attributs. Pour les
valeurs des attributs c’est selon ; pour une désignation de fichier, il faut suivre la forme du nom tel qu’il a été crée.
• Balises de fermeture
En html certaines balises de fermeture sont facultatives, tandis que d’autres sont obligatoires. En XHTML toutes les
balises de fermeture sont obligatoires.
• Balises célibataires
Une balise célibataire comme <br> s’écrit désormais <br />
• Paramètres boléens
Certains paramètres jouent uniquement par leur présence en HTML.
Par exemple, <input type="checkbox checked"> installe dans un formulaire une case cochée par défaut.
En XHMTL il faut écrire <input type="checkbox" checked="checked">
60
HTML, Javascript, XHTML & CSS 17. Introduction au XHTML
Une autre distinction entre les éléments est celle à faire entre BLOC et EN LIGNE.
• Une structure HTML qui n’a intrinsèquement aucun rapport avec l’affichage de l’élément.
• Son rendu sur les navigateurs (affichage, positionnement, comportement) défini par défaut selon le bon vouloir de
chaque navigateur et modifiable à l’aide des CSS.
Pour y voir plus clair, les différentes balises qui composent une page html ont été classées :
BODY, DIV, Paragraphes (P), en-têtes (H1 à H6), tableaux (TABLE)… Ces éléments se placent nécessairement les uns
en dessous des autres, commencent une nouvelle ligne et forcent le suivant à faire de même. Ils servent à distinguer
les parties entières de texte.
Il s’agit par exemple de A, B, I, SPAN, les images... Elles ne forcent jamais de retour à la ligne et peuvent être
l’enfant de n’importe quel autre élément. Elles sont prévues pour rester dans le texte et l’enrichir (lien hypertexte,
renforcement, emphase, etc.).
La compréhension de la structure des balises va avoir de nombreuses implications par la suite, et paradoxalement
c’est souvent un sujet peu connu des webmasters.
Au niveau le plus basique retenons simplement que des balises de type bloc peuvent contenir d’autres balises de
type bloc et des balises de type inline… et qu’une balise possède un rendu CSS qui n’a pas forcément de rapport
avec sa structure HTML.
Les balises ont toutes par défaut une valeur de rendu CSS particulière selon qu’elles seront du type bloc ou inline.
Les balises de type bloc se placent toujours l’une en dessous de l’autre par défaut (comme un retour chariot).
Par exemple, une suite de paragraphes <p> ou les éléments d’une liste <li>.
Par ailleurs, une balise bloc occupe automatiquement, par défaut, toute la largeur disponible dans son conteneur.
<p>Paragraphe 1</p>
<p>Paragraphe 2</p>
Les balises de type inline se placent toujours l’un à côté de l’autre afin de rester dans le texte.
Par exemple, le renforcement d’une partie de texte à l’aide de la balise <b>.
Ce texte va s’afficher sur une seule ligne (aucun retour à la ligne) car les éléments qui le composent sont de rendu
CSS "en-ligne".
61
HTML, Javascript, XHTML & CSS 17. Introduction au XHTML
En règle générale…
• Une balise de type bloc peut contenir une (ou plusieurs) balise bloc et/ou inline (sauf exception).
• Une balise de type inline ne peut contenir QUE une (ou plusieurs) balise inline.
Par exemple, la balise <div> (type bloc) englobe les deux paragraphes (type bloc).
<div>
<p>Paragraphe 1</p>
<p>Paragraphe 2</p>
</div>
Par contre, nous n’aurions pas pu écrire :
<span>
<p>Paragraphe 1</p>
<p>Paragraphe 2</p>
</span>
car la balise <span> (dont la structure est inline) n’est pas autorisée à contenir des éléments de structure bloc
comme les paragraphes.
NB : Les balises inline se distinguent elles mêmes en deux parties : les balises remplacés et les non remplacés
• Les balises remplacés sont les seuls qui possèdent des dimensions (width, height…) par défaut.
Il s’agit des balises <img>, <input>, <textarea>, <select> et <object>.
• Les balises non remplacés n’ont pas de dimension à proprement parler par défaut (elles n’occupent que la place
minimum nécessaire à leur contenu).
C’est le cas des éléments <strong>, <em>, <span>, etc…
Ces deux balises permettent de structurer la page. Elles permettent de délimiter une partie de la page qui peut ainsi
recevoir un nom et des spécifications de mise en forme. Elles sont faites pour cela.
<div> est de type bloc et peut regrouper d’autres balises du même type comme des balise en ligne.
<span> est une balise en ligne. Elle ne peut délimiter qu’un fragment de texte.
VI. en resumé
• XHTML est le nouveau standard d’intégration. Il est une passerelle vers les futures versions.
• Ayant des règles plus strictes, XHTML vous conduit à créer des pages plus cohérentes et qui fonctionnent mieux.
• XHTML 1.0 est accépté par les anciens navigateurs. En outre, les nouveaux navigateurs respectent mieux les
normes CSS avec lui.
• XHTML permet de créer des pages pour les PDA, les téléphones, les lecteurs d’écran pour malvoyants etc...
• XHTML s’accorde parfaitement avec les fichiers CSS et il vous incitera à éviter les balises de présentation pour
réserver la mise en forme aux styles ; ce qui facilitera la prise en compte des problèmes d’accéssibilité dans vos
pages.
62
HTML, Javascript, XHTML & CSS
I. GENERALITES
63
HTML, Javascript, XHTML & CSS 18. CSS / Introduction
I. GENERALITES
Au début…
MAIS…
…avec la variété actuelle de navigateurs qui ne respectent pas nécessairement les standards initialement crées par
le W3C, on passe aujourd’hui plus de temps à vérifier que les affichages soient identiques sur plusieurs navigateurs,
voire plusieurs versions du même navigateur qu’à créer son code.
C’est pourquoi sont apparues les feuilles de style ou CSS (Cascading Style Sheet), qui sont une nouvelle tentative
de standardisation des langages d’intégration initié par le W3C pour aboutir à un affichage identique sur toutes les
configurations matérielles de la terre… conforme aux désirs de l’auteur.
Les CSS permettent de décrire la présentation d’une page web et remplacent donc avantageusement l’ancienne
méthode, qui consistait à utiliser ces fameuses balises, attributs et autres tableaux. Elles permettent de centraliser
toute la mise en forme et d’avoir à peu de frais une mise en page cohérente ; elles sont notamment utilisées pour
définir les couleurs, les polices, le rendu, et d’autres caractéristiques liées à la présentation d’un document.
L’objectif est donc de bien séparer la structure (XHTML) de la présentation (CSS) du document.
Pour un unique contenu plusieurs affichages sont donc possibles. (cf. http://www.csszengarden.com/)
Dans le cas de sites disposant d’une arborescence conséquente, il peut être intéressant de créer une feuille pour les
bases (polices, couleurs arrière-plan, etc…) puis des feuilles complémentaires pour chaque division du site.
Cette séparation fournit un certain nombre de bénéfices, permettant d’améliorer l’accessibilité, de changer plus
facilement de structure et de présentation, et de réduire la complexité de l’architecture d’un document.
• La conception d’un document se fait dans un premier temps sans se soucier de la présentation, ce qui permet
d’être plus efficace.
• La présentation est uniformisée, les documents (pages html) font référence à la (aux) même(s) feuille(s) de styles.
• Un même document peut donner le choix entre plusieurs feuilles de style (css d’impression ou de lecture à l’écran).
• Le code HTML est considérablement réduit en taille et en complexité, puisqu’il ne contient plus de balises de
présentation, il est donc plus rapide à afficher.
Les propriétés des styles regroupent différentes valeurs, telles que les choix de police, de taille de couleur à
appliquer aux différents éléments d’une page, ainsi toutes les balises HTML pourront être positionnés, décorés,
dimensionnés...
C’est ce que font les CSS : définir ces valeurs dans la page html à l’aide d’un code séparé en utilisant les balises
comme <h1> …</h1> qui de base en possède une taille et une graisse non modifiable mais qui est complètement
redéfinissable en css.
64
HTML, Javascript, XHTML & CSS 18. CSS / Introduction
Le langage CSS est très simple, et le mieux est de commencer par un exemple.
En HTML, pour définir un élément de texte en gras, vous avez pris l’habitude de placer les balises <b> et </b>…
<b>texte</b>
<strong>texte</strong>
Voici comment dans le cas d’une application directe, le langage CSS va interpréter la même requête :
Mais s’il ne s’agissait que de remplacer une syntaxe par une autre, l’intérêt des CSS serait nul.
Il existe donc plusieurs façons d’utiliser ces dernières…
<style type="text/css">
...
</style>
• Dans un fichier externe relié au doc html à l’aide d’une balise <link> (dans l’en-tête également)
Pour créer ce fichier, à l’aide d’un éditeur de texte standard (notepad ou simple text), enregistrez un nouveau
document portant l’extension .css.
Ces deux méthodes peuvent d’ailleurs être utilisées ensemble pour un même document. Dans ces conditions, si elles
se contredisent, c’est la feuille écrite directement dans le document qui prédomine.
En général, prévoyez d’avoir une feuille de style dans un fichier séparé pour définir la présentation de tout un site, par
la suite rajoutez ce qui est nécessaire dans chaque page.
Nb : Il est possible de mettre des commentaires presque n’importe où dans une feuille de style CSS en les encadrant
de /* et */
65
HTML, Javascript, XHTML & CSS 18. CSS / Introduction
3. Structure
ou
sélecteur p
{ {
propriété : valeur; font-size : 11px;
} }
4. Unités de longueur
px pixel mm millimètres
% pourcentage cm centimètres
em largeur de police in pouces
ex hauteur police pt point =1/72 de pouces
pc pica = 12points
66
HTML, Javascript, XHTML & CSS
Avec les CSS, le terme "cascading" souligne une propriété importante du langage ; ses caractéristiques de
présentations se propagent en cascade d’un élément à ses fils.
Pour mémoire…
• Le style en ligne l’emporte sur la feuille de style interne
• La feuille de style interne l’emporte sur la feuille de style externe.
Mais aussi…
• Les ID l’emportent sur les CLASS
• Les CLASS l’emportent sur les sélecteurs contextuels, pseudo-class et pseudo elements
On peut aussi considérer l’importance des CSS en fonction des valeurs de leurs spécificités qui ont pour effet de
donner une importance différente à chaque règle.
ID : spéc. 100 / CLASS : spéc. 10 / Sélecteur contextuels : spéc. 1 / Règles héritées : spéc. 0
C’est le mécanisme par lequel les styles s’appliquent à un élément, mais aussi à ses descendants.
Prenons exemple sur la structure d’une page html…
En haut de la hiérarchie se trouve la balise html qui contient la balise body qui contient d’autres éléments… Si
html est l’ascendant de l’ensemble (aussi appelé élément racine), body est l’ascendant de tout ce que montre le
navigateur.
Même si quelques propriétés ne sont pas hérités (comme border par exemple), la plupart du temps pour optimiser le
code beaucoup de paramètres héritent de leur parent par défaut (la couleur d’arrière plan du body sera la même pour
toutes les couleurs d’arrière-plan de la page) sauf si une déclaration contradictoire est faite ensuite
NB : En CSS, si vous souhaitez qu’un élément prenne le dessus sur tout le reste, il faut alors utiliser le paramètre de
règle "importante", c’est-à-dire que cette dernière doit être suivie de !important.
67
HTML, Javascript, XHTML & CSS
68
HTML, Javascript, XHTML & CSS 20. CSS / Les sélecteurs
1. Les sélecteurs html qui offrent la possibilité de redéfinir les balises html en css
2. Les CLASS qui sont des règles librement choisies applicables à n‘importe quelle balise html.
3. Les ID qui sont similaires aux classes mais qui s’appliquent qu’une seule fois pour un élément donné.
Nous l’avons vu dans le précédent dossier théorique. Il s’agit en fait d’un simple changement de syntaxe.
2. Les CLASS
N’importe quel balise peut se voir attribuer le sélecteur CLASS, qui va servir à faire le lien avec une feuille de style, de
même que plusieurs balises peuvent utiliser le même sélecteur CLASS.
Ainsi, pour un paragraphe, on écrira : <p class="exemple"> que l’on couplera avec la définition de CSS :
p.exemple
{
font-family: sans-serif;
}
Le sélecteur CLASS s’utilise souvent en conjonction avec les balises <div> et <span>, qui deviennent ainsi des
balises à tout faire... Supposons que je veuille mettre un filet bleu à gauche de mes exemples. Je peux écrire :
p.exemple
{
border-left: solid blue 2px;
}
Mais si je fais ainsi, je ne peux pas mettre un exemple de plusieurs paragraphes, parce que le filet bleu serait
interrompu dans l’espace entre les paragraphes ; je ne peux pas non plus mettre une énumération ou une table dans
l’exemple. Il vaut mieux alors écrire :
div.exemple
{
border-left: solid blue 2px;
}
<div class="exemple">
<p>Ici mon exemple.</p>
<p>Il peut faire plusieurs paragraphes</p>
</div>
Je peux également utiliser .exemple comme sélecteur, qui s’appliquera alors à tous les éléments de classe
"exemple", quel que soit leur type, et me laisse ainsi la liberté d’écrire <p class="exemple"> dans les cas simples, et
de recourir à un div dans les cas plus compliqués.
69
HTML, Javascript, XHTML & CSS 20. CSS / Les sélecteurs
3. Les ID
D’une certaine manière ID est un sélecteur redondant : tout ce qu’on peut faire avec on peut en faire autant voire plus
avec CLASS.
Mais… ID a son utilité car il définit un élément de manière unique dans l’ensemble des balises : un document HTML
valide ne devrait ainsi pas comporter deux éléments avec le même ID. De fait, ID est le sélecteur idéal dès qu’il s’agit
de positionner un élément au sein de l’interface, dans le cas ou deux éléments ne devraient logiquement pas avoir la
même position dans l’interface.
Ainsi, pour un paragraphe, on écrira <p id="exemple"> que l’on couplera avec la définition de CSS :
#exemple
{
font-family: sans-serif;
}
Enfin… une balise pouvant disposer d’un ID et d’une (ou plusieurs) CLASS (ID disposant d’une préséance
hiérarchique sur CLASS) peut permettre de préciser un élément particulier au sein d’un ensemble de CLASS.
En terme de CSS la définition de certaines fonctionnalités, en particulier les liens, dispose d’un traitement spécial…
Il s’agit de les redéfinir de la manière suivante et dans l’ordre :
<a href="fichier.html">link</a>
Les propriétés applicables à ces pseudo-classes sont les mêmes que ceux applicables au texte : typo, couleur, taille,
arrière-plan etc... plus la "décoration", c’est-à-dire soulignement, barre au-dessus, barré, clignotant (sauf dans IE).
nb : Lorsque souhaité, il est necessaire de preciser la disparition du soulignement par defaut des liens...
a:link {text-decoration : none; }
Pour appliquer les mêmes paramètres à plusieurs états de liens, séparer les sélecteurs par une virgule.
a:link, a:visited {color: #000000, text-decoration:none}
70
HTML, Javascript, XHTML & CSS 20. CSS / Les sélecteurs
Il se peut que vous vouliez, dans une même page, des liens qui se comportent différemment. Par exemple pour
différencier les liens internes des liens externes de votre produit.
Il faut alors utiliser à la fois les pseudo-classes : a:link, a:visited, a:hover, a:active ET une classe personnalisée.
Nous allons donc cumuler les deux. Par exemple si je choisis des paramètres propres aux liens externes du site, je
peux imaginer une classe personnalisée que je nommerai : ".lienext"
a.lienext:link {propriétés}
a.lienext:visited {propriétés}
a.lienext:hover {propriétés}
a.lienext:active {propriétés}
Il existe encore quelques autres pseudo-classes, mais elles sont souvent mal reconnues par les navigateurs, et moins
utiles.
L’une des grandes forces des sélecteurs CSS est leur capacités à se combiner les uns avec les autres, ainsi on
pourra retrouver ces groupements sous plusieurs formes :
• une , entre 2 sélecteurs signifie l’application d’une même définition aux sélecteurs
h1, h2, h3 {propriétés}
• un + signifie l’adjacence
h3 + p {propriétés} (correspond au premier paragraphe qui suit une en-tête h3)
71
HTML, Javascript, XHTML & CSS
I. generalités
72
HTML, Javascript, XHTML & CSS 21. CSS / Les propriétés
I. generalités
Les propriétés des sélecteurs indiquent l’apparence que les éléments doivent prendre et permettent de changer
énormément d’aspects de la présentation de ces derniers.
C’est en utilisant conjointement ces dernières, que la mise en page de votre contenu va prendre forme.
1. polices de caractère
<style type="text/css">
.font
{
font-style : normal;
font-variant : normal;
font-weight : normal;
font-size : small;
font-family : sans-serif;
}
</style>
RACCOURCI : Avec font: il est possible de spécifier plusieurs propriétés d’un coup. Il faut alors placer à la suite et
dans l’ordre les éventuels style, variante, graisse, taille, et famille.
<style type="text/css">
.font
{
font : normal normal normal small sans-serif;
}
</style>
73
HTML, Javascript, XHTML & CSS 21. CSS / Les propriétés
Cas particuliers :
• Pour font-size: qui prend une valeur descriptive (xx-small, x-small, small, medium, large, x-large, xx-large), ou une
valeur relative à la taille actuelle (larger, smaller ou un pourcentage) ; cependant… attention à l’interprétation de ces
valeurs par les différents navigateurs.
Pour éviter de mauvaises surprises on préférera utiliser une valeur fixe exprimée en pixels
• Pour font-family: comme tout le monde n’à pas toutes les polices du monde, il est possible d’en indiquer
plusieurs, séparées par des virgules (les noms comportant des espaces doivent être mis entre guillemets).
Ceci dit, CSS définit des familles génériques, serif, sans-serif, monospace, cursive et fantasy... il est conseillé de
toujours mettre une famille générique en dernier recours.
2. texte
.font
{
text-align : left;
line-height : normal;
text-indent : inherit;
text-transform : none;
text-decoration : none;
word-spacing : inherit;
letter-spacing : inherit;
}
Cas particuliers :
• Pour text-decoration:
- "La valeur " Blink " n’est pas opérationnelle avec IE
- Il est possible de donner plusieurs décorations en les séparant par un espace
.font
{
text-decoration : underline overline;
}
74
HTML, Javascript, XHTML & CSS 21. CSS / Les propriétés
Nous avons déjà vu dans les précédents cours comment créer une liste en HTML (cf. p.16 / 05 - le texte)
Pour mémoire…
Listes non numérotées Listes numérotés
<ul> <ol>
<li>premier <li>premier
<li>deuxième <li>deuxième
</ul> </ol>
Avec CSS nous agirons de même, à ceci près que nous ignorerons les paramètres de calibrage HTML…
Pour ce faire nous définirons la déclaration de classe pour les éléments UL ou OL de la page dans notre feuille de
style en sachant que les propriétés de ces derniers seront héritées par les LI…
ul
{
list-style-type : disc ;
}
Bien entendu si plusieurs listes différentes doivent apparaître dans une même page, il sera alors nécessaire de
déclarer une classe nominative…
.liste
{
list-style-type : square ;
}
ul
{
list-style-image : url(‘images/btn.gif’);
}
75
HTML, Javascript, XHTML & CSS 21. CSS / Les propriétés
• Soit en définissant une couleur RVB décimale en utilisant des valeurs allant de 0 à 255 ou en pourcentage
.fontcolor
{
color: rgb(0,0,0);
}
• Soit en définissant une couleur hexadécimale (16 millions de couleurs) en indiquant les valeurs RVB d’une couleur
selon la notation #RRVVBB, empruntée au HTML, où RR, VV et BB représentent respectivement un nombre entre 00
et FF pour le Rouge, le Vert et le Bleu.
En CSS il est possible de raccourcir ce code en #RVB. Chaque lettre doublée peut être indiquée une seule fois.
.fontcolor
{
color: #000000;
}
Attention : Si vous souhaitez utiliser cette méthode, gardez à l’esprit que le standard CSS ne garanti que l’affichage
des 16 couleurs définies ci après (ce qui est peu).
.fontcolor
{
color: black;
}
76
HTML, Javascript, XHTML & CSS 21. CSS / Les propriétés
A présent, voyons comment le CSS va agir sur les arrières plans… il va être possible d’agir sur la couleur, la définition
d’une image, sa répétition et son scrolling ainsi que sur son positionnement au sein de la page.
.bkg
{
background-color : transparent;
background-image : url(‘images/bkg-base.jpg’);
background-repeat : no-repeat;
background-attachment: fixed;
background-position : left top;
}
Raccourci : avec background: il est possible de spécifier plusieurs propriétés d’un coup.
Il faut alors placer à la suite et dans l’ordre les éventuels couleurs, images, répétitions, scrolling et position.
.bkg
{
background: transparent url(‘images/bkg-base.jpg’) no-repeat fixed left top;
}
77
HTML, Javascript, XHTML & CSS 21. CSS / Les propriétés
Un BLOC ou une BOITE (un paragraphe, un titre, une table) définie par sa largeur et, cas échéant, sa hauteur est
entouré de trois zones de l’intérieur vers l’extérieur :
Ces deux propriétés permettent d’ajuster la largeur et la hauteur d’un bloc. Attention toutefois à utiliser height avec
parcimonie, le contenant d’un bloc étant toujours prioritaire sur la définition de la valeur.
• La bordure ou border
En utilisant les propriétés de type border-côté-, il est possible d’intervenir sur chacun d’entre eux séparément…
mais il est largement préférable d’utiliser border tout court.
78
HTML, Javascript, XHTML & CSS 21. CSS / Les propriétés
.bloc
{
width : auto;
height : auto;
padding-top : auto;
padding-right : auto;
padding-bottom: auto;
padding-left : auto;
margin-top : auto;
margin-right : auto;
margin-bottom : auto;
margin-left : auto;
border-width : 1px;
border-color : black;
border-style : solid;
}
Raccourci : Les caractéristiques de bloc permettent de spécifier leurs propriétés respectives d’un coup.
Il faut alors les placer à la suite et dans l’ordre (dans le sens des aiguilles d’une montre, en partant de midi)
.bloc
{
width : auto;
height : auto;
Dans le cas de padding: et margin: si on ne met que deux longueurs elles définissent les marges haute et basse
d’une part et gauche et droite d’autre part… si on n’en met qu’une, les quatre marges sont égales.
79
HTML, Javascript, XHTML & CSS 21. CSS / Les propriétés
Maintenant que nous avons vu la plupart des propriétés les plus importantes des CSS, il est utile de souligner
qu’afin de faciliter l’intégration des éléments les plus récurrents de votre page, nombre d’entre elles sont directement
applicables à la balise body de cette dernière !
body
{
font : normal normal normal 12px sans-serif;
text-align : justify;
line-height : normal;
text-indent : inherit;
text-transform : none;
text-decoration : none;
word-spacing : inherit;
letter-spacing : inherit;
color : #000;
80
HTML, Javascript, XHTML & CSS
I. generalités
V. positionNEMENT
1. Position relative
2. Position absolue
3. Position fixe
4. Position flottante
4.1 Généralités
4.2 Débordement et spacer
4.3 Une variante du spacer <hr />
VI. conclusion
81
HTML, Javascript, XHTML & CSS 22. CSS / Boites et positions
I. generalités
Là ou avec HTML nous utilisions des tableaux pour la mise en forme des contenus d'une page, avec CSS nous
utiliserons les les "boites". D'une formalisation aisées, elles ne sont guère plus que l'ajonction d'une propriété de
taille aux class et id
Par défaut, les navigateurs affichent les boîtes issues du document dans l’ordre du flux normal, c'est à dire
verticalement de haut en bas de l’écran, et horizontalement de gauche à droite, sur la totalité de l’espace
disponible et nécessaire. Leur affichage sera donc différent en fonction du type (bloc ou en ligne) de ces dernières.
Par défaut, les boîtes de type bloc seront affichées Par défaut, les boîtes de type en-ligne sont affichées dans
dans une succession verticale. une succession horizontale.
Les principales balises créant des boîtes bloc sont : Les principaux éléments créant des boîtes en ligne sont :
Prenons par exemple deux blocs différenciés par leur Prenons par exemple deux portions de texte différenciées
couleur : par leur couleur :
HTML HTML
<p>
<p class="jaune">Une boîte jaune</p> <span class="jaune">Une boîte jaune</span>
<p class="verte">Une boîte verte</p> <span class="verte">Une boîte verte</span>
</p>
CSS CSS
.jaune .jaune
{ {
width : 200px; width : 200px;
background-color : #ffff00; background-color : #ffff00;
} }
.verte .verte
{ {
width : 200px; width : 200px;
background-color : #00ff00; background-color : #00ff00;
} }
82
HTML, Javascript, XHTML & CSS 22. CSS / Boites et positions
V. positionNEMENT
Surtout utilisées avec le positionnement absolute, ces quatre propriétés définissent l’emplacement d’un élément par
rapport à l’élément parent. Elles déplacent l’élément sans changer ses dimensions.
1. Position relative
Le positionnement relatif permet d’inscrire un contenu en flux normal, puis de le décaler horizontalement et/
ou verticalement. Le contenu suivant n’est pas affecté par ce déplacement qui peut donc entraîner des
chevauchements.
HTML
<p>
Lorem
<span class="jaune">boîte en position relative</span>
ipsum dolor.
</p>
CSS
.relative
{
position: relative;
bottom: 10px;
background-color: #ffff00;
}
CSS
. relative
{
position: relative;
bottom: 10px;
left: 10px;
background-color: #ffff00;
}
83
HTML, Javascript, XHTML & CSS 22. CSS / Boites et positions
2. Position absolue
Elle retire totalement du flux le contenu concerné, sa position est déterminée par référence aux limites du conteneur.
Celui-ci peut-être :
• Le bloc conteneur initial, à défaut de boîte positionnée, c’est à dire le plus souvent la fenêtre du navigateur.
• Une boîte elle-même positionnée (position relative ou absolue).
Ceci s’avère très utile en particulier pour créer plusieurs colonnes au positionnement indépendant de l’ordre dans
lequel elles se trouvent en HTML.
HTML
<div class="verte">
<p>Lorem ipsum…</p>
<p class="jaune">Boîte jaune en position absolue</p>
</div>
CSS
.verte
{
background-color : #00ff00;
}
.jaune
{
position : absolute;
top : 10px;
right : 10px;
background-color : #ffff00;
}
CSS
.verte
{
padding-top : 20px;
background-color : #00ff00;
}
84
HTML, Javascript, XHTML & CSS 22. CSS / Boites et positions
Nous pourrions aussi fixer la largeur de la boîte jaune et doter le texte de la boîte verte d’une marge intérieure à droite
CSS
.verte
{
padding-right : 50px;
background-color : #00ff00;
}
.jaune
{
width : 10px;
position : absolute;
top : 10px;
right : 10px;
background-color : #ffff00;
}
HTML
<div class="droite">
…
</div>
CSS
85
HTML, Javascript, XHTML & CSS 22. CSS / Boites et positions
3. Position fixe
La seule différence avec le positionnement absolu tient au fait que l’élément fixé reste en place même si la page
défile avec l’ascenseur.
4. Position flottante
4.1 Généralités
Une boîte flottante est retirée du flux normal et placée le plus à droite ou le plus à gauche possible dans son
conteneur. Le contenu suivant cette boîte flottante s’écoule le long de celle-ci, dans l’espace laissé libre.
HTML
CSS
.verte
{
background-color : #00ff00;
}
.jaune
{
width : 100px;
background-color : #ffff00;
float : right;
}
Le navigateur place tout d’abord la boîte jaune, alignée sur le bord droit de cette partie de notre page, puis reprend le
cours normal du flux dans l’espace laissé libre à sa gauche pour afficher la boîte verte.
Le flux occupe tout l’espace disponible, la boîte verte reprend donc toute la largeur de la page sitôt passée la limite
inférieure de la boîte flottante jaune.
Dans les navigateurs n’appliquant pas la feuille de style, la boîte flottante sera simplement inscrite en flux normal
avant la boîte qui la suit.
86
HTML, Javascript, XHTML & CSS 22. CSS / Boites et positions
Reprenons notre exemple, mais inversons les contenus: celui de la boîte flottante jaune est à présent plus long que
celui de la boîte verte :
HTML
CSS
Idem
La boîte flottante, plus longue que la boîte verte, déborde verticalement plus bas que celle-ci.
La solution… le spacer (appliqué à un léger changement de structure)
Il consiste à inclure dans la boîte verte (placée dans une balise <div> précédant la jaune) un élément bloc au contenu
fictif doté de la propriété clear; qui lui interdit d’être adjacent à une boîte flottante.
HTML
<div class="verte">
<p class="jaune">Une boîte jaune flottant doté d’un
contenu plus long…</p>
<p>Une boîte verte</p>
<div class="spacer"></div>
</div>
CSS
Idem +…
.spacer
{
clear : both;
}
Le spacer, ne pouvant se placer à côté du bloc flottant, se trouve décalé plus bas que celui-ci.
87
HTML, Javascript, XHTML & CSS 22. CSS / Boites et positions
Le défaut du spacer est d’introduire dans le code HTML un contenu fictif à des fins de présentation…
Lorsque la boîte adjacente à la boîte flottante est suivie d’une coupure logique dans votre page (nouvelle section de
texte…), il est préférable d’associer la propriété clear à un contenu réel.
La ligne horizontale créée par la balise <hr /> peut jouer avantageusement ce rôle :
HTML
<div class="verte">
<p class="jaune">Une boîte jaune flottant doté d’un
contenu plus long…</p>
<p>Une boîte verte</p>
<hr>
</div>
CSS
Idem +…
hr
{
clear : both;
}
Vous pouvez toutefois rendre la balise invisible tout en la laissant agir sur le flux à l’aide de la propriété visibility:
hidden;
HTML
<div class="verte">
<p class="jaune">Une boîte jaune flottant doté d’un
contenu plus long…</p>
<p>Une boîte verte</p>
<hr>
</div>
CSS
Idem +…
hr
{
clear : both;
visibility: hidden;
}
88
HTML, Javascript, XHTML & CSS 22. CSS / Boites et positions
On obtient une série de vignettes pouvant accueillir par exemple des images, les liens d’un menu de navigation,
etc… (ou encore permettant de réaliser une mise en page en colonnes) en créant une série de boîtes flottantes
placées dans une boîte conteneur servant à délimiter l’espace visuel où s’affichent les boîtes flottantes. Elle s’adapte
automatiquement à la largeur d’affichage disponible : faute de place à droite, une boîte flottante sera replacée à la
ligne.
HTML
<div>
<p class="flottante">boîte verte 1</p>
<p class="flottante">boîte verte 2</p>
<p class="flottante">boîte verte 3</p>
…etc…
</div>
CSS
.conteneur
{
width : 100%;
}
.flottante
{
width : 100px;
margin : 2px;
background-color : #00ff00;
float : left;
}
VI. conclusion
Comparée à l’utilisation des tableaux, cette technique offre des avantages essentiels :
• Gestion de la présentation à partir d’un document unique pour un nombre quelconque de pages ?
• Stricte séparation du contenu et de la présentation, d’où un contenu mieux structuré, dénué de balisage superflu.
• Meilleure accessibilité, le contenu pouvant être organisé correctement dans les navigateurs non graphiques, tout en
étant librement disposé dans les navigateurs graphiques.
• Elasticité des mises en page obtenues, qui s’adaptent plus facilement aux différentes configurations des utilisateurs
(taille de la zone d’affichage, règlages de tailles de caractères…).
89
HTML, Javascript, XHTML & CSS
Il est possible de dire au navigateur d’utiliser une feuille de style pour l’affichage sur le web et une différente pour
l’impression papier.
Pour ce il suffit de créer une première feuille de style externe pour l’affichage sur le web et de la relier à la page html
dans l’en-tête comme suit :
Ensuite, il faut créer une deuxième feuille de style externe pour l’affichage lors de l’impression (enlever les barres de
navigation, les images inutiles, mettre une couleur de police noire …) et la relier à la page html comme ceci :
Lorsque l’utilisateur demandera à imprimer la page, ou même à faire un aperçu avant impression, c’est cette feuille
de style qui sera prise en compte.
90
HTML, Javascript, XHTML & CSS
91
HTML, Javascript, XHTML & CSS 24. Trucs et astuces
Vous voulez absolument vos titres (par exemple) dans une police très spécifique que très peu d’utilisateurs verront
car ils n’auront pas la police en question. La seule solution est donc une image
h1
{
background : url(titreimage.gif) no-repeat;
height : hauteur de l’image ;
}
<div id="box">...</div>
#box
{
width : 100px;
border : 5px;
padding : 20px
}
Donc la boîte fera 150px (100px + 2 fois 5px des bordures + 2 fois 20 px de remplissage) dans IE6 PC et 100px dans
les autres.
Une solution simple consiste à donner la largeur de la boîte de 150px, et à l’intérieur d’utiliser un <div> qui lui aura les
paramètres de remplissage et bordure.
<div id="box">
<div>
...
</div>
</div>
#box
{
width : 150px
}
#box div
{
border : 5px;
padding : 20px
}
92
HTML, Javascript, XHTML & CSS 24. Trucs et astuces
body
{
margin : 50px 0px;
padding : 0px;
text-align : center;
}
#Content
{
width : 500px;
margin : 0px auto;
text-align : left;
padding : 15px;
border : 1px dashed #333;
background-color : #eee;
}
body
{
Margin :0px;
Padding :0px;
}
#Content
{
position : absolute;
left : 50%;
width : 500px;
margin-top : 50px;
margin-left : -266px;
padding : 15px;
border : 1px dashed #333;
background-color : #eee;
}
body, html
{
scrollbar-face-color : #000000;
scrollbar-shadow-color : #000000;
scrollbar-highlight-color : #000000;
scrollbar-3dlight-color : #000000;
scrollbar-darkshadow-color : #000000;
scrollbar-track-color : #000000;
scrollbar-arrow-color : #000000;
}
93
HTML, Javascript, XHTML & CSS 24. Trucs et astuces
VII. Empêcher la coloration des ascenseurs dans les pages (PC seulement)
body, html
{
scrollbar-face-color : ThreeDFace !important;
scrollbar-shadow-color : ThreeDDarkShadow !important;
scrollbar-highlight-color : ThreeDHighlight !important;
scrollbar-3dlight-color : ThreeDLightShadow !important;
scrollbar-darkshadow-color : ThreeDDarkShadow !important;
scrollbar-track-color : Scrollbar !important;
scrollbar-arrow-color : ButtonText !important;
}
<div id="boite">
<div id="image">
<img src="image.jpg" width="100" height="67">
<img src=" image.jpg" width="100" height="67">
<img src=" image.jpg" width="100" height="67">
<img src=" image.jpg" width="100" height="67">
<img src=" image.jpg" width="100" height="67">
</div>
</div>
#boite
{
margin : 0;
padding : 0px;
height : 87px;
width : 309px;
background-color : #fff;
overflow : auto;
white-space : nowrap;
}
#image
{
display : inline;
height : 100px;
padding : 0px;
}
94
HTML, Javascript, XHTML & CSS 24. Trucs et astuces
Dans le html, le <div>externe correspond à l’ombre. Elle devra avoir une couleur légèrement plus foncée que l’interne
<div class=ombre>
<div class=contenu>
Le contenu de ma boîte ici<br />
</div>
</div>
#ombre
{
background-color : #ccc;
margin : 3em 0 3em 5em;
padding : 1,5em;
}
#contenu
{
background-color : #ffd;
border : thin solid #999;
margin : -3em 0 0 -3em;
padding : 1.5em;
}
95
HTML, Javascript, XHTML & CSS
Lexique général
Accessibilité web
L’accessibilité web c’est mettre le web et ses services à la disposition de tous les individus, quel que soit leur
matériel ou logiciel, leur infrastructure réseau, leur langue maternelle, leur culture, leur localisation géographique, ou
leurs aptitudes physiques ou mentales.
Rendre les sites web accessibles, autorise, en théorie, l’accès à l’information, aux services (réservation de billet
de train, de place de concerts, d’achats en ligne...) pour les personnes en situation de handicap temporaire ou
permanent ainsi que pour toutes les personnes âgées. Le consortium W3C établit des standards très précis pour
s’assurer de l’accessibilité du web.
Agence web
Une agence web peut prendre en charge tout ou partie d’un projet Internet. Issue du monde du service et de la
communication, elle se caractérise par l’expérience acquise et les méthodologies appliquées. Elle veut répondre
à l’ensemble des nouveaux besoins rencontrés par les entreprises qui développent une stratégie d’affaires
électroniques. Elle offre généralement trois compétences : un pôle conseil, un pôle ingénierie en charge de la
réalisation du site et enfin un pôle communication.
Bande passante
La bande passante correspond à la quantité maximale de données qu’une voie de communication peut transmettre
par seconde. Elle est calculée en bits par seconde (bit/s), c’est-à-dire en se servant d’une unité qui mesure aussi le
débit et la vitesse de transmission des données. La bande passante peut devenir ainsi une indication de vitesse et de
débit. C’est pour cela que, dans certains contextes, on remplace en anglais le terme bandwidth par throughput et, en
français, le terme bande passante par débit.
Base de données
Une base de données est un ensemble structuré et organisé permettant le stockage de grandes quantités
d’informations afin d’en faciliter l’exploitation (ajout, mise à jour, recherche de données). Une base de données se
traduit physiquement par un ensemble de fichiers sur disque.
96
HTML, Javascript, XHTML & CSS 25. Lexique général
Le langage CSS (Cascading Style Sheets : feuilles de style en cascade) est utilisé pour décrire la présentation d’un
document structuré écrit en HTML ou en XML, et c’est le World Wide Web Consortium (W3C) qui en a la direction.
CSS est utilisé pour définir les couleurs, les polices, le rendu, et d’autres caractéristiques liées à la présentation d’un
document. L’objectif est de bien séparer la structure (écrite en HTML ou similaire) et la présentation (en CSS) du
document.
Cette séparation fournit un certain nombre de bénéfices, permettant d’améliorer l’accessibilité, de changer plus
facilement de structure et de présentation, et de réduire la complexité de l’architecture d’un document.
Enfin, CSS permet de s’adapter aux caractéristiques du récepteur. HTML ne décrit que l’architecture interne, et CSS
décrit tous les aspects de la présentation. CSS peut définir couleur, police, alignement de texte, taille, position, mais
aussi le formatage non visuel, comme la vitesse à laquelle le document doit être lu par des lecteurs de texte.
• La conception d’un document se fait dans un premier temps sans se soucier de la présentation, ce qui permet
d’être plus efficace.
• Dans le cas d’un site Internet, la présentation est uniformisée : Les documents (pages html) font référence à la (aux)
même(s) feuille(s) de styles. Cette caractéristique permet de plus un relookage rapide.
• Un même document peut donner le choix entre plusieurs feuilles de style (impression ou lecture à l’écran par
exemple).
• Le code HTML est considérablement réduit en taille et en complexité, puisqu’il ne contient plus de balises de
présentation.
Design graphique
Procédé de création et de développement d’une ou de plusieurs images visant à harmoniser l’environnement visuel
proposé à l’usager. Le design demande de la recherche, du modelage, des ajustements et du re-design.
Design interactif
Procédé de création et de développement graphique, audio, textuel et animé d’une présentation visant à créer une
interactivité entre l’usager et le système proposé. Ce faisant, le site web ou le logiciel prend constemment en compte
les actions de l’interacteur, et produit ainsi un contenu ou réalise un objectif.
Design web
Le design web désigne la création du support visuel à destination d’un site web. Il s’agit d’une phase prépondérante
dans la conception d’un tel site. L’identité d’un site web après être conceptualisée sera transformée en lignes de
code et images pour s’afficher dans un fureteur web.
Comme pour l’infographie et le graphisme, le design web n’a pas encore acquit son indépendance à part entière
comme activité artistique. Les raisons sont nombreuses, autant que les affinités qu’elle exige ; le design web
concerne la création de la charte graphique, l’interface et la navigation du site, l’arborescence. Ce qui demande de
nombreuse compétence en graphisme, programmation, animation.
L’objet du design web est de valoriser l’image du propriétaire du site par le biais d’éléments graphiques afin d’en
renforcer son identité visuelle, néanmoins plusieurs contraintes liée à l’ergonomie réduisent les possibilités. Un
site doit avant tout répondre aux attentes des utilisateurs. Généralement un compromis doit être trouvé entre le
graphisme et la sobriété nécessaires à la lecture et la navigation.
97
HTML, Javascript, XHTML & CSS 25. Lexique général
Formulaire web
En informatique, un formulaire est un espace de saisie dans l’interface utilisateur, pouvant comporter plusieurs zones,
ou " champs " : on peut y saisir du texte, cocher des cases, effectuer un choix dans une liste de termes prédéfinis,
appuyer sur des boutons, etc. Ces zones de saisie assurent l’interactivité entre le client (par exemple, le navigateur
de l’internaute) et le serveur (par exemple, la machine qui héberge les pages web sur internet).
Les boutons des formulaires permettent de lancer des actions prédéfinies par l’auteur des pages. Ces actions sont
des scripts (javascript, PHP, Perl, CGI...) qui envoient les données saisies au serveur. Ce dernier les traite et renvoie
une réponse à l’utilisateur via la page web.
HTML
Langage de balisage de texte qui permet la création de documents hypertextes affichables par un navigateur Web.
Le langage HTML est une application de la norme ISO-SGML (Standard Generalized Markup Language) et a été
défini par le CERN (Centre européen de recherche nucléaire).
HTTP
Le Hypertext Transfer Protocol, abrégé HTTP, littéralement " protocole de transfert hypertexte ", est un protocole
de communication informatique client-serveur développé pour le World Wide Web. Il est utilisé pour transférer les
documents (document HTML, image, feuille de style, etc.) entre le serveur HTTP et le navigateur Web lorsqu’un
visiteur consulte un site Web.
HTTPS (Secured) est la variante du HTTP sécurisé avec les protocoles SSL ou TLS. Il permet au visiteur de
vérifier l’identité du site auquel il accède grâce à un certificat d’authentification. Il permet également de chiffrer
la communication. Il est généralement utilisé pour les transactions financières en ligne : commerce électronique,
banque en ligne, courtage en ligne, etc.
Interactivité
L’interactivité est la composante grâce à laquelle un logiciel ou un site internet prend constamment en compte les
actions de l’interacteur.
L’interactivité est souvent associée aux technologies permettant des échanges homme-machine où la conduite et le
déroulement de la situation est lié a des processus de rétroaction, de collaboration, de coopération entre les acteurs
qui produisent ainsi un contenu, réalisent un objectif, ou plus simplement modifient et adaptent leur comportement.
Elle distingue une communication interactive qui s’opposerait à une communication à sens unique, sans réaction du
destinataire, sans feedback.
Interface
Une interface permet d’échanger des informations entre l’utilisateur humain et la machine. Pour que cette
communication soit la plus simple possible, on utilise différents éléments.
Les périphériques d’entrée, comme le clavier, la souris, ou le scanner permettent à l’homme de donner des
renseignements ou des ordres à la machine. Les périphériques de sortie comme l’écran, des diodes ou l’imprimante
permettent à la machine de répondre aux ordres et d’afficher des informations.
98
HTML, Javascript, XHTML & CSS 25. Lexique général
Internet
Internet est le nom donné au réseau informatique mondial, reposant sur le système d’adresses global des protocoles
de communication TCP/IP (Transmission Control Protocol/Internet Protocol) et qui rend accessible au public des
services comme le courrier électronique et le World Wide Web.
L’usage courant fait référence à Internet de différentes manières. Outre les recommandations officielles, il n’est pas
rare de rencontrer les termes suivants : " le Net " ou " le net ", " Internet ", " l’Internet ", " le réseau des réseaux " ou
plus simplement " le réseau " ou " le Réseau " décliné parfois en " Le réseau ".
Certains termes sont utilisés à tort pour faire référence à Internet, par exemple : " la Toile ", " le web " ou " le Web "
(the Web en anglais), mais cela désigne le Web et non pas Internet. Cette confusion entre web et net existe aussi en
anglais.
Intranet
Réseau informatique privé, à l’intérieur d’une organisation, qui utilise les protocoles de communication et les
technologies du réseau Internet.
Un intranet est un réseau privé ne contenant en fait qu’un seul site. Par analogie avec site Internet (ou site Web),
correspondant au site public d’un organisme ou d’une entreprise accessible sur le réseau Internet, on utilise parfois
site intranet pour parler du site privé accessible uniquement à l’interne par le personnel d’un organisme ou d’une
entreprise.
JavaScript
JavaScript est un langage de programmation de type script, utilisant les objets, principalement utilisé dans les pages
Web.
JavaScript a été créé en 1995 par Brendan Eich pour Netscape Communications Corporation. Il est apparu pour la
première fois dans les versions bétas de Netscape Navigator 2.0.
D’abord appelé LiveScript, il a été rebaptisé JavaScript et est décrit comme un complément à Java dans un
communiqué de presse commun de Netscape et Sun Microsystems, daté du 4 décembre 1995. Cette initiative a
contribué à créer auprès du public une certaine confusion entre les deux langages, proches syntaxiquement mais
pas du tout dans leurs concepts fondamentaux, qui perdure encore aujourd’hui.
Le propos de JavaScript est de manipuler de façon simple des objets, au sens informatique, fournis par une
application hôte.
JavaScript est aujourd’hui défini par la norme ECMA-262, aussi connue sous l’appellation ECMAScript. La troisième
édition d’ECMA-262 parue en 1999 correspond à la version 1.5 de JavaScript. Son implémentation par Microsoft
porte quant à elle le nom de JScript. Il est question d’une version JavaScript 1.6 supportée par la version 1.5 de
Firefox.
Du code JavaScript peut être intégré directement au sein des pages Web, pour y être exécuté sur le poste client.
C’est alors le navigateur Web qui prend en charge l’exécution de ces petits bouts de programmes appelés scripts.
Généralement, JavaScript sert à contrôler les données saisies dans des formulaires HTML, ou à interagir avec le
document HTML via l’interface DOM, fournie par le navigateur (on parle alors parfois d’HTML dynamique). Il est aussi
utilisé pour réaliser des services dynamiques, parfois futiles ou strictement cosmétiques.
99
HTML, Javascript, XHTML & CSS 25. Lexique général
Langage de programmation
Langage artificiel comprenant un ensemble de caractères, de symboles et de mots régis par des règles qui
permettent de les assembler, utilisé pour donner des instructions à un ordinateur.
L’une des principales qualités d’un langage de programmation est la portabilité qui permet à un logiciel développé
dans un langage de programmation à grande portabilité, de fonctionner sur différents types de systèmes
informatiques.
Le terme " langage de programmation " recouvre une vaste panoplie, allant du langage machine formé d’instructions
binaires, aux langages de haut niveau dont la forme se rapproche des langages naturels.
Lien hypertexte
Connexion activable à la demande sur le web, reliant des données textuelles ayant une relation de complémentarité
les unes avec les autres, et ce, où qu’elles se trouvent dans Internet.
Dans les pages Web, la présence d’un lien hypertexte est signalée visuellement par son ancre qui peut être une
partie de phrase ou un mot soulignés ou de couleur différente de celle du texte, ou encore une image, une icône, un
graphique.
Navigateur web
Logiciel client capable d’exploiter les ressources hypertextes et hypermédias du Web ainsi que les ressources
d’Internet dans son ensemble, qui permet donc la recherche d’information et l’accès à cette information.
Internet Explorer, Mozilla Firefox, Netscape Communicator et Opera sont des exemples de navigateurs Web.
Protocole FTP
Protocole de transfert de fichiers qui permet de télécharger une copie de données choisies par l’internaute, d’un
ordinateur à un autre, selon le modèle client-serveur.
Les données téléchargées peuvent prendre la forme de logiciels, de fichiers de toute nature (textes, graphiques,
images, sons, etc.).
Le sigle FTP est également utilisé pour dénommer les applications qui fonctionnent selon le protocole FTP, ainsi que
les transferts effectués grâce à ce protocole.
Référencement
Le référencement est l’ensemble des techniques qui permettent d’inscrire un site dans les moteurs de recherche,
les répertoires ou dans les annuaires. Le référencement est souvent associé avec le positionnement qui, quant à lui,
représente l’art d’optimiser la place du site dans les réponses fournies par les moteurs de recherche.
Le référencement d’un site web se fait, selon l’outil de recherche, en précisant l’adresse URL du site et l’adresse de
courriel du webmestre, ou en ajoutant d’autres informations telles que le titre de la page d’accueil, un texte descriptif,
une catégorie, quelques mots clés, etc.
100
HTML, Javascript, XHTML & CSS 25. Lexique général
URL
Chaîne de caractères normalisés servant à identifier et à localiser des ressources consultables sur Internet et à y
accéder à l’aide d’un navigateur.
Le W3C n’émet pas des normes, mais des recommandations. Sa gestion est assurée conjointement par le
Massachusetts Institute of Technology (MIT) aux États-Unis, le European Research Consortium for Informatics and
Mathematics (ERCIM) en Europe (auparavant l’Institut national de recherche en informatique et en automatique
français (INRIA)) et l’Université Keio au Japon.
Une recommandation peut être mise à jour par errata édité séparément, jusqu’à l’accumulation de suffisamment de
modifications ; une nouvelle version de la recommandation est alors publiée (XML en est aujourd’hui à sa troisième
version). Parfois, une recommandation recommence le processus, comme RDF.
Le W3C publie aussi des remarques informatives qui ne sont pas destinées à être traitées en tant que norme. Le
consortium laisse le soin aux fabricants de suivre les recommandations.
Le World Wide Web (ou le Web, la Toile, WWW ou encore W3), littéralement la " toile (d’araignée) mondiale ", est un
système hypertexte public réparti sur Internet et qui permet de consulter, avec un navigateur Web, des pages Web
mises en ligne dans des sites Web. L’image de la toile vient des hyperliens qui lient les pages Web entre elles.
Le Web a rendu les médias grand public attentifs à Internet. Depuis, il est fréquemment confondu avec ce dernier. Ce
n’est cependant qu’un des systèmes disponibles sur Internet, avec le courrier électronique, Usenet, la messagerie
instantanée, etc. Internet précède le Web de nombreuses années.
101