XHTML et CSS2

S'inscrire maintenantTélécharger la brochure pour le cours DUO PHP - CSS
  1. Brève introduction (Jour 1)
    1. Idéologie des feuilles de style : la séparation du contenu et de la décoration
      1. Démonstration avec le site css Zen Garden et avec un site de la formatrice
      2. Comparaison entre le code source d'une page en vieux HTML et du XHTML
    2. Rappels sur les balises HTML : balise ouvrante et balise fermante, emboitement (éviter les croisements)
    3. Explications sur la technique de travail pour la durée du stage: éditer le source, recharger le navigateur pour visualiser le résultat.
  2. La feuille de style embarquée dans l'en-tête (Jour 1)
    1. Rappel de la structure d'une page HTML
      1. Emplacement de la feuille de styles et emplacement du contenu.
    2. Premier exercice
      1. Stylisation des liens A d'une page (color, background-color et text-decoration)
  3. PAUSE
  4. Apprivoiser les styles appliqués au texte (Jour 1)
    1. Propriétés de couleurs (color et background-color) : démonstrations et exercices
      1. Exercices en stylisant les fontes de toute la page HTML : Styliser le texte du BODY, celui des paragraphes P, des liens A, des titres H1, H2 à partir de la feuille de style en haut de la page.
    2. Propriétés de fontes
      1. (font-family, font-style, font-weight et font-size) : démonstrations et exercices.
    3. Propriétés de texte
      1. (text-align, text-indent, etc.) : démonstrations et exercices
    4. Stylisation de texte avec <span> au lieu de <font><b><i><u>
      1. Insister sur le fait qu'on utilisera plus jamais ces balises <font><b><i><u>
      2. Appliquer localement à un mot, un fragment de texte, un style différent du style de la page (avec <SPAN> et l'attribut style). Première approche de la cascade.
    5. Apprendre à utiliser les sources d'informations
      1. Documentation en ligne (www.w3schools.com)
      2. Les feuilles de propriétés CSS (distribuées en début de classe)
  5. DÉJEUNER
  6. Apprivoiser les styles souvent appliqués aux boites DIV (ou aux contenants) (Jour 1)
    1. Propriété de bordures : démonstrations et exercices simples
      1. Les bordures seront utilisées comme marqueur pour les exercices subséquents
      2. Les étudiants plus avancés pourront appliquer des styles plus spécifiques à chaque bordure et tester l'importance de l'ordre des déclarations.
    2. Propriétés de taille : tailles fixes versus relatives (pour des boites élastiques). démonstrations et exercices
    3. Propriétés de remplissage et d'espacement (margin, padding)
      1. Utilisation de texte Lorem Ipsum pour tester le remplissage.
    4. Propriétés de positionnement (position, top, left) : introduction.
      1. Aujourd'hui on utilise { position :relative; }
    5. PAUSE
    6. Temps libre
      1. Période de Questions.
      2. Choix d'un exercice de leur choix personnel, tenter de reproduire une boite div parmi celles illustrées.
      3. Récapitulatif de ce qu'on a vu dans la journée.
      4. Retour des participants.
  7. Rappel sur le principe des CSS : le web sémantique (Jour 2)
  8. Utilisation des étiquettes : ID et Classes (Jour 2)
    1. Petits exercices avec un style intégré directement dans une balise spécifique.
    2. Théorie : la notion d'étiquette pour éviter d'intégrer le style directement dans le HTML à l'avenir
      1. Métaphore : Site de nouvelles, éléments du menu,
      2. Règles à suivre pour inventer nos étiquettes :
        • Pas d'espace dans le nom, étiquette commence par une lettre, etc.
        • Choisir une étiquette SIGNIFICATIVE.
    3. Premier exercice pas-à-pas avec un ID :

      Récupérer notre exercice précédent (style dans la balise) et attribuer une étiquette ID à la balise puis déplacer le style dans l'entête de la page.

      1. Syntaxe pour poser l'étiquette ID dans la balise
      2. Syntaxe pour référer à cet ID dans la feuille de style et attribuer des styles à cet élément particulier.
    4. Troisième exercice avec une CLASSE

      Inscrire une série de liens dans la page, attribuer une classe à la moitié d'entre eux.

      1. Syntaxe pour poser les étiquettes sur les balises
      2. Syntaxe pour référer à cette classe dans la feuille de style
    5. Troisième exercice avec une CLASSE

      Faire une page avec plusieurs DIV : une pour l'entête, d'autres pour une série de nouvelles (site éditorial).

      1. Appliquer les styles directement dans les balises.
      2. Observer la redondance des styles pour les différentes nouvelles.
      3. Factoriser avec une ou des classe(s)
    6. PAUSE
    7. Différence sémantique entre la CLASSE et l'ID
      • ID = élément unique : une seule en-tete, un seul pied de page, une seule annonce spéciale, un seul cadre 'pensée du jour', etc. Idées des participants.
      • Classe = série d'éléments similaires : liste de nouvelles, liste de menus, liste de fiches-pédagogiques, liste de fiches signalétiques, etc. Idées des participants.
    8. Règles à suivre pour décider entre ID et CLASSE :
      1. Règle sémantique : élément unique ou plusieurs de ce type dans le contexte
      2. Règle informatique : attributs de styles spécifiques ou identique à d'autres éléments
      3. Corriger l'exercice sur les nouvelles en fonction de ces nouvelles connaissances (l'en-tete est étiquetée par un ID).
  9. DÉJEUNER
  10. Les positions relatives et absolues - introduction (jour 2)
    1. Différence entre un élément positionné de façon absolue et relative : Explications et illustrations.
    2. Expérimentation : une page de plusieurs DIV relatives et une page de DIV absolues
      1. Toujours utiliser la coloration des bordures ou du fond de la div pour les localiser
      2. Ne pas utiliser top et left dans un premier temps afin d'observer le résultat
    3. Indices pour vos design :
      1. Normalement {position :absolute;} s'utilise avec positionnement alors que {position :relative;} s'utilise sans positionnement explicite.
      2. Attention : ne JAMAIS utiliser top pour créer un espacement entre les éléments relatifs ! Respecter la sémantique : utiliser margin. Illustration.
  11. Principe du contenant et de descendance (jour 3)
    1. Rappel sur le principe d'une page HTML : correspondance à un arbre de noeuds. Certaines balises sont les descendants d'autres balises.
      1. Illustration avec une page simple. Dessin de l'arbre hiérarchique.
      2. Illustration avec le tableau et les listes. Dessin de l'arbre hiérarchique.
      3. Illustration avec des liens A dans une DIV. Dessin de l'arbre hiérarchique.
    2. Exercices simples et rapides pour observer que les éléments contenus héritent généralement des styles de leurs parents.
    3. Le DOCTYPE
      1. Inclure le bon DOCTYPE dans le haut de la page. Désormais on travaille avec le DOCTYPE, sinon le navigateur fonctionne en mode dégénéré (il est perdu, il ne sait pas en quelle langue est écrit le document !).
    4. AVANCÉ : Le DOCTYPE spécifie la norme utilisée, la DTD.
      1. Ce qu'est le XML
      2. Ce qu'est une DTD.
  12. Principe du contenant : adressage des sous-éléments avec des sélecteurs (jour 3)
    1. Modification des styles des éléments enfants ou descendants (Récupération de l'exercice précédent.)
    2. Exercices avec les descendants d'une balise
      1. Les liens dans tous les paragraphes
      2. Les cellules des tableaux
    3. Exercices avec les descendants d'une classe (Les liens dans des DIV de nouvelles)
    4. Exercices avec les descendants d'un ID (Les LI d'une liste menu)
    5. AVANCÉ : Distinction entre le sélecteur Enfant et le sélecteur Descendant
  13. PAUSE
  14. Principe du contenant : éléments positionnés dans d'autres éléments (jour 3)
    1. Condition nécessaire : Le contenant doit être positionné explicitement
      1. pour permettre au navigateur de faire ses calculs à l'intérieur.
    2. Exercice pour le site de nouvelles :
      1. Série de DIV positionnées relativement les unes aux autres dans une DIV contenant qui elle est positionnée de façon absolue.
        • Utiliser une classe pour la série de DIV relatives (classe nouvelle).
        • Utiliser un ID pour le cadre.
    3. DÉJEUNER
    4. Contrôle de débordement.

      Exercice progressif à partir de l'exercice précédent: faire apparaitre la barre de navigation 'ascenseur' en stylisant le contenant : limiter sa hauteur, faire déborder le contenu (lipsum.org) et spécifier le { overflow :auto; }

    5. AVANCÉ: Positionnement absolu dans un contenant

      Créer une liste de fiches signalétiques, avec la photo et les roles positionnés en absolus dans une div 'fiche' qui est elle relative aux autres fiches, le tout dans un contenant dont l'overflow est contrôlé.

  15. PAUSE
  16. Sources de styles et cascade (Jour 3)
    1. Exercice avec une feuille de style externe
    2. Explications sur l'usage de chaque source, priorités de la cascade.
      1. Exercice avec des styles spécifiés par la feuille externe, la feuille embarquée et directement dans la balise.
      2. Explication de la priorité par l'ordre d'application (petite histoire d'une balise illustrée... qui raconte l'application des styles par le navigateur dans l'ordre des sources)
    3. Feuille de style spécifique pour l'impression (@media)
      1. Exercice: différencier le style en fonction de l'impression désirée. Terminer en devoir à la maison.
      2. Question: doit-on imprimer le contenu avec ou sans sa décoration ?

        Réponses des participants.

    4. AVANCÉ : autres médias possibles Rappel du principe de la sémantique
    5. AVANCÉ : inclusion d'une feuille de style dans une autre (@import)
    6. AVANCÉ : @import différencié selon le media : permet d'économiser la bande passante
  17. Sélection selon l'état ou selon les attributs (pseudo-sélecteurs) (jour 4)
    1. Exercice avec des liens : sélecteur pour l'effet hover.
      1. Ceci ne se restreint normalement pas aux liens, les effets hover devraient être utilisables sur n'importe quel éléments.
      2. Limitations actuelles de support navigateur.
    2. Menu en pur CSS
      1. Structure sémantique d'un menu : une liste de listes.
      2. Cacher les sous-listes lorsque ce n'est pas hover. Montrer les sous-listes lorsque la souris survole l'élément de la liste parente.
      3. Utiliser classes et id de manière appropriée
      4. AVANCÉ : Inclure le script IE7 pour que ca fonctionne aussi dans IE. Attention au chemin.
      5. AVANCÉ : Distinction entre { display :none; } et { visibility : hidden; }
    3. Amusement: comment donner de la transparence à nos sous-menus pour tous les navigateurs. 4 déclarations de style !
      1. AVANCÉ : notion d'attribut CSS propriétaire qui devrait toujours être précédée par un préfixe (et qui devrait également être toléré par les navigateurs concurrents).
    4. PAUSE
    5. Projet de création d'un formulaire avec les sélecteurs d'attributs pour différencier les styles des différents INPUT
      1. Créer un formulaire FORM avec des INPUT de différents types (TEXT et SUBMIT au minimum), ainsi que des TEXTAREA, des SELECT.
        • Obligatoire : Attention à regrouper les inputs dans le même formulaire (tous les input doivent être enfants du même FORM). Attention aux wysiwyg !
        • Conseil : regrouper un input et son 'énoncé visible' avec une div d'une classe particulière
      2. Différencier l'apparence de l'input TEXT, de l'input SUBMIT et de l'input checkbox avec le pseudo-sélecteur.
      3. AVANCÉ : Contrôler la disposition des éléments du formulaire en les incluant dans une liste.

        Regrouper les RADIO et les CHECKBOX d'une même question dans une sous-liste. Tenter de contrôler le flux des éléments avec {display:block; } ou {display:inline; } et avec {float; left; } et {clear:both; } Styles de liste.

  18. DÉJEUNER
  19. Exercices d'intégration (jour 4)
    1. 3-4 Mises en page de sites classiques illustrées et expliquées à réaliser en exercice avec l'aide de la formatrice.
      1. Règle d'or : ne jamais compter sur les défauts du navigateur.
      2. Truc pour éliminer les marges automatiques de la page et des éléments comme les listes. Utiliser le sélecteur universel * {margin: 0; padding: 0;}
        • Avancé : Pourquoi le sélecteur universel et pas le BODY contenant tout ?
      3. Introduction de float : pour intégrer une image dans un texte. Dangers du float. Comment arrêter la 'flottaison'.
      4. AVANCÉ : Capsule théorique sur les techniques pour centrer un élément dans une page dont la largeur est inconnue.
    2. PAUSE
    3. Retour sur le site de css Zen Garden : choix d'un design qui nous plait.
      1. On télécharge le HTML de la page et les images utilisées.
      2. On tente de reconstituer le visuel en recréant la feuille de style.
      3. On fait attention à respecter la séparation sémantique/décoration. Par exemple : une image doit-elle être insérée avec le HTML <IMG> ou avec une DIV qui a une background-image ? Selon si l'image est une décoration ou fait partie du contenu affiché.
        • Parfois, l'image doit se changer par un effet hover (image de menu). Pour que cela soit possible en CSS, elle doit être en background.
        • Pourquoi le HTML de la page inclut le texte des titres et la feuille de style cache ce texte et le remplace par une image de fond ? Réponses : le référencement. La séparation contenu-décoration. La multiplicité des stylisations de ce HTML : certains styles utilisent le texte directement, sans le remplacer par une image. Utiliser la descendance pour spécifier comment cacher le texte. (Un SPAN est dans le H1)
    4. Capsule théorique sur les conflits de déclarations CSS (une balise ne sait pas à quelle déclaration elle doit se conformer).
      1. Démonstration d'un conflit possible dans la stylisation des menus du site css Zen Garden.
      2. Comment éviter un tel conflit.
      3. AVANCÉ : Règles de résolution des conflits ou comment le navigateur choisit entre deux déclarations conflictuelles.
  20. Suite du projet (jour 5)
    1. Assistance aux élèves dans la création de leur page pour toute la journée.
      • AVANCÉ : Les élèves intéressés peuvent commencer les exercices impliquant du Javascript.
  21. AVANCÉ : DHTML : Les CSS, DOM et Javascript (jour 5)
    1. Comment récupérer une référence à un élément avec son ID
      1. Exercice : Faire apparaître en texte le nom d'une région géographique dans une boîte DIV cible tout en promenant la souris sur la carte (une image avec des régions délimitées avec MAP et AREA)
      2. Exercice: faire apparaître la description texte d'un personnage (des <IMG>)
    2. Comment désigner les propriétés CSS en Javascript
      1. Exemple : manipulation de la visibilité en Javascript
      2. Exercice : Petites boites qui s'ouvrent et se ferment par un click.
    3. expression( ) dans la feuille de style CSS permet (pour IE) de créer dynamiquement une valeur de propriété CSS par évaluation d'expression Javascript
      1. Exercice : correction du bug CSS pour la {position:fixed; } avec IE
    4. Fonctions en Javascript
      1. Exercice : Faire apparaître une image selon l'élément du menu survolé.

        Reproduire l'effet splash démontré (feedback visuel délocalisé). Utiliser une fonction qui reçoit l'ID de l'image à changer et le nom de la nouvelle image. Réfléchir à une technique pure CSS pour accomplir le même exploit.

    5. Très avancé : Fonctions Javascript attribuées à un événement. (Programmation événementielle)
      1. Exercice : Petites boites que l'on déplace à la souris.
    6. Source d'informations : la référence DOM sur w3school.
  22. Sources d'informations, auto-formation (jour 5)
    1. Documents de références pour la norme, sites officiels, validateurs.
    2. Sites éditoriaux, articles sur les nouvelles techniques.
    3. Gurus des CSS
    4. La norme CSS 3 : évolutions prévues.
S'inscrire maintenant