La meilleure façon de se faire une idée de ce
qu'est le code source, c'est d'aller voir ! Regardez le code source de cette
page en cliquant sur "Affichage" puis "source" (l'intitulé
exact du menu dépend de votre navigateur).
Ca y est ? Je sens dans votre regard que vous êtes plutôt
dégouté :-)
A priori cela n'a pas l'air très motivant. Mais dans
certains cas on aura besoin de modifier directement le code source :
- pour y inclure du code php
-
pour corriger des bugs (lorsqu'un bloc est trop
petit pour le voir dans l'éditeur WYSIWYG par exemple)
-
pour ajouter des éléments qui n'existe
pas dans l'éditeur utilisé.
Les balises
Le langage HTML est composé de balises.
Une balise est un mot clé entouré des symboles < et >.
On écrit un mot clé pour ouvrir la balise et le même
mot clé avec un "/" en plus pour la fermer.
Par exemple lorsque j'écris <strong>coucou</strong>,
cela signifie que "coucou" doit être mis en valeur. Cela
se traduit par l'écriture en gras du texte dans la plupart des navigateurs.
<strong> est la balise ouvrante et </strong> la balise fermante.
Le squelette d'une page
Toute page commence par la balise <html>
et se termine par la balise </html>.
Ensuite on trouve <head> et </head>.
Entre ces deux balises on écrira les informations d'entête.
Elles sont invisibles pour le lecteur mais apportent des informations pour
le logiciel navigateur ou pour les moteurs de recherche. Cela peut être
une description de la page, des mots clés, le nom de l'auteur, le
type de police, le nom de l'éditeur utilisé pour créer
la page, ...
Vient ensuite la balise la plus importante
qui va délimiter le code qui génèrera la partie visible
de la page : <body> et </body>.
Ce qui donne donc pour la page :
<html>
<head>
contenu de l'entête
</head>
<body>
Contenu du corps de la page
</body>
</html>
Quelques balises
Voici quelques balises qui vous permettront
de repérer les éléments les plus importants d'une page
:
| <table></table> |
Tableau. Tout ce qui se trouve entre ces balises fait partie d'un
tableau. |
| <tr></tr> |
ligne d'un tableau |
| <td></td> |
à l'intérieur d'une ligne, délimite chaque cellule |
| <form></form> |
formulaire |
| <li></li> |
liste à puce |
| <a></a> |
lien hypertexte |
| <p></p> |
Paragraphe |
| <center></center> |
centrer du texte (balise abandonnée en XHTML Strict) |
| <br /> |
passer à la ligne. Pas de balise fermante, donc on rajoute
un / en XHTML |
| <title></title> |
permet de spécifier le titre de la page. |
Les attributs
Toutes ces balises sont accompagnées
d'attributs. En effet, tous les tableaux n'ont pas la même apparence.
Pour les différencier on ajoute des mots clés que l'on appelle
attributs.
Exemples : un tableau avec une bordure de
1 pixel s'écrira :
<table border="1">
Contenu du tableau </table>
Un lien hypertexte s'écrira :
<a href="toto.htm">La
page de toto</a>
Rappel : en XHTML on n'utilise pas les attributs de mise en page. Dans l'exemple ci-dessus on n'écrirait pas "border=1", mais on mettrait cette information dans une feuille de style.
Exercice :
Affichez le code source de cette page et essayez
de repérer quelques balises.
Vous pouvez voir un code source (une ancienne version de
cette page) commenté
tout en bas de cette page en cliquant
ici.
Insérer un bloc
Voyons comment créer un bloc avec le code source. On peut l'écrire entièrement
à la main ou alors utiliser une feuille de style. Voyons comment
faire à la main. Nous verrons comment faire plus simple
et plus efficacement avec une feuille de style dans un autre chapitre. Il est donc inutile de passer trop de temps sur ce paragraphe, prenez le comme une information pour mieux comprendre les feuilles de styles dans le prochain chapitre.
La balise qui permet d'insérer le bloc
est <div>. L'attribut Id permet de spécifier un nom. Donc pour
insérer un bloc on écrit :
<div id="bloc1">
contenu du bloc </div>
Tout ce qui doit se trouver dans le bloc
(tableau, texte, liste à puces, ...) doit se trouver
entre les balises <div> et </div>.
Cela n'a pas vraiment d'intérêt
de mettre un bloc juste pour cela. Il faut lui ajouter des attributs.
On note les attributs après le mot-clé "style".
<div id="bloc2" style="position:absolute;
width:200px; height:115px; background-color: #996600; border: 1px solid #000000;
left:0;top:190">contenu du bloc</div>
Explications :
position:absolute indique que le bloc est placé
par rapport au coin supérieur gauche de la page. On aurait pu mettre
"relative" à la place de "absolute", dans ce cas
la position aurait été donné par rapport à l'endroit
de la page où est inséré la balise <div>. Si on
ne spécifie pas la position avec "top" et "left"
le bloc est placé à l'endroit où se trouve la balise
<div>.
width:200px et height:115px spécifie
la largeur et la hauteur du bloc.
background-color: #996600 spécifie la couleur
de l'arrière-plan du bloc.
border: 1px solid #000000 indique une bordure de largeur
1, en trait plein et de couleur noire (#000000).
left:0;top:190 donne la position du bloc dans son conteneur (un autre bloc, la page, ...). 0 pixel à partir de la gauche et 190 depuis le haut.
Il existe bien sur beaucoup d'autres paramètres pour
les blocs. Nous verrons comment affiner cela et comment créer des
blocs de façon plus simple dans le chapitre sur les feuilles de style.
L'affichage "Balises HTML" de Nvu
En bas du composeur Mozilla / Nvu vous pouvez voir
4 onglets qui permettent de voir différents affichages de la page.
Vous avez déjà utilisé l'affichage "normal"
et l'affichage "Source". Regardez l'affichage "Balises HTML".
C'est un intermédiaire entre l'affichage
normal et le code source. Les noms des balises sont affichés de manière
graphique mais sans les différents attributs. On peut cliquer sur
la balise pour obtenir les propriétés et pour en rajouter.
Les commentaires ont été rajoutés
en rouge.
En particulier, vous pouvez remarquez l'espace suivi d'un slash à
la fin des balises qui n'ont pas de balise fermante.
<html>balise d'ouverture de la page web
<head>balise d'ouverture de l'entête
<meta http-equiv="content-Language" content="fr" />indique
que ce site est en français
<meta http-equiv="content-Type" content="text/html;
charset=iso-8859-1" />type d'encodage
des polices de caractère
<title>Formations</title>titre de
la page
<link href="style.css" rel="stylesheet" type="text/css" />lien
vers la feuille de style
<script type="text/JavaScript">début
d'un script javascript pour gérer les calques (inséré
par dreamweaver)
<!--
function MM_reloadPage(init) { //reloads the window if Nav4 resized
if (init==true) with (navigator) {if ((appname=="Netscape")&&(parseInt(appVersion)==4))
{
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage;
}}
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH)
location.reload();
}
MM_reloadPage(true);
//-->
</script>fin du script
</head>fin de l'entête
<body>début
du corps de la page.
<div id="top1" style="position:absolute; width:100%;
height:15; z-index:3; left: 0px; top: 0px; background-color: #CC66FF;
layer-background-color: #CC66FF; border: 1px none #000000; overflow:
visible;"> calque du menu supérieur.
les débordements de texte (overflow) sont visibles et le calque
se superpose à tous les autres puisqu'il contient la valeur de
z-index la plus élevée
<table width="100%" border="0" align="left"
cellpadding="0" cellspacing="0" bgcolor="#CC66FF">
<tr>tableau qui contient le menu supérieur.
Il prend toute la largeur de la page (100%), pas de bordure, alignement
à gauche, pas de marge, pas d'écartement entre les cellules.
La balise <tr> indique le début de la ligne. A noter
que cette façon de faire n'est plus valide en XHTML.
<td width="39%"> <p class="text"> 19-08-2003
: 10h46 min </p></td>la balise <td>
indique le début d'une cellule dont la largeur est de 39%. class="text"
fait référence au style nommé "text"
de la feuille de style attachée à cette page. Cela permet
de mettre en forme le texte qui suit. </td> termine la première
cellule.
<td width="14%">ouverture
de la cellule suivante
<a href="formation_web.php" class="text">cette
balise crée un lien vers formation_web.php ...
<strong>Formation</strong></a> ...
et le texte du lien sera "Formation" écrit en gras
</td> fin de la deuxième
cellule ... ainsi de suite
<td width="13%"><a href="script_php.php"
class="text"><strong>Script PHP</strong></a></td>
<td width="14%"><a href="aide.php" class="text"><b>Participez
:-)</b></a></td>
<td width="10%" class="text"><a href="cdprof.php"><strong>A
propos </strong></a></td>
<td width="10%" class="text"><a href="contact.php"><strong>Contact</strong></a></td>
</tr>
</table>fin du tableau
</div>fin du calque
<div id="top2" style="position:absolute; width:790px;
height:25; z-index:2; left: 0; top: 16; overflow: hidden;">
calque du deuxième menu horizontal
<table width="790" border="0" cellspacing="0"
bgcolor="#FF9966">ce qui suit est
un très long code pour le deuxième menu horizontal. La
longueur de ce code est du au fait que les boutons soient en flash
<!--DWLayoutTable-->
<tr>
<td width="102" height="25"> <div align="center">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0"
width="100" height="23" align="absmiddle">
<param name="BGCOLOR" value="#FF9966">
<param name="movie" value="accueil.swf">
<param name="quality" value="high">
<param name="base" value=".">
<embed src="accueil.swf" width="100" height="23"
align="absmiddle" base="." quality="high"
pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"
type="application/x-shockwave-flash" bgcolor="#FF9966"
></embed>
</object>
</div></td>
<td width="102"> <div align="center">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0"
width="100" height="23" align="absmiddle">
<param name="BGCOLOR" value="#FF9966">
<param name="movie" value="contenu.swf">
<param name="quality" value="high">
<param name="base" value=".">
<embed src="contenu.swf" width="100" height="23"
align="absmiddle" base="." quality="high"
pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"
type="application/x-shockwave-flash" bgcolor="#FF9966"
></embed>
</object>
</div></td>
<td width="102"> <div align="center">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0"
width="100" height="23" align="absmiddle">
<param name="BGCOLOR" value="#FF9966">
<param name="movie" value="articles.swf">
<param name="quality" value="high">
<param name="base" value=".">
<embed src="articles.swf" width="100" height="23"
align="absmiddle" base="." quality="high"
pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"
type="application/x-shockwave-flash" bgcolor="#FF9966"
></embed>
</object>
</div></td>
<td width="102"> <div align="center">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0"
width="100" height="23" align="absmiddle">
<param name="BGCOLOR" value="#FF9966">
<param name="movie" value="liens.swf">
<param name="quality" value="high">
<param name="base" value=".">
<embed src="liens.swf" width="100" height="23"
align="absmiddle" base="." quality="high"
pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"
type="application/x-shockwave-flash" bgcolor="#FF9966"
></embed>
</object>
</div></td>
<td width="102"> <div align="center">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0"
width="100" height="23" align="absmiddle">
<param name="BGCOLOR" value="#FF9966">
<param name="movie" value="obtenir.swf">
<param name="quality" value="high">
<param name="base" value=".">
<embed src="obtenir.swf" width="100" height="23"
align="absmiddle" base="." quality="high"
pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"
type="application/x-shockwave-flash" bgcolor="#FF9966"
></embed>
</object>
</div></td>
<td width="102"> <div align="center">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0"
width="100" height="23" align="absmiddle">
<param name="BGCOLOR" value="#FF9966">
<param name="BASE" value=".">
<param name="movie" value="telecharger.swf">
<param name="quality" value="high">
<embed src="telecharger.swf" width="100" height="23"
align="absmiddle" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer"
type="application/x-shockwave-flash" bgcolor="#FF9966"
base="."></embed></object>
</div></td>
<td width="102"> <div align="center">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0"
width="100" height="23" align="absbottom">
<param name="BGCOLOR" value="#FF9966">
<param name="movie" value="bonus.swf">
<param name="quality" value="high">
<param name="base" value=".">
<embed src="bonus.swf" width="100"
height="23" align="absbottom" base="."
quality="high" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"
type="application/x-shockwave-flash" bgcolor="#FF9966"
></embed>
</object>
</div></td>
</tr>
</table>fin du tableau du menu
</div>fin du calque du menu
<div id="menuweb" class="menuweb"> début
du calque du menu vertical
<p><a href="formation_web1.php"><br /><br>
fait passer le texte à la ligne
Introduction</a></p>
<p><a href="formation_web2.php">Quelques règles</a></p><p>
crée un paragraphe
<p><a href="formation_web3.php">Quels
logiciels ?</a></p>lien vers "quels
logiciels ?"
<p><a href="formation_web4.php">Mise en page</a>
</p>
<p><a href="formation_web5.php">Les liens hypertextes</a></p>
<p><a href="formation_web6.php">Transférer</a></p>
<p><a href="formation_web7.php">Les tableaux</a></p>
<p><a href="/formation_web8.php">Insérer
des images</a></p>
<p><a href="/formation_web9.php">Utilisation des
calques</a></p>
<p><a href="/formation_web10.php">Le code source</a></p>
<p>Les feuilles de style</p>
<p>Insérer un formulaire</p>
<p>Insérer des objets :</p>
<p>Les meta tags</p>
<p>Les cadres : oublier ?</p>
<p>Introduction au PHP</p>
<p>Premières pas PHP</p>
<p>Manipuler les dates</p>
<p>Les bases de données</p>
<p>Les fonctions</p>
<p> </p>
</div>fin du calque du menu vertical
<div id="Layer1" class="formationweb"> calque principal. Il ne contient aucun paramètre
car ceux-ci sont définis par la feuille de style grâce
à l'attribut class. Le style utilisé se nomme "formationweb"
<h1><a name="Haut"></a>Le code source</h1>h1
est la première entête
<blockquote> tabulation
<div align="justify">le paragraphe
est justifié (n'est plus valide en XHTML).
<p>La meilleure façon de se faire une idée
de ce qu'est le les caractères accentués
sont remplacés par des codes
code source, c'est d'aller voir ! Regardez le code source de cette page
en cliquant sur "Affichage" puis "source"
(l'intitulé
exact du menu dépend de votre navigateur).</p>
<p>Ca y est ? Je sens dans votre regard que vous
êtes plutôt
dégouté :-)</p>
<p>A priori cela n'a pas l'air très motivant. Mais
dans certains
cas on aura besoin de modifier directement le code source :</p>
</div>
<ul>début d'une liste
<li>pour y inclure du code php</li>première
puce
<li>
<div align="justify">pour corriger des bugs (lorsqu'un
calque est trop
petit pour le voir dans l'éditeur WYSIWYG par exemple)</div>
</li>
<li>
<div align="justify">pour ajouter des éléments
qui n'existe
pas dans l'éditeur utilisé. Par exemple le composeur
de
Mozilla ne permet pas d'intégrer des calques ou des feuilles
de style sans passer par le code source.</div>
</li>
</ul>
<p class="titre-lien">Les balises</p>
<p align="justify" class="text">Le langage
html est composé de balises.
Une balise est un mot clé entouré des symboles
< et >.
On écrit un mot clé pour ouvrir la balise et le
même
mot clé avec un "/" en plus pour la fermer.</p>
<p align="justify" class="text">Par
exemple lorsque j'écris <em><b>coucou</b></em>,
cela signifie que "coucou" doit être écrit
en gras.
<b> est la balise ouvrante et </b> la balise
fermante.</p>
<p align="justify" class="titre-lien">Le
squelette d'une page</p>
<p align="justify" class="text">Toute page
commence par la balise <html>
et se termine par la balise </html>.</p>
<p align="justify" class="text">Ensuite on
trouve <head> et </head>.
Entre ces deux balises on écrira les informations d'entête.
Elles sont invisibles pour le lecteur mais apportent des informations
pour
le logiciel navigateur ou pour les moteurs de recherche. Cela peut être
une description de la page, des mots clés, le nom de l'auteur,
le
type de police, le nom de l'éditeur utilisé pour
créer
la page, ...</p>
<p align="justify" class="text">Vient
ensuite la balise la plus importante
qui va délimiter le code qui génèrera
la partie visible
de la page : <body> et </body>.</p>
<p align="justify" class="text">Ce qui donne
donc pour la page :</p>
<p align="justify" class="text"><html><br>
<head><br>
contenu de l'entête<br>
</head><br>
<body><br>
Contenu du corps de la page<br>
</body><br>
</html></p>
<p align="justify" class="titre-lien">Quelques
balises</p>
<p align="justify" class="text">Voici quelques
balises qui vous permettront
de repérer les éléments les plus importants
d'une page
:</p>
<table width="600" border="1" cellpadding="1"
cellspacing="0" class="text">
<tr>
<td><TABLE></TABLE></td>
<td>Tableau. Tout ce qui se trouve entre ces balises
fait partie d'un
tableau. </td>
</tr>
<tr>
<td><tr></tr></td>
<td>ligne d'un tableau</td>
</tr>
<tr>
<td><td></td></td>
<td>à l'intérieur d'une ligne,
délimite chaque cellule</td>
</tr>
<tr>
<td><form></form></td>
<td>formulaire</td>
</tr>
<tr>
<td><li></li></td>
<td>liste à puce</td>
</tr>
<tr>
<td><a></a></td>
<td>lien hypertexte</td>
</tr>
<tr>
<td><p></p></td>
<td>Paragraphe</td>
</tr>
<tr>
<td><center></center></td>
<td>centrer du texte</td>
</tr>
<tr>
<td><br></td>
<td>passer à la ligne. Pas de balise fermante.</td>
</tr>
<tr>
<td><title></title></td>
<td>permet de spécifier le titre de la page.</td>
</tr>
</table>
<p align="justify" class="titre-lien">Les
attributs</p>
<p align="justify" class="text">Toutes ces
balises sont accompagnées
d'attributs. En effet, tous les tableaux n'ont pas la même
apparence.
Pour les différencier on ajoute des mots clés
que l'on appelle
attributs.</p>
<p align="justify" class="text">Exemples
: un tableau avec une bordure de
1 pixel s'écrira :</p>
<p align="justify" class="text"><table
border="1"> Contenu
du tableau </table></p>
<p align="justify" class="text">Un lien hypertexte
s'écrira :</p>
<p align="justify" class="text"><a
href="toto.htm">La page
de toto</a></p>
<p align="justify" class="text"><strong>Exercice
:</strong></p>
<p align="justify" class="text">Affichez le
code source de cette page et essayez
de repérer quelques balises.</p>
<p align="justify" class="titre-lien">Insérer
un calque</p>
<p align="justify" class="text">Nous avons
vu dans le chapitre précédent
qu'il n'était pas possible d'insérer un calque
avec le composeur
de Mozilla sans passer par le code source. On peut l'écrire
entièrement
à la main ou alors utiliser une feuille de style. Voyons
comment
faire à la main. Nous verrons comment faire plus simple avec
une
feuille de style.</p>
<p align="justify" class="text">La
balise qui permet d'insérer le calque
est <div>. L'attribut Id permet de spécifier
un nom. Donc pour
insérer un calque on écrit :</p>
<p align="justify" class="text"><div
id="calque1"> contenu
du calque </div></p>
<p align="justify" class="text">Tout ce qui
doit se trouver dans le calque
(tableau, autre calque, texte, liste à puces, ...) doit se
trouver
entre les balises <div> et </div>.</p>
<p align="justify" class="text">Cela
n'a pas vraiment d'intérêt
de mettre un calque juste pour cela. Il faut lui ajouter des attributs.
On note les attributs après le mot-clé "style".</p>
<p><div id="calque2" style="position:absolute;
width:200px;
height:115px; background-color: #996600; border: 1px none #000000; left:0;top:190"></div></p>
<p>Explications :</p>
<p align="justify"><strong>position:absolute</strong>
indique que le calque
est placé par rapport au coin supérieur gauche
de la page.
On aurait pu mettre "relative" à la place
de "absolute",
dans ce cas la position aurait été donné
par rapport
à l'endroit de la page où est inséré
la balise
<div>. Si on ne spécifie pas la position avec
"top"
et "left" le calque est placé à
l'endroit où
se trouve la balise <div>.</p>
<p align="justify"><strong>width:200px
</strong>et <strong>height:115px </strong>spécifie
la largeur et la hauteur du calque.</p>
<p align="justify"><strong>background-color: #996600
</strong>spécifie
la couleur de l'arrière-plan du calque.</p>
<p align="justify"><strong>border: 1px none #000000
</strong>indique une bordure
de largeur 1 et de couleur noire (#000000). Le paramètre
"none"
fait que la bordure ne s'affiche pas. Il faut le remplacer par "solid"
pour avoir un trait plein.</p>
<p align="justify"><strong>left:0;top:190
</strong>donne la position du calque
dans la feuille. 0 pixel à partir de la gauche et 190 depuis
le haut.</p>
<p align="justify">Il existe bien sur beaucoup d'autres
paramètres
pour les calques. Nous verrons comment affiner cela et comment créer
des calques de façon plus simple dans le chapitre sur les
feuilles
de style.</p>
</blockquote>
<div align="justify" class="text">
<p> </p>
<p> </p>
</div>
<div align="left" class="text">
<div align="center">Cours suivant : utilisation des
feuilles de style</div>
</div>
<p align="justify" class="text"> </p>
<p> </p>
</div>
</body>fin du corps du texte
</html>fin du code html