Introduction au langage (X)HTML-CSS

Transcription

Introduction au langage (X)HTML-CSS
Introduction au langage (X)HTML-CSS
Table des matières
1 La syntaxe du HTML
1.1 Principe d’un langage descriptif . . . . . . . . . . . .
1.2 Les balises HTML . . . . . . . . . . . . . . . . . . .
1.2.1 La syntaxe . . . . . . . . . . . . . . . . . . .
1.2.2 Le cas des accents et des caractères spéciaux
1.2.3 Les commentaires . . . . . . . . . . . . . . .
1.2.4 Les erreurs courantes à ne pas reproduire . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2 Structure d’une page HTML
2.1 Première page HTML . . . .
2.2 Les en-têtes . . . . . . . . . .
2.2.1 Les balises META . .
2.2.2 Autres en-têtes . . . .
2.3 Le corps de la page . . . . . .
2.3.1 Les éléments de base .
2.3.2 Les liens hypertextes .
2.3.3 Utiliser des styles pour
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5
. 5
. 6
. 6
. 7
. 7
. 7
. 9
. 10
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
améliorer la page .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
3
3
3
4
4
5
3 Mettre vos pages en ligne
12
3.1 Avoir un hébergeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.2 Définir la page d’accueil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.3 Gérer le problème de l’encodage UTF-8 . . . . . . . . . . . . . . . . . . . . . . . 13
4 Références
13
2
1
1
LA SYNTAXE DU HTML
La syntaxe du HTML
1.1
Principe d’un langage descriptif
Le HTML est un langage dit descriptif. Celà signifie que le langage décrit quelque chose de
statique, afin d’organiser de l’information lisible par une personne. En HTML, il n’y a pas de
boucles, pas de conditions, pas de compilation. La finalité d’une page web est son code source
HTML. Durant cette formation, nous apprendrons les bases de ce code source, qui peut être
écrit directement dans n’importe quel éditeur de texte.
1.2
1.2.1
Les balises HTML
La syntaxe
La syntaxe du langage HTML est très simple. L’information de la page est organisée par ce
qu’on appelle des balises. Chaque balise peut ne contenir rien, ou contenir du texte, ou contenir
d’autres balises. Une balise est composée de deux éléments : un marqueur d’ouverture et un
marqueur de fermeture.
<n o m d e l a b a l i s e>
Contenu
</ n o m d e l a b a l i s e>
Syntaxe des balises
Une balise peut comporter un ou plusieurs attributs. Ce sont des valeurs qui permettent de
régler son comportement par exemple.
<n o m d e l a b a l i s e a t t r i b u t 1=” v a l e u r 1 ” a t t r i b u t 2=” v a l e u r 2 ”>
Contenu
</ n o m d e l a b a l i s e>
Balises avec attributs
Certaines balises particulières n’ont pas de contenu. Elle se suffisent à elles-même. Le marqueur de début et celui de fin sont fondus dans un seul marqueur. Leur syntaxe est la suivante.
3
1
LA SYNTAXE DU HTML
<n o m d e l a b a l i s e />
<n o m d e l a b a l i s e a t t r i b u t 1=” v a l e u r 1 ” a t t r i b u t 2=” v a l e u r 2 ” />
Balises sans contenu
1.2.2
Le cas des accents et des caractères spéciaux
En HTML, les accents et certains caractères comme &,< ou > doivent être écrits avec un code
particulier. Celà est très contraignant pour les accents et nous apprendrons des astuces pour
outrepasser cette limite. Néanmmoins, vous devez connaı̂tre la manière de s’y prendre. Voici
dans l’ordre, le à, le é, le è, le ô, le &, le < et le > :
&a g r a v e ;
&e a c u t e ;
&e g r a v e ;
&o c i r c ;
&amp ;
&l t ;
&g t ;
Les accents en HTML
Vous trouverez aisément sur internet la liste des tous les caractères spéciaux disponibles.
1.2.3
Les commentaires
Les commentaires servent à mettre du texte qui n’apparaı̂t pas dans le navigateur. C’est
utile pour décrire le code source. Leur syntaxe est la suivante.
< !−− Texte de v o t r e commentaire −−>
< !−− Des commentaires
plus longs
a v e c d e s r e t o u r s à l a l i g n e −−>
Les commentaires
4
2
STRUCTURE D’UNE PAGE HTML
Attention : Vous ne pouvez pas utiliser de commentaires à l’intérieur même d’une balise ou
d’un attribut. Ils doivent être impérativement placés comme un contenu dans une balise. En
revanche, les commentaires peuvent contenir des balises, qui ne seront bien sûr pas prises en
compte.
1.2.4
Les erreurs courantes à ne pas reproduire
Vous pouvez voir sur internet de trop nombreux exemples à ne pas respecter. Notez en
particulier que :
– Les noms des balises et des attributs doivent être écrits en minuscules.
– Les balises sans contenu doivent impérativement être fermées avec />.
– Vous devez mettre les valeurs des attributs entre des double-quotes.
Les navigateurs peuvent dans une certaine mesure outrepasser ces erreurs et afficher un résultat
correct, néanmmoins, le document ne respecte dans ce cas pas les standards et ses données sont
mal formatées.
2
2.1
Structure d’une page HTML
Première page HTML
L’ensemble de la page HTML doit être contenu à l’intérieur d’une balise <html>. Nous
verrons qu’il existe parfois des choses avant cette balise mais il ne s’agit pas de balises. Cette
balise doit contenir deux autres balises, <head> et <body> dans cet ordre et rien d’autre. Notez
que le HTML ne tient pas compte des retours à la ligne, des tabulations et des suites d’espaces
(si vous tapez 3 espaces, un seul sera pris en compte). Vous pouvez à votre guise organiser les
balises les unes par rapport aux autres avec des retours à la ligne et des espaces.
Ouvrez un éditeur de texte (gedit par exemple) et tapez un code similaire à celui-ci :
<html>
<head>
<t i t l e>Ma p r e m iè r e page HTML</ t i t l e>
</head>
<body>
V o i c i du t e x t e .
Des r e t o u r s &a g r a v e ; l a l i g n e pour v o i r l e
r&e a c u t e ; s u l t a t dans l e n a v i g a t e u r .
Vous
v e r r e z que HTML ne prend pas en
compte vos r e t o u r s &a g r a v e ; l a l i g n e e t vos
espaces .
</body>
</html>
Première page HTML
5
2
STRUCTURE D’UNE PAGE HTML
Enregistrez ceci dans un fichier appelé par exemple mapage.htm. Enregistrez ce fichier dans
un répertoire de votre compte INP-Net. Puis ouvrez un navigateur, effectuez l’action Fichier
-> Ouvrir un fichier et sélectionnez votre fichier. Admirez le résultat.
2.2
Les en-têtes
On appelle en-têtes le contenu de la balise <head>. Les informations que cette section contient
n’apparaı̂tront pas directement sur la page. Comme vous avez pu le voir, le navigateur affiche
le contenu de la balise <title> dans la barre de titre de sa fenêtre, mais pas sur la page.
C’est un choix des codeurs du navigateur et en rien une norme. Ces informations, appelées
métadonnées, servent à renseigner le navigateur et le réseau sur divers éléments qui n’ont pas
besoin d’apparaı̂tre sur la page.
Par exemple, le nom de l’auteur, ou bien une liste de mot-clés, en encore la période de validité
de la page. Ce genre d’informations s’écrivent à l’aide de la balise <meta>. Ces informations sont
utiles pour les moteurs de recherche par exemple.
Ces en-têtes servent aussi à lier à la page des fichiers ou du code contenant des styles CSS ou
des programmes en Javascript par exemple. Celà se fait à l’aide de balises rel,style ou encore
<script>.
2.2.1
Les balises META
Les balises <meta> sont riches et l’utilité de certaines est parfois discutable. Voici quelques
exemples :
<html>
<head>
<t i t l e>Les b a l i s e s META</ t i t l e>
< !−− <meta http−e q u i v=” Content−Type”
content=” t e x t / html ; c h a r s e t=i s o −8859−15” /> −−>
<meta http−e q u i v=” E x p i r e s ” content=” 0 ” />
<meta name=” Author ” content=” Votre Nom” />
<meta name=” keywords ” content=” trustonme html xhtml
f o r m a t i o n f o r m a t i o n s n e t 7 INP−Net ” />
<meta name=” d e s c r i p t i o n ” content=” Formation pour l a
c r é a t i o n de p a g e s Web” />
</head>
<body>
...
é
</body>
</html>
Les balises META
6
2
STRUCTURE D’UNE PAGE HTML
Tapez ces balises dans votre page ou copiez-les dans le fichier balisesmeta.htm. Enregistrez
dans un fichier différent du précédent puis ouvrez-le dans un nouvel onglet de votre navigateur,
afin de conserver l’autre affiché pour le moment. Faites un clic droit dans la première page et
puis cliquez sur ”Informations de la page”. Une fenêtre s’ouvre. Faites de même sur la seconde
page. Vous pouvez voir que le navigateur lit les données Meta et vous permet de les consulter.
Vous pouvez aussi voir qu’une balise est commentée. Cette balise permet de décrire l’encodage utilisé pour la page. L’encodage est la manière dont les caractères sont codés par des bits.
L’encodage n’a aucune importance tant que vous n’utilisez que des caractères ASCII, soit un
jeu très limité de caractères, sans accents. Les accents ne sont utilisables proprement que via
les codes HTML décrit précédemment. Nous allons maintenant utiliser une astuce pour afficher
correctement de vrai accents.
Décommentez la balise <meta> concernée. Puis taper des mots avec accents dans la balise
<body>. Actualisez votre page et observez le résultat. A présent, remplacez la balise <meta>
concernée par <meta http-equiv="Content-Type" content="text/html ; charset=UTF-8"
/>. Notez que seule la valeur de l’attribut content change. Enregistrez, actualisez la page et
observez le résultat. Vos accents s’affichent correctement dans un cas et pas dans l’autre. Celà
dépend de l’encodage de votre fichier. Normalement, les éditeurs de texte vous permettent de
choisir l’encodage au moment d’enregistrer le fichier.
Dans le cas des sites en ligne, si vous voulez utiliser un encodage UTF-8, une manipulation
supplémentaire est nécessaire. Si vous utilisez l’encodage iso8859, vous ne devriez avoir aucun
problème. Nous décrirons la manipulation pour UTF-8 plus tard. Si vous utilisez windows, il
est pour le moment recommandé d’utiliser l’encodage iso, car c’est l’encodage par défaut.
2.2.2
Autres en-têtes
Vous avez pu constater dans les en-têtes la présence de la balise <title>. Cette balise est
obligatoire. Nous ajouterons d’autres en-têtes au cours de la formation.
2.3
Le corps de la page
2.3.1
Les éléments de base
Vous l’avez deviné, le corps de la page est tout ce qui se trouve dans la balise body. Nous
allons décrire le contenu à l’aide de différents délimiteurs. Voici une page d’exemple.
<html>
<head>
<t i t l e>F a i r e un c o r p s à n o t r e page</ t i t l e>
</head>
<body>
<h1>Un grand t i t r e</h1>
<h2>Un t i t r e p l u s p e t i t</h2>
<h6>Le p l u s p e t i t t i t r e</h6>
7
2
STRUCTURE D’UNE PAGE HTML
<div>Du t e x t e l i b r e</ div>
<div s t y l e=” t e x t −a l i g n : c e n t e r ; ”>
Du t e x t e c e n t r é <br />
Avec r e t o u r à l a l i g n e
</ div>
<div s t y l e=” t e x t −a l i g n : r i g h t ; ”>Du t e x t e a l i g n é à
d r o i t e</ div>
< !−− Un s é p a r a t e u r −−>
<hr />
<div>
On peut a u s s i r e n d r e l e t e x t e <span
s t y l e=” f o n t −w e i g h t : b o l d ; ”>g r a s</span> ,<span
s t y l e=” f o n t −s t y l e : i t a l i c ; ”> i t a l i q u e</span> ou e n c o r e
<span
s t y l e=” t e x t −d e c o r a t i o n : u n d e r l i n e ; ”>s o u l i g n é .</span>
</ div>
<div>
<p>On peut u t i l i s e r d e s p a r a g r a p h e s</p>
<p>I n t e r has ruinarum v a r i e t a t e s a N i s i b i quam t u e b a t u r
a c c i t u s V r s i c i n u s , c u i nos o b s e c u t u r o s i u n x e r a t
i m p e r i a l e praeceptum , d i s p i c e r e l i t i s e x i t i a l i s
c e r t a m i n a c o g e b a t u r abnuens e t reclamans , adulatorum
o b l a t r a n t i b u s turmis , b e l l i c o s u s s a n e m i l e s q u e semper
e t militum d u c t o r s e d f o r e n s i b u s i u r g i i s l o n g e
d i s c r e t u s , q u i metu s u i d i s c r i m i n i s a n x i u s cum
accusatores quaesitoresque subditivos s i b i
c o n s o c i a t o s ex isdem f o v e i s c e r n e r e t emergentes , quae
clam palamve a g i t a b a n t u r , o c c u l t i s Constantium
l i t t e r i s e d o c e b a t i n p l o r a n s s u b s i d i a , quorum metu
tumor n o t i s s i m u s C a e s a r i s e x h a l a r e t .</p>
<p><span s t y l e=” c o l o r :#0000 f f ”>Et m e t t r e de l a
c o u l e u r</span></p>
</ div>
</body>
</html>
Corps de la page
Ce code source est disponible dans le fichier corps.htm. Vous pouvez constater que pour
les styles de texte, comme la couleur, la syntaxe est assez lourde. Nous allons voir plus loin des
moyen plus aisé de gérer celà.
Vous voyez qu’il y a un certain nombre de conteneurs <div>. Les DIV sont les conteneurs de
base. Il est déconseillé de mettre du texte libre en dehors d’un DIV, car celà rend sa manipulation par des styles moins facile. Vous comprendrez celà plus tard.
8
2
2.3.2
STRUCTURE D’UNE PAGE HTML
Les liens hypertextes
Toute la magie du web vient du fameux lien hypertexte. Un lien hypertexte pointe vers un
emplacement dans une page web. Il est bien écrit un emplacement. En effet, vous pouvez faire
pointer un lien sur la page dans laquelle il se trouve, pour orienter le visiteur sur un paragraphe
particulier lorsque la page est longue, ou bien pointer vers une autre page web, ou bien encore
pointer vers un emplacement dans une autre page web. Ces emplacements sont appelés des
ancres.
Les liens se gèrent avec la balise <a>. Il y a deux types de ces balises. Celles qui pointent vers
une page ou une ancre et celles qui définissent une ancre vers laquelle d’autres liens peuvent
pointer.
Pour définir une ancre, on utilise la syntaxe <a id="nomdelancre"></a>.
Pour définir un lien, on utilise une des trois syntaxes suivantes, selon le besoin :
– <a href="urldelapage">Texte du lien</a>
– <a href="#nomdelancre">Texte du lien</a>
– <a href="urldelapage#nomdelancre">Texte du lien</a>
urldelapage est l’adresse de la page. Ce peut être soit une page désignée par un chemin relatif
par rapport à la page consultée (comme sousrepertoire/autrepage.htm) ou une URL externe
(comme http ://www.google.fr).
Faisons un petit test. Créons deux fichiers appelés page1.htm et page2.htm dans le même
répertoire et plaçons-y respectivement les codes suivants.
<html>
<head>
<t i t l e>Une p r e m iè r e page</ t i t l e>
</head>
<body>
<a href=” h t t p : / /www. g o o g l e . f r ”>Un l i e n v e r s Google</a>
<br />
<a href=” page2 . htm”>Un l i e n v e r s une page de mon s i t e</a>
</body>
</html>
Page numéro 1
<html>
<head>
<t i t l e>Une deuxième page</ t i t l e>
</head>
<body>
9
2
STRUCTURE D’UNE PAGE HTML
<a href=” page1 . htm”>Retour v e r s l a p r e m iè r e page</a>
</body>
</html>
Page numéro 2
Tester un peu tout ça en ouvrant page1.htm dans vote navigateur. Pour tester le comportement des ancres, je vous invite à consulter le fichier ancres.htm. Son listing n’est pas présenté
ici en raison de la grande quantité de texte qu’il contient.
2.3.3
Utiliser des styles pour améliorer la page
Nous allons ici ajouter une balise d’en-tête. C’est une balise particulière puisqu’elle contient
du texte, qui n’est pas du HTML mais du langage CSS comme Cascading Style Sheet ou feuille
de style en cascade. Bien que ce terme puisse effrayer, CSS est un langage simple et fort puissant.
Jugez-en par vous-même avec le listing suivant, que vous trouverez dans le fichier css.htm.
<html>
<head>
<t i t l e> U t i l i s a t i o n de s t y l e s CSS</ t i t l e>
<s t y l e content=” t e x t / c s s ”>
/∗ C e c i va a f f e c t e r t o u t e s l e s b a l i s e s ” body ” . I l n ’ y en
a qu ’ une c e q u i s i m p l i g i e l e problème ∗/
body {
/∗ C e c i va donner une c o u l e u r de fond . ∗/
background−c o l o r :# b b b b f f ;
f o n t −s i z e : 1 0 pt ;
f o n t −f a m i l y : Verdana ;
c o l o r :#220000;
}
/∗ I c i on s ’ o i c c u p e du s t y l e par dé f a u t d e s b a l i s e s
c o u r a n t e s ∗/
div {
/∗ T a i l l e de l a marge en haut , à d r o i t e , en bas , à
gauche ∗/
/∗ La marge e s t l a d i s t a n c e e n t r e l e bord du d i v e t
c e q u i l ’ e n t o u r e ∗/
margin : 1 0 px 100 px 10 px 100 px ;
}
h1 {
t e x t −d e c o r a t i o n : u n d e r l i n e ;
}
10
2
STRUCTURE D’UNE PAGE HTML
/∗ On d é f i n i t i c i c e qu ’ on a p p e l l e d e s c l a s s e s ∗/
/∗ Celà permet d ’ a f f e c t e r un s t y l e p a r t i c u l i e r à
c e r t a i n s é lé m e n t s ∗/
. encadre {
margin : 5 0 px 200 px 50 px 200 px ;
/∗ Le padding e s t l a d i s t a n c e e n t r e l e t e x t e e t l e s
b o r d s du DIV ∗/
padding : 2 0 px ;
/∗ C e c i c r é e une b o r d u r e p l e i n de 2 p i x e l s
d ’ é p a i s s e u r e t de c o u l e u r b l a n c h e ∗/
b o r d e r : 2 px s o l i d # f f f f f f ;
/∗ On a l i g n e l e t e x t au m i l i e u ∗/
t e x t −a l i g n : c e n t e r ;
}
/∗ d e s l i e n s h y p e r t e x t p l u s sympas ∗/
/∗ S t y l e du l i e n par dé f a u t ∗/
a {
c o l o r :#550000;
t e x t −d e c o r a t i o n : none ;
}
/∗ S t y l e du l i e n s i dé j à v i s i t é ∗/
a: visited {
c o l o r :#550000;
t e x t −d e c o r a t i o n : none ;
}
/∗ S t y l e du l i e n l o r s du s u r v o l avec l e c u r s e u r de l a
s o u r i s ∗/
a : hover {
c o l o r :# aa0000 ;
t e x t −d e c o r a t i o n : u n d e r l i n e ;
}
</ s t y l e>
</head>
<body>
<h1>Uraphe</h1>
<div>
Sed quid e s t quod i n hac c a u s a maxime homines a d m i r e n t u r
e t r e p r e h e n d a n t meum c o n s i l i u m , cum ego idem a n t e a
multa d e c r e v e r i m , que magis ad h o m i n i s d i g n i t a t e m
quam ad r e i p u b l i c a e n e c e s s i t a t e m p e r t i n e r e n t ?
11
3
METTRE VOS PAGES EN LIGNE
S u p p l i c a t i o n e m quindecim dierum d e c r e v i s e n t e n t i a
mea . Rei p u b l i c a e s a t i s e r a t t o t dierum quot C . Mario
; d i s i m m o r t a l i b u s non e r a t e x i g u a eadem g r a t u l a t i o
quae ex maximis b e l l i s . Ergo i l l e cumulus dierum
hominis e s t d i g n i t a t i t r i b u t u s .
</ div>
<div c l a s s=” e n c a d r e ”>
Ce d i v e s t a f f e c t é à une c l a s s e CSS pour l u i donner un
l o o k d i f f é r e n t . <a href=” ”>Des l i e n s p l u s sympas</a>
</ div>
<h1>Un a u t r e p a r a g r a p h e</h1>
<div>
A d o l e s c e b a t autem obstinatum propositum e r g a haec e t
s i m i l i a multa s c r u t a n d a , s t i m u l o s admovente r e g i n a ,
quae a b r u p t e m a r i t i f o r t u n a s t r u d e b a t i n e x i t i u m
p r a e c e p s , cum eum p o t i u s l e n i t a t e f e m i n e a ad
v e r i t a t i s h u m a n i t a t i s q u e viam r e d u c e r e u t i l i a
suadendo d e b e r e t , ut i n Gordianorum a c t i b u s
f a c t i t a s s e Maximini t r u c u l e n t i i l l i u s i m p e r a t o r i s
r e t t u l i m u s coniugem .
</ div>
</body>
</html>
Utilisation des styles CSS
Comme vous pouvez le voir, celà libère le code HTML de toute description de couleur et
de disposition. C’est la philosophie du Web de l’avenir. Le code (X)HTML définit des données,
puis on les met en forme avec d’autres outils. Ici, l’outil est le langage CSS. Celà suffit à gérer
un site web même riche, car un site web n’utilise jamais trop de styles différents, sans quoi il
deviendrait très vite illisible.
Il est possible d’utiliser CSS directement dans les balises (X)HTML à l’aide de l’attribut style.
Consulter la sous-section ”corps de la page” pour voir de petits exemples avec les textes en gras,
italique et souligné. Par exemple, avoir un bout de texte rouge souligné, on peut utiliser <span
style="color :#ff0000 ;text-decoration :underline ;">Du texte rouge souligné</span>.
3
3.1
Mettre vos pages en ligne
Avoir un hébergeur
Pour mettre vos pages en ligne, vous devez disposer d’un hébergeur. INP-Net vous offre un
service d’hébergement avec votre compte. Déposez simplement vos pages web dans le répertoire
www public de votre compte INP-Net. Vous accéder à votre site et à vos pages via l’adresse
http ://bde.enseeiht.fr/~votrelogin/unepage.htm.
12
4
3.2
RÉFÉRENCES
Définir la page d’accueil
Par mesure de sécurité et de confort, il convient que l’adresse http ://bde.enseeiht.fr/~votrelogin/
tombe directement sur une page, de surplus celle de votre choix. Pour ce faire, il suffit de placer
un fichier nommé index.htm ou index.html dans le répertoire www public. Ce fichier sera la
page d’accueil.
3.3
Gérer le problème de l’encodage UTF-8
Si vos fichiers sont encodés en UTF-8, il est possible que les accents s’affichent mal. Si vous
rencontrez ce problème, vous pouvez éditer le fichier .htaccess (ou le créer s’il n’existe pas) et
y ajouter les lignes :
AddCharset UTF-8 .html
AddCharset UTF-8 .htm
4
Références
13