Implement table of content.
[hacks/simpleWebSlides.git] / prog_internet / prog_internet_05.xhtml
index 91d1ff4..3c32ca0 100644 (file)
@@ -4,7 +4,7 @@
           >
 <html xmlns="http://www.w3.org/1999/xhtml" >
   <head>
-    <title>Programmation Internet</title>
+    <title>CSS</title>
 
     <meta http-equiv="Content-Type"
           content="text/html; charset=utf-8" />
@@ -35,6 +35,7 @@
     </script>
   </head>
   <body>
+    <a href="prog_internet_04.xhtml" class="sws-previous"/>
 
     <div class="sws-slide sws-cover sws-option-nofooter">
       <h1>Programmation Internet</h1>
       <a href="mailto:kn@lri.fr">kn@lri.fr</a><br/>
       <a href="http://www.lri.fr/~kn/">http://www.lri.fr/~kn</a>
     </div>
-
-    <div class="sws-slide" >
-      <h1> Plan </h1>
-      <div>
-      <ol >
-        <li class="done"> Systèmes d'exploitation</li>
-        <li class="done"> Réseaux et Internet</li>
-        <li class="done"> Le Web </li>
-        <li > CSS
-          <ul class="empty">
-            <li class="hl">4.1 Introduction</li>
-            <li>4.2 Boîtes</li>
-            <li>4.3 Selecteurs</li>
-          </ul>
-        </li>
-      </ol>
-      </div>
-    </div>
-
+    <h1>Introduction</h1>
     <div class="sws-slide">
       <h1>Cascading Style Sheets (CSS)</h1>
       <table class="desc">
       </ul>
     </div>
     <div class="sws-slide">
-      <h1> L'attribut <tt>style</tt></h1>
-      <code> <![CDATA[ <a href="http://www.u-psud.fr" style="color:red">Un lien</a>]]>
+      <h1>L'attribut <tt>style</tt></h1>
+      <code> <![CDATA[ <a href="http://www.u-psud.fr" style="]]><em>color:red</em><![CDATA[">Un lien</a>]]>
       </code>
       <p>Apperçu:      </p>
       <p style="width:80%; margin-left:5%; border-style:solid;border-width:1pt;border-color:gray;">
        <a href="http://www.u-psud.fr" style="color:red;text-decoration:underline;">Un lien</a>
       </p>
-      <p class="sws-pause">Inconvénient: il faut copier l'attribut
-      style pour tous les liens de la page.
-      </p>
+      <p class="sws-pause">Inconvénients :</p>
+      <ul> <li>il faut copier l'attribut
+      style pour tous les liens de la page</li>
+        <li>modification de tous les éléments difficiles</li>
+      </ul>
     </div>
 
     <div class="sws-slide">
-      <h1> Internet </h1>
-      <ul>
-        <li> Ensemble de logiciels et protocoles basés sur <em>TCP/IP</em>
-          </li>
-        <li> Modèle Client/Serveur</li>
-        <li> Un serveur fournit un service:
-          <ul>
-            <li>courriel</li>
-            <li>transfert de fichier (ftp)</li>
-            <li>connexion à distance (ssh)</li>
-            <li>Web (http)</li>
-          </ul>
-          </li>
-        <li> Plusieurs services peuvent être actifs sur la même
-        machine (serveur). Un <em>port (identifiant numérique)</em>
-        est associé à chaque service. Sur Internet, un service est
-        identifié par:
-          <ul>
-            <li>L'adresse IP de la machine sur lequel il fonctionne</li>
-            <li>Le numéro de port sur lequel le programme attend les
-            connexions</li>
-          </ul>
-        </li>
-      </ul>
+      <h1>L'élément <tt>style</tt></h1>
+      <code><![CDATA[  <html>
+    <head>
+       <title>…</title>
+       <style>
+]]>       <em>a { color: red; }</em>
+<![CDATA[      </style>
+    </head>
+    <body>
+      <a href="…">Lien 1</a> <a href="…">Lien 2</a>
+    </body>
+  </html>]]></code>
+      <p>Apperçu :</p>
+      <p style="width:80%; margin-left:5%; border-style:solid;border-width:1pt;border-color:gray;">
+       <a href="…" style="color:red;text-decoration:underline;">Lien
+       1</a>
+       <a href="…" style="color:red;text-decoration:underline;">Lien 2
+       </a>
+      </p>
+      <p>Inconvénient : local à une page</p>
     </div>
     <div class="sws-slide">
-      <h1> Exemples de services </h1>
-      <table class="simple" style="width:100%">
-        <tr><th  style="width:10%">Service</th>
-          <th style="width:40%">Protocole</th>
-          <th  style="width:5%">Port</th>
-          <th style="width:45%;">Description</th>
-        </tr>
-        <tr>
-          <td>ftp</td> <td >File Transfer Protocol</td> <td>
-          20,21 </td> <td>Transfert de fichiers</td> </tr>
-        <tr> <td>telnet</td> <td>Network Virtual
-        Terminal</td> <td>23</td> <td>Shell à distance</td></tr>
-        <tr> <td>ssh</td> <td>Secure Shell</td> <td>22</td><td>Shell à
-        distance crypté</td></tr>
-        <tr> <td>mail</td><td>Simple Mail Transfer
-        Protocol</td> <td>25</td> <td>Envoi de mail</td></tr>
-        <tr><td>pop</td> <td>Post Office
-        Protocol</td> <td>110</td><td>Récupération de mail</td></tr>
-        <tr><td>imap</td> <td>Internet Message Access
-        Protocol</td> <td>143</td><td>Synchronisation de mails</td></tr>
-        <tr><td>nslookup</td> <td>Domain Name
-        System</td> <td>42</td> <td>Serveur de noms</td></tr>
-        <tr ><td><em>http</em></td> <td>Hyper Text Transfer Protocole</td><td>80</td><td>Web</td></tr>
-
-      </table>
+      <h1>Fichier <tt>.css</tt> séparé</h1>
+      <p>Fichier <tt>style.css</tt>:</p>
+      <p style="margin-left:5%;width:80%;margin-right:5%;border-width:1pt;border-style:solid">
+        <code >a { color: red; }</code>
+      </p>
+      <p>Fichier <tt>test.html</tt>:</p>
+      <p style="margin-left:5%;width:80%;margin-right:5%;border-width:1pt;border-style:solid">
+        <code >  <![CDATA[<html>
+    <head>
+    …
+    ]]><em>&lt;link href="style.css" type="text/css" rel="stylesheet" /&gt;</em>
+<![CDATA[    </head>
+    …
+  </html>]]></code>
+      </p>
+      <p class="sws-pause">Modifications &amp; déploiement aisé</p>
     </div>
     <div class="sws-slide">
-      <h1> World Wide Web (1/2)</h1>
+      <h1>Syntaxe</h1>
+      <p>Une <em>propriété</em> CSS est définie en utilisant la
+      syntaxe:
+      </p>
+      <p style="text-align:center"><tt> nom_prop : val_prop
+      ; </tt></p>
       <ul>
-        <li>Service de distribution de page <em>hypertexte</em></li>
-        <li>Une page <em>hypertexte</em> contient des références
-          immédiatement accessibles à d'autres pages (pointeurs
-          ou <em>liens hypertextes</em>)</li>
-        <li>Les pages sont décrites dans le
-          langage <em>HTML</em> (HyperText Markup Language) </li>
-        <li>Architecture client/serveur:
-          <ul>
-            <li>Les pages sont stockées sur le serveur</li>
-            <li>Les pages sont envoyées au client (navigateur Web) qui
-              en assure le rendu</li>
-          </ul>
+        <li>Si on utilise l'attribut <tt>style</tt> d'un
+        élément:<code>
+ <![CDATA[<a href="…" style="]]><em>color:red;border-style:solid;border:1pt;</em><![CDATA[">Lien 1</a>]]>
+          </code>
         </li>
-        <li>Utilise le protocole <em>HTTP</em> pour les échanges entre
-          le client et le serveur</li>
+        <li>Si on utilise un fichier <tt>.css</tt> ou une feuille de
+        style:<code>
+  a {
+         <em>color : red;
+         border-style: solid;
+         border: 1pt;</em>
+    }
+  h1 {   /* Le style des titres de niveau 1 */
+         text-decoration: underline;
+         color: green;
+     }
+</code></li>
       </ul>
     </div>
-
+<h1>Boîtes</h1>
     <div class="sws-slide">
-      <h1> World Wide Web (2/2)</h1>
-      <p>Concepts clé:</p>
+      <h1> Unités de longueur</h1>
+      <p>CSS permet de spécifier des longueurs comme valeurs de
+      certaines propriétés (position et taille des éléments, épaisseur
+      des bordures, …). Les longueurs <em>doivent</em> comporter une
+      unité. Les unités reconnues sont:</p>
       <table class="desc">
-        <tr><td>URL</td> <td>localisation d'une page Web (« adresse de
-        la page »)</td> </tr>
-        <tr><td>HTTP</td> <td>protocole de communication entre un
-        client et un serveur Web</td> </tr>
-        <tr><td>HTML</td> <td>langage de description des pages
-        Web</td> </tr>
+        <tr><td style="width:3em" >px</td> <td>pixel</td> </tr>
+        <tr><td>in</td> <td>pouce (2,54cm)</td> </tr>
+        <tr><td>cm</td> <td>centimètre</td> </tr>
+        <tr><td>mm</td> <td>millimètre</td> </tr>
+        <tr><td>pt</td> <td>point (1/72<up>ème</up> de pouce, 0,35mm) </td></tr>
+        <tr><td>pc</td> <td>pica (12 points)</td></tr>
+        <tr><td>em</td> <td>facteur de la largeur d'un caractère de la police
+        courante</td></tr>
+        <tr><td>ex</td> <td>facteur de la hauteur d'un caractère « x »
+        de la police courante</td></tr>
+        <tr><td>%</td> <td>pourcentage d'une valeur particulière
+        (définie par propriété)</td></tr>
+        <tr><td >vh</td> <td  class="css3"><i>viewport height</i> (% de la
+        hauteur de la partie visible de la page)</td></tr>
+        <tr  style="background:white"><td>vw</td> <td  class="css3"><i>viewport
+         width</i> (% de la largeur de la partie visible de la
+         page)</td></tr>
       </table>
-      <p>Évolutions récentes (Web 2.0, internet mobile, <i>Cloud</i>, …)</p>
-      <ul>
-        <li>Standardisation du contenu multimédia (images, vidéos et
-        sons en <i>streaming</i>)</li>
-        <li>Contenu interactif avancé (stockage de fichier coté
-        client, rendu 3D, …)</li>
-        <li>Uniformisation de nombreuses extensions <i>ad-hoc</i>: HTML5</li>
-      </ul>
     </div>
 
 
-    <div class="sws-slide" >
-      <h1> Plan </h1>
-      <ol >
-        <li class="done" > Systèmes d'exploitation</li>
-        <li class="done" > Réseaux et Internet </li>
-        <li> Le Web
-          <ul class="empty">
-            <li class="done">3.1 Internet et ses services</li>
-            <li class="hl" >3.2 Fonctionnement du Web</li>
-            <li class="">3.3 Adressage des documents Web </li>
-            <li>3.4 Le protocole HTTP</li>
-            <li>3.5 HTML, le format des documents</li>
-          </ul>
-        </li>
-      </ol>
-    </div>
-
     <div class="sws-slide">
-      <h1>Fonctionnement du Web</h1>
-      <div style="text-align:center;">
-        <img style="width:90%;height:50%;" src="cours_4.svg"
-        type="image/svg+xml" />
-      </div>
+      <h1>Boîte</h1>
 
+      <p >Chaque élément de la page HTML possède une <em>boîte
+      rectangulaire</em> qui délimite le contenu de l'élément:
+      </p>
+      <div style="text-align:center;vertical-align:text-bottom;">
+        <span class="b0" style="color:black;">← <span style="padding:0 24vh 0
+        25vh;"> width </span><span style="padding-right:10vh">→</span><br/>
+        <span id="b1" style="display:inline-block;
+                     color:black;
+                     padding:0 4vh 4vh 4vh;
+                     border:dotted 2pt black;"><i>margin</i> (marge)<br/>
+          <span  id="b2" style="display:inline-block;
+                                padding:0 4vh 4vh 4vh;
+                                color:white;background:black">
+            <i>border</i> (bordure)<br/>
+            <span  id="b3" style="display:inline-block;padding:0 3vh 3vh 3vh;
+                                  background:white;color:black;border:dotted
+                                  2pt black">
+              <i>padding</i> (ajustement)<br/>
+              <span style="border:dotted 2pt black;
+                           background:white;
+                           position:relative;
+                           display:inline-block;
+                           font-size:15vh;
+                           width:2.8em;
+                           height:12vh;">
+                <span style="color:red;
+                             top:-5vh;
+                             left:0vh;
+                             position:absolute;
+                             text-decoration:underline;
+                             padding:0 0 0 0;
+                             margin: 0 0 0 0;
+                             ">Lien 1
+                </span>
+              </span>
+            </span>
+          </span>
+        </span>
+        </span><span  class="b0" style="color:black;vertical-align:top;display:inline-block;font-size:large;height:100%;">↑<br/><br/><br/><br/>
+          height<br/><br/><br/><br/>↓
+        </span>
+      </div>
+      <script type="text/javascript">
+        function all(e) {
+        return $(e).children("*").addBack()
+        }
+        function hide(e) {
+        all(e).css('visibility', 'hidden');
+        };
+        function show(e) {
+        all(e).css('visibility', 'visible');
+        }
+        SWS.Presentation.registerCallback("0", function(c) {
+        hide(".b0");hide("#b1"); hide("#b2"); hide("#b3");
+        
+        });
+        SWS.Presentation.registerCallback("1", function(c) {
+        hide(".b0");hide("#b1"); hide("#b2"); show("#b3");
+        });
+        SWS.Presentation.registerCallback("2", function(c) {
+        hide(".b0");hide("#b1"); show("#b2"); show("#b3");
+        });
+        SWS.Presentation.registerCallback("3", function(c) {
+        hide(".b0");show("#b1"); show("#b2"); show("#b3");
+        });
+        SWS.Presentation.registerCallback("4", function(c) {
+        show(".b0");show("#b1"); show("#b2"); show("#b3");
+        });
+      </script>
+      <p class="sws-onframe-5">La <em>taille t du contenu</em> est calculée pour que:<br/>
+        <tt>(height|width) = padding + margin + border + t</tt>
+      </p>
     </div>
-
-    <div class="sws-slide">
-      <h1>Côté client</h1>
-      <p>Le navigateur :</p>
-      <ul>
-        <li>Analyse l'URL demandée</li>
-        <li>Obtient l'adresse IP auprès du serveur DNS</li>
-        <li>Établit une connexion (potentiellement sécurisée) avec le serveur</li>
-        <li>Envoie une <em>requête HTTP</em> au serveur</li>
-        <li>Récupère la page envoyée par le serveur dans
-        sa <em>réponse</em></li>
-        <li>Analyse la page et récupère les éléments référencés :
-        images, sons, …</li>
-        <li>Effectue le traitement du code client</li>
-        <li>Met en forme le contenu et l'affiche dans la fenêtre</li>
-      </ul>
-    </div>
-
     <div class="sws-slide">
-      <h1>Côté serveur</h1>
-      <ul>
-        <li>Un <i>listener</i> (<i>thread</i> particulier) attend les
-        connexions sur un port par défaut (80 dans le cas de HTTP)</li>
-        <li>À chaque nouvelle connexion, le <i>listener</i> crée
-        un <i>thread</i> de traitement et se remet en attente
-        </li>
-        <li>Le <i>thread</i> de traitement vérifie la validité de la
-        requête :
-          <ul>
-            <li>le document demandé existe ?
-              </li>
-            <li>le client est autorisé à accéder au document ?
-              </li>
-            <li>…</li>
-          </ul>
-        </li>
-        <li>Le <i>thread</i> de traitement répond à la requête :
-          <ul>
-            <li>Exécution de code côté serveur, récupération de
-            données dans une BD, …
-              </li>
-            <li>Envoi de la page au client
-              </li>
-          </ul>
-        </li>
+      <h1>Marge, bordure, ajustement</h1>
+      <p>On peut spécifier jusqu'à 4 valeurs:</p>
+      <ul><li>1 valeur: toutes les dimensions égales à cette
+      valeur</li>
+        <li>2 valeurs: haut et bas égal à la première valeur, gauche
+          et droite égale à la deuxième</li>
+        <li>3 valeurs: haut à la première valeur, gauche
+          et droite égale à la deuxième, bas égal à la troisième</li>
+        <li>4 valeurs: haut, droit, bas, gauche</li>
       </ul>
-    </div>
-
-    <div class="sws-slide" >
-      <h1> Plan </h1>
-      <ol >
-        <li class="done" > Systèmes d'exploitation</li>
-        <li class="done" > Réseaux et Internet </li>
-        <li> Le Web
-          <ul class="empty">
-            <li class="done">3.1 Internet et ses services</li>
-            <li class="done" >3.2 Fonctionnement du Web</li>
-            <li class="hl">3.3 Adressage des documents Web </li>
-            <li>3.4 Le protocole HTTP</li>
-            <li>3.5 HTML, le format des documents</li>
-          </ul>
-        </li>
-      </ol>
+      <code style="font-size:smaller;">  span {
+      padding:10pt 20pt 5pt 0pt;
+      margin:10pt 5pt;
+      border-width:3pt;
+      border-color:red blue green;
+      border-style:solid dotted;
+    } </code>
+      <div style="text-align:center;">Du <span style="padding:10pt
+      20pt 5pt 0pt;margin:10pt 5pt;border-style:solid dotted;border-width:3pt;border-color:red blue green;">texte</span> dans une boite
+      </div>
     </div>
     <div class="sws-slide">
-      <h1>Adressage des documents Web (1/3)</h1>
+      <h1>Modes d'affichage</h1>
+      <p>La propriété <em><i>display</i></em> contrôle le mode
+      d'affichage d'un élément:
+      </p>
       <table class="desc">
-        <tr><td>URL</td><td> <i>Uniform Resource Locator</i>
-        identifie un document sur internet</td></tr>
+        <tr><td>none</td><td>l'élément n'est pas dessiné et n'occupe
+        pas d'espace</td></tr>
+        <tr><td style="width:4em;">inline</td><td>l'élément est placé sur la ligne
+        courante, dans le flot de texte. La taille du contenu (avec
+        les marges, ajustements et bordures) dicte la
+        taille de la boîte, <tt>height</tt> et <tt>width</tt> sont
+        ignorés (<tt><![CDATA[<i>, <b>, <span>, <em>, …]]></tt>
+        sont <i>inline</i> par défaut). </td></tr>
+        <tr><td>block</td><td>l'élément est placé seul sur sa
+        ligne. La taille est calculée automatiquement mais peut être
+        modifiée par <tt>width</tt> et <tt>height</tt>
+        (<tt><![CDATA[<div>, <h1>, <p>, …]]></tt>
+        sont <i>block</i> par défaut)</td></tr>
+        <tr><td>inline-block</td><td>positionné comme <i>inline</i>
+        mais la taille peut être modifiée comme pour <i>block</i></td></tr>
+
       </table>
-      <p>Une URL se décompose en 3 partie</p>
-      <ul><li><em>protocole</em> (comment ?)</li>
-        <li><span style="color:orange;">adresse</span> (où ?)</li>
-        <li><span style="color:blue;">document</span> (quoi ?)</li>
-      </ul>
-      <p>Syntaxe (simplifiée) :</p>
-      <code>            <em>protocole</em>://<span style="color:orange">adresse</span>/<span style="color:blue;">document</span></code>
-      <p>Exemple :</p>
-      <code>            <em>http</em>://<span style="color:orange">www.lri.fr</span>/<span style="color:blue;">~kn/teach_fr.html</span></code>
     </div>
-
     <div class="sws-slide">
-      <h1>Adressage des documents Web (2/3)</h1>
-      <p>On peut aussi préciser <span style="color:purple;">un numéro
-      de port</span>, des <span style="color:black;">paramètres</span>
-      et un <span style="color:red;">emplacement</span> :
-      </p>
-      <code>            <em>protocole</em>://<span style="color:orange">adresse</span>:<span style="color:purple">port</span>/<span style="color:blue;">document</span>?<span style="color:black;">p1=v1</span>&amp;<span style="color:black;">p2=v2</span>#<span style="color:red">empl</span></code>
-      <p class="sws-pause" >Exemple :</p>
-      <code>    <a style="color:gray" href="http://www.youtube.com:80/results?search_query=tbbt#search-results"><em>http</em>://<span style="color:orange">www.youtube.com</span>:<span style="color:purple">80</span>/<span style="color:blue;">results</span>?<span style="color:black;">search_query=tbbt</span>#<span style="color:red">search-results</span></a></code>
-      <p>Le serveur utilise les paramètres passés par le client dans
-      l'URL pour <i>calculer</i> le contenu de la page (changer la
-      chaîne « <code>tbbt</code> » ci-dessus et essayer)</p>
+      <h1>Modes d'affichage (exemples)</h1>
+      <div>
+        <div style="width:39%;margin:0 5%;border-style:solid; border-width:0 1pt 0 0;border-color:black;float:left;">
+          <tt>a { display: inline; … } </tt>
+        </div>
+        <div style="width:50%;float:left;">
+          Le <span style="border:solid 1pt
+          blue;color:blue;text-decoration:underline;">lien 1</span>,
+          le <span style="border:solid 1pt
+          blue;color:blue;text-decoration:underline;">lien 2</span> et
+          le <span style="border:solid 1pt
+          blue;color:blue;text-decoration:underline;">lien 3</span>.
+        </div>
+      </div>
+      <div >
+        <div style="width:39%;margin:0 5%;border-style:solid; border-width:0 1pt 0 0;border-color:black;float:left;">
+          <tt>a { display: block; … } </tt>
+        </div>
+        <div style="width:50%;float:left;">
+          Le <span style="display:block;border:solid 1pt
+          blue;color:blue;text-decoration:underline;">lien 1</span>,
+          le <span style="display:block;border:solid 1pt
+          blue;color:blue;text-decoration:underline;">lien 2</span> et
+          le <span style="display:block;border:solid 1pt
+          blue;color:blue;text-decoration:underline;">lien 3</span>.
+        </div>
+      </div>
+      <div>
+        <div style="width:39%;margin:0 5%;border-style:solid; border-width:0 1pt 0 0;border-color:black;float:left;">
+          <code>a { display: inline-block;
+    width: 4em;
+    height: 2em;
+  … } </code>
+        </div>
+        <div style="width:50%;float:left;">
+          Le <span style="display:inline-block;width:4em;height:2em;border:solid 1pt
+          blue;color:blue;text-decoration:underline;">lien 1</span>,
+          le <span style="display:inline-block;width:4em;height:2em;border:solid 1pt
+          blue;color:blue;text-decoration:underline;">lien 2</span> et
+          le <span style="display:inline-block;width:4em;height:2em;border:solid 1pt
+          blue;color:blue;text-decoration:underline;">lien 3</span>.
+        </div>
+      </div>
     </div>
     <div class="sws-slide">
-      <h1>Adressage des documents Web (3/3)</h1>
-      <p>
-        La <em>racine</em> d'un site Web
-        (ex: <em><code>http://www.lri.fr/</code></em>) correspond
-        à un répertoire sur le disque du serveur
-        (ex: <em><code>/var/www</code></em>). Le fichier</p>
-      <code>      http://www.lri.fr/index.html</code>
-      <p>se trouve à l'emplacement</p>
-      <code>      /var/www/index.html</code>
-      <p>Le serveur Web peut aussi effectuer des <em>réécritures
-      d'adresses</em> :</p>
-      <code>      http://www.lri.fr/~kn/index.html</code>
-      <p>devient</p>
-      <code>      /home/kn/public_html/index.html</code>
-    </div>
-    <div class="sws-slide" >
-      <h1> Plan </h1>
-      <ol >
-        <li class="done" > Systèmes d'exploitation</li>
-        <li class="done" > Réseaux et Internet </li>
-        <li> Le Web
-          <ul class="empty">
-            <li class="done">3.1 Internet et ses services</li>
-            <li class="done" >3.2 Fonctionnement du Web</li>
-            <li class="done">3.3 Adressage des documents Web </li>
-            <li class="hl">3.4 Le protocole HTTP</li>
-            <li>3.5 HTML, le format des documents</li>
-          </ul>
-        </li>
-      </ol>
+      <h1>Positionnement</h1>
+      <p>Le type de positionnement est donné par la
+      propriété <em>position</em></p>
+      <table class="desc">
+        <tr><td>static</td><td>positionnement « automatique
+        » </td></tr>
+        <tr><td>fixed</td><td>positionnement par rapport à la fenêtre
+        du navigateur (la boîte est supprimée du flot)</td></tr>
+        <tr><td>relative</td><td>positionnement « relatif » par
+        rapport à la position normale</td></tr>
+        <tr><td style="width:5em;">absolute</td><td>positionnement « absolu » par rapport
+        à l'ancêtre le plus proche qui n'est pas <i>static</i></td></tr>
+      </table>
+      <p>Pour <tt>fixed</tt>, <tt>relative</tt> et <tt>absolute</tt>,
+      les propriétés <tt>top</tt>, <tt>bottom</tt>, <tt>left</tt>
+      et <tt>right</tt> dénotent les décalages respectifs.
+      </p>
     </div>
     <div class="sws-slide">
-      <h1>Caractéristiques du protocole HTTP</h1>
-      <ul>
-        <li>Sans connexion permanente:
-          <ul>
-            <li>Le client se connecte au serveur, envoie sa requête,
-            se déconnecte</li>
-            <li>Le serveur se connecte au client, envoie sa réponse,
-              se déconnecte</li>
-          </ul>
-        </li>
-        <li>Indépendant du contenu : permet d'envoyer des documents
-        (hyper) texte, du son, des images, …</li>
-        <li>Sans <em>état</em>: chaque paire requête/réponse est
-        indépendante (le serveur ne maintient pas d'information sur le
-          client entre les requêtes)</li>
-        <li>Protocole en mode <em>texte</em></li>
+      <h1>Positionnement (exemple)</h1>
+      <div>
+        <div style="45%;margin:0 4%;float:left;"><code>
+<span style="color:#02a">  a { position: static;
+    … }</span>
+<span style="color:#0a2">  a { position: fixed;
+    right:10pt;
+    top: 10pt;
+  }</span></code></div>
+        <div style="width:50%;float:left;"><code>
+<span style="color:#a20">  a { position: relative;
+    left: 10pt;
+    bottom: -5pt;
+    … }</span>
+<span style="color:#a2a">  a { position:absolute;
+    right:0pt;
+    bottom: 10pt;
+  }</span></code>
+        </div><code><![CDATA[    <ul style="position:relative;"><li>…</li> …</ul>]]></code>
+      </div><br/>
+      <ul style="position:relative;float:right;background:#ddd;">
+        <li>Positionnement <span style="position:static;color:#02a">static</span></li>
+        <li>Positionnement <span style="position:fixed;right:10pt;top:10pt;color:#0a2">fixed
+        (right:10pt,top:10pt)</span></li>
+        <li>Positionnement <span style="position:relative;left:10pt;bottom:-5pt;color:#a20">relative
+        (left:10pt,bottom:-5pt)</span></li>
+        <li>Positionnement <span style="position:absolute;right:0pt;bottom:10pt;color:#a2a">absolute
+        (right:10pt,bottom:10pt)</span></li>
+
       </ul>
     </div>
+    <h1>Autres propriétés</h1>
     <div class="sws-slide">
-      <h1>Format des messages HTTP</h1>
-      <p>Les messages ont la forme suivante</p>
-      <ul><li>Ligne initiale CR LF</li>
-        <li>zéro ou plusieurs lignes d'option CR LF</li>
-        <li>CR LF</li>
-        <li>Corp du message (document envoyé, paramètres de la
-        requête, …)</li>
-      </ul>
-      <ul><li><em>Requête</em> la première ligne contient un nom
-      de <em>méthode</em> (GET, POST, HEAD, …), le paramètre de la
-      méthode et la version du protocole</li>
-        <li><em>Réponse</em> la version du protocole, le code de la
-        réponse (200, 404, 403, …) et un message informatif
-        </li>
+      <h1>Couleurs</h1>
+      <p>Les couleurs peuvent être données:</p>
+      <ul>
+        <li>par nom
+        symbolique: <span style="color:red">red</span>,
+          <span style="color:blue">blue</span>,
+          <span style="color:purple">purple</span>,
+        …</li>
+        <li>en
+        hexadécimal: <tt>#<span style="color:red">xx</span><span style="color:green">yy</span><span style="color:blue">zz</span></tt>, avec
+        <tt>00 ≤ xx,yy,zz ≤ ff</tt></li>
+        <li>en
+        décimal: <tt>rgb(<span style="color:red">x</span>, <span style="color:green">y</span>, <span style="color:blue">z</span>)</tt>,
+        avec         <tt>0 ≤ x,y,z ≤ 255</tt></li>
+        <li class="css3">en
+        décimal avec
+        transparence: <tt >rgba(<span style="color:red">x</span>, <span style="color:green">y</span>, <span style="color:blue">z</span>,
+        a)</tt>,
+        avec         <tt>0 ≤ x,y,z ≤ 255</tt> et <tt>0 ≤ a ≤ 1 </tt></li>
+        
       </ul>
     </div>
     <div class="sws-slide">
-      <h1>Démo</h1>
-    </div>
-    <div class="sws-slide" >
-      <h1> Plan </h1>
-      <ol >
-        <li class="done" > Systèmes d'exploitation</li>
-        <li class="done" > Réseaux et Internet </li>
-        <li> Le Web
-          <ul class="empty">
-            <li class="done">3.1 Internet et ses services</li>
-            <li class="done" >3.2 Fonctionnement du Web</li>
-            <li class="done">3.3 Adressage des documents Web </li>
-            <li class="done">3.4 Le protocole HTTP</li>
-            <li class="hl">3.5 HTML, le format des documents</li>
-          </ul>
-        </li>
-      </ol>
-    </div>
-    <div class="sws-slide">
-      <h1>HTML</h1>
-      <p>
-        <em>HyperText Markup Language</em> : langage de mise en forme
-        de documents hypertextes (texte + liens vers d'autres
-        documents). Développé au CERN en 1989.<br/>
-        <em>1991</em> : premier navigateur en mode texte<br/>
-        <em>1993</em> : premier navigateur graphique (mosaic)
-        développé au NCSA (National Center for Supercomputing
-        Applications)
-      </p>
+      <h1>Propriétés du texte</h1>
+      <p>Certaines propriétés permettent d'alterer le rendu du texte
+      d'un élément</p>
+      <table class="desc">
+        <tr><td>direction</td><td><tt>ltr</tt> ou <tt>rtl</tt>
+        (orientation du texte)</td></tr>
+        <tr> <td>text-transform</td> <td><tt>capitalize</tt>, <tt>uppercase</tt>, <tt>lowercase</tt>
+        </td></tr>
+        <tr> <td>text-decoration</td> <td><tt>underline</tt>, <tt>overline</tt>, <tt>line-through</tt> </td></tr>
+        <tr> <td>text-align</td> <td><tt>left</tt>, <tt>right</tt>, <tt>center</tt>, <tt>justify</tt></td></tr>
+      <tr><td>text-indent</td> <td><tt>longueur du retrait de paragraphe</tt></td></tr>
+      </table>
     </div>
     <div class="sws-slide">
-      <h1>Document HTML</h1>
-      <ul><li> est un document <em>semi-structuré</em></li>
-        <li> dont la structure est donnée par
-        des <em>balises</em></li>
-      </ul>
-      <div>
-      <table class="btable simple" style="width:90%;margin-left:5%">
-        <thead>
-          <tr><th style="width:65%;">Exemple</th> <th>Rendu par défaut</th></tr>
-        </thead>
-        <tr><td ><tt><![CDATA[Un texte <b>en gras</b> ]]></tt></td><td>Un
-        texte <b>en gras</b></td></tr>
-        <tr><td ><code><![CDATA[<a href="http://www.u-psud.fr">Un lien</a> ]]></code></td> 
-          <td><a style="color:blue;text-decoration:underline;"
-        href="http://www.u-psud.fr">Un lien</a></td></tr>
-        <tr><td><code><![CDATA[<ul>
-  <li>Premièrement</li>
-  <li>Deuxièmement</li>
-</ul> ]]></code></td> <td><ul>
-<li>Premièrement</li>
-<li>Deuxièmement</li>
-</ul>
+      <h1>Propriétés de la police</h1>
+      <table class="desc">
+        <tr><td>font-family</td><td>liste de nom de polices séparées
+        par des virgules (<tt>Helvetica, sans, "Times New Roman"</tt>)</td></tr>
+        <tr> <td>font-style</td> <td><tt>normal</tt>, <tt>italic</tt>    </td></tr>
+        <tr> <td>font-weight</td> <td><tt>normal</tt>, <tt>lighter</tt>, <tt>bold</tt>, <tt>bolder</tt> </td></tr>
+        <tr> <td style="width:6.5em;">font-size</td> <td> soit une longueur
+        soit <tt>xx-small</tt>, <tt>x-small</tt>, <tt>small</tt>, <tt>medium</tt>, 
+            <tt>large</tt>, <tt>x-large</tt>, <tt>xx-large</tt>
 </td></tr>
       </table>
-      </div>
-<p>On dit que <em><tt><![CDATA[<toto>]]></tt></em> est une balise <em>
-    ouvrante</em> et <em><tt><![CDATA[</toto>]]></tt></em> une
-    balise <em>fermante</em>. On peut
-    écrire <em><tt><![CDATA[<toto/>]]></tt></em> comme raccourci pour
-    <tt><![CDATA[<toto></toto>]]></tt>.
-</p>
-    </div>
-    <div class="sws-slide">
-      <h1>Historique du langage HTML</h1>
-<table class="desc">
-  <tr><td style="width:3em;">1973</td> <td>GML, Generalised Markup Language développé chez
-IBM. Introduction de la notion de balise.</td></tr>
-<tr><td>1980</td><td> SGML, Standardised GML, adopté par l'ISO</td></tr>
-<tr><td>1989</td><td> HTML, basé sur SGML. Plusieurs entreprises (microsoft,
-netscape, ... ) interprètent le standard de manière
-différente</td></tr>
-<tr><td>1996</td> <td>XML, eXtensible Markup Language norme pour les
-documents semi-structurés (SGML simplifié)</td></tr>
-<tr><td>2000</td><td> XHTML, version de HTML suivant les conventions
-    XML</td></tr>
-<tr><td>2008</td><td> Première proposition pour le nouveau standard,
-    HTML5</td></tr>
-<tr><td>2014</td><td>Standardisation de HTML5</td></tr>
-</table>
+      <p class="css3" >On peut aussi spécifier un descripteur de
+      police</p>
+      <code>
+        @font-face {
+          font-family: Toto;
+          src: url(toto.ttf);
+        }
+        a { font-family: Toto; }
+      </code>
     </div>
-
+    <h1>Selecteurs</h1>
     <div class="sws-slide">
-      <h1>XHTML <i>vs</i> HTML</h1>
-      <p>On utilise XHTML dans le cours. Différences avec HTML:</p>
-      <ul>
-        <li>
-          Les balises sont <em>bien parenthésées</em>
-          (<tt><![CDATA[<a> <c> </c> ]]> <span style="color:red">&lt;/b&gt;</span></tt> est interdit)
-        </li>
-        <li>Les balises sont en minuscules</li>
-      </ul>
-      <p>Les avantages sont les suivants</p>
-      <ul><li>HTML autorise les mélanges majuscule/minuscule, de ne
-      pas fermer certaines balise … Les navigateurs corrigent ces
-      erreurs de manières <em>différentes</em></li>
-        <li>Le document est <em>structuré</em> comme un programme
-        informatique (les balises ouvrantes/fermantes correspondent à
-        { et }). Plus simple à débugger.</li>
-      </ul>
+      <h1>Selecteurs</h1>
+      <p>On peut sélectionner finement les éléments auxquels un style
+      s'applique</p>
+            <table class="desc">
+        <tr><td><tt>x</tt></td><td>tous les éléments dont la balise
+        est <tt>x</tt></td></tr>
+        <tr> <td><tt>.foo</tt></td> <td>tous les éléments dont
+        l'attribut <tt>class</tt> vaut <tt>foo</tt></td></tr>
+        <tr><td><tt>#foo</tt></td><td>l'élément dont l'attribut
+        <tt>id</tt> vaut <tt>foo</tt> (les <tt>id</tt> doivent être uniques)</td></tr>
+        <tr> <td><tt>X Y</tt></td> <td>tous les éléments
+        selectionnés par <tt>Y</tt> qui sont des descendants d'éléments
+        sélectionnés par <tt>X</tt></td></tr>
+        <tr> <td><tt>X &gt; Y</tt></td> <td>tous les éléments dont
+        selectionné par <tt>Y</tt> qui sont des fils d'éléments
+        sélectionnés par <tt>X</tt></td></tr>
+        <tr><td style="width:7em;"><tt>a:visited</tt></td><td>les liens déjà
+        visités</td></tr>
+        <tr><td><tt>a:link</tt></td><td>les liens non
+        visités</td></tr>
+        <tr><td><tt>X:hover</tt></td><td>élément selectionné
+        par <tt>X</tt> et survollé par la souris</td></tr>
+      </table>
+            <code>           div.foo ul li a:visited { color: red; } </code>
     </div>
-<div class="sws-slide">
-  <h1>Rôle d'(X)HTML</h1>
-  <p>Séparer la <em>structure</em> du document de
-  son <em>rendu</em>. La structure donne une <em>sémantique</em> au
-  document :</p>
-  <ul>
-    <li>ceci est un titre</li>
-    <li>ceci est un paragraphe</li>
-    <li>ceci est un ensemble de caractères importants</li>
-  </ul>
-  <p>Cela permet au navigateur d'assurer un rendu en fonction de la
-  sémantique. Il existe différents types de rendus:</p>
-  <ul>
-    <li>graphique interactif (Chrome, Firefox, Internet Explorer,
-    …)</li>
-    <li>texte interactif (Lynx, navigateur en mode texte)</li>
-    <li>graphique statique (par ex: sur livre électronique)</li>
-    <li>rendu sur papier</li>
-    <li>graphique pour petit écran (terminal mobile)</li>
-  </ul>
-</div>
-<div class="sws-slide">
-  <h1>Exemple de document</h1>
-  <p style="text-align:center;font-size:smaller;">(liste des balises
-  données sur la feuille de TD 4!)</p>
-<div style="margin-left:10%;">
-<code style="font-size:smaller;"><![CDATA[  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-  <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
-    <head>
-      <title>Un titre</title>
-      <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
-    </head>
-    <body>
-      <h1>Titre de section</h1>
-      <p> premier paragraphe de texte. On met
-      un <a href="http://www.lri.fr">lien</a> ici.
-      </p>
-      <!-- on peut aussi mettre des commentaires -->
     </body>
-  </html>]]></code>
-</div>
-</div>
-  </body>
 </html>