SlideShare a Scribd company logo
1 of 110
Download to read offline
Cascade et héritage : concevoir, organiser,
optimiser et maintenir ses feuilles de styles

Cet atelier propose des éléments de méthode pour l’intégration de
sites web complexes, en s’interrogeant sur les points suivants :

    Comment envisager un projet, mettre en place un cadre de
    travail, prévoir les évolutions et la maintenance ?
    Comment s’organiser pour traiter de façon efficace les éléments
    génériques, les déclinaisons, et les parties plus spécifiques ?
    Quelles sont les possibilités d’optimisation, et en quoi tout cela
    impacte directement la qualité, l’accessibilité, les performances d’
    un site ?
Cascade et héritage
Qui sommes nous ?
Qui sommes-nous ?




      Marie           Romy             Hugues
      Destandau       Duhem-Verdière   Moreno

      Intégratrice    Intégratrice     Intégrateur
      XHTML CSS 2     XHTML CSS 2      XHTML CSS 2

      Ototoï          Indépendante     Gaya
Cascade et héritage
Concevoir, organiser, optimiser et maintenir ses feuilles de styles



1. Rappel : les principes de base

2. Mettre en place des règles de travail

3. Du générique au spécifique
Cascade et héritage
Rappel : les principes de base
Documents de référence

Les spécifications du langage CSS
(recommandation du W3C du 12 mai 1998 révisée en avril 2008)



Originales en version anglaise :
http://www.w3.org/TR/2008/REC-CSS2-20080411


Leur traduction en français :
http://www.yoyodesign.org/doc/w3c/css2/cover.html
http://www.yoyodesign.org/doc/w3c/css2/cascade.html
Cascade et héritage
Rappel : les principes de base
Rappel lexical




 Une règle CSS consiste en deux parties principales : un sélecteur ('H1') et une déclaration ('color: blue').
 Celle-ci se compose à son tour de deux parties : une propriété ('color') et une valeur ('blue')

 Un bloc de déclaration commence par une accolade gauche ({) et se termine par l'accolade droite (})
 correspondante. On doit placer entre celles-ci une liste de déclarations séparées par des points-virgules (;)
 ou, sinon, ne rien y mettre.

 http://www.yoyodesign.org/doc/w3c/css2/conform.html
Cascade et héritage
Rappel : les principes de base
Héritage
Certaines propriétés héritent de la valeur de leur élément
parent dans l'arbre du document.
Liste des propriétés : http://www.w3.org/TR/CSS2/propidx.html

On peut forcer les propriétés qui n'héritent pas par défaut à prendre la valeur de leur
parent en spécifiant la valeur 'inherit'

 .conteneur{                     .conteneur{
     color:#f00;                     color:#f00;
     padding:10px;                   padding:10px;
 }                               }
                                 .contenu{
                                     padding:inherit;
                                 }
Cascade et héritage
Rappel : les principes de base
Cascade
La cascade de CSS définit un ordre de priorité, ou poids, pour
chaque règle de style. Quand plusieurs règles sont mises en
œuvre, celle avec le plus grand poids a la préséance.

                  Les feuilles de style ont trois origines
                  différentes :

                   1. celles de l'agent utilisateur
                   2. celles de l'utilisateur
                   3. celles de l'auteur
Cascade et héritage
Rappel : les principes de base
Les styles de l'auteur

 1. Feuille de style externe :
    <link href=quot;css/styles.cssquot; rel=quot;stylesheetquot; type=quot;text/cs
    h2 { color: pink; }

 2. Dans le head :
    <style type=quot;text/cssquot;>
    h2 { color: red; }
    </style>

 3. Style inline :
    <h2 style=quot;font-weight: bold;quot;>Titre 2</h2>
Cascade et héritage
Rappel : les principes de base
Cascade : style de l'utilisateur
1em = la valeur de 'font-size'
Celle de body par défaut est donnée par
les préférences du navigateur, fixées par l'internaute
Cascade et héritage
Rappel : les principes de base
Exemple d'application de la cascade




http://www.pas-sages.org/pw2008/cascade1.html
Cascade et héritage
 Rappel : les principes de base
 Cascade
li: valeur par défaut 1em   li{ font-size:0.75em; }       li{ font-size:0.75em; }
                                                          li li{ font-size:1em; }
                            0.75 x 0.75 = 0.56
                            (pour 1 em à 16px = 8.96px)   0.75 x 1 = 0.75

                            0.75 x 0.75 x 0.75 = 0.42     0.75 x 1 x 1 = 0.75
                            (pour 1 em à 16px = 6.7px)
Cascade et héritage
Rappel : les principes de base
Cascade : spécificité des sélecteurs

   1.   * {...} : 0000 (aucun idenfifiant, aucune classe, aucun élément)
   2.   p {...} : 0001 (aucun idenfifiant, aucune classe, un élément)
   3.   blockquote p {...} : 0002 (aucun idenfifiant, aucune classe, deux éléments)
   4.   .class {...} : 0010 (aucun idenfifiant, une classe, aucun élément)
   5.   p.class {...} : 0011 (aucun idenfifiant, une classe, un élément)
   6.   blockquote p.class {...} : 0012 (aucun idenfifiant, une classe, deux
        éléments)
  7.    #id {...} : 0100 (un idenfifiant, aucune classe, aucun élément)
  8.    p#id {...} : 0101 (un idenfifiant, aucune classe, un élément)
  9.    blockquote p#id {...} : 0102 (un idenfifiant, aucune classe, deux éléments)
 10.    .class #id {...} : 0110 (un idenfifiant, une classe, aucun élément)
 11.    .class p#id {...} : 0111 (un idenfifiant, une classe, un élément)
 12.    blockquote.class p#id {...} : 0112 (un idenfifiant, une classe, deux
        éléments)
 13.    <p style=quot;...quot;> : 1000 (attribut HTML style qui ne sera supplanté que par un
        style utilisateur normal)
 14.    <p style=quot;... !importantquot;> : 1000 (attribut HTML style marqué !important qui
        ne sera supplanté que par un style utilisateur lui-même marqué !important)



 Source : http://openweb.eu.org/articles/cascade_css
Cascade et héritage
Rappel : les principes de base
Cascade : spécificité des sélecteurs

  En supposant que tous les sélecteurs suivants sont justes et
  désignent le même élément, lequel sera appliqué en priorité ?

   1. #page ul li a { }

   2. #page .menu a { }

   3. div.menu ul li a { }

   4. div#page ul a { }




 Source : Quiz Alsacréations N°7 : CSS difficile
Cascade et héritage
Rappel : les principes de base
Cascade : spécificité des sélecteurs

  En supposant que tous les sélecteurs suivants sont justes et
  désignent le même élément, lequel sera appliqué en priorité ?

   1. #page ul li a { }
        0103 : le sélecteur contient 1 identifiant, 0 classe et 3 éléments
   2. #page .menu a { }
        0111 : le sélecteur contient 1 identifiant, 1 classe et 1 élément
   3. div.menu ul li a { }
        0014 : le sélecteur contient 1 classe et 4 éléments
   4. div#page ul a { }
        0103 : le sélecteur contient 1 identifiant et 3 éléments




 Source : Quiz Alsacréations N°7 : CSS difficile
Cascade et héritage
Rappel : les principes de base
*{ color:#f00; } /*rouge   0000 */
Cascade et héritage
Rappel : les principes de base
p{ color:#00f; }   /*bleu    0001 */
*{ color:#f00; }   /*rouge   0000 */
Cascade et héritage
Rappel : les principes de base
p em{ color:#0f0; } /*vert   0002 */
p{ color:#00f; }   /*bleu    0001 */
*{ color:#f00; }   /*rouge   0000 */
Cascade et héritage
Rappel : les principes de base
p.chapeau{ color:#000; } /*noir   0011 */
p em{ color:#0f0; }     /*vert    0002 */
p{ color:#00f; }        /*bleu    0001 */
*{ color:#f00; }        /*rouge   0000 */




                                  http://www.pas-sages.org/pw2008/poids4.html
Cascade et héritage
Rappel : les principes de base
body p.chapeau{ color:#666; } /*gris     0012 */
p.chapeau{ color:#000; }     /*noir      0011   */
p em{ color:#0f0; }          /*vert      0002   */
p{ color:#00f; }             /*bleu      0001   */
*{ color:#f00; }             /*rouge     0000   */




                                 http://www.pas-sages.org/pw2008/poids5.html
Cascade et héritage
Rappel : les principes de base
#chapeau1{ color:#66ffff; }     /*turquoise   0100 */
body p.chapeau{ color:#666; }   /*gris        0012   */
p.chapeau{ color:#000; }        /*noir        0011   */
p em{ color:#0f0; }             /*vert        0002   */
p{ color:#00f; }                /*bleu        0001   */
*{ color:#f00; }                /*rouge       0000   */
Cascade et héritage
Rappel : les principes de base
p#chapeau1{ color:#339999; } /*canard         0101 */
#chapeau1{ color:#66ffff; }     /*turquoise   0100   */
body p.chapeau{ color:#666; }   /*gris        0012   */
p.chapeau{ color:#000; }        /*noir        0011   */
p em{ color:#0f0; }             /*vert        0002   */
p{ color:#00f; }                /*bleu        0001   */
*{ color:#f00; }                /*rouge       0000   */
Cascade et héritage
Rappel : les principes de base
Cascade : ordre d'application des valeurs (par priorité)


  1. valeur donnée par la cascade
  2. valeur héritée de l'élément parent (en général valeur calculée)
  3. valeur initiale de la propriété




http://www.yoyodesign.org/doc/w3c/css2/cascade.html#specified-value
Cascade et héritage
Rappel : les principes de base
Cascade

Pour trouver la valeur d'une combinaison élément/propriété, les agents
utilisateurs doivent suivre l'ordre de tri suivant :

  1. par type de média visé. Celles-ci s'appliquent si le sélecteur correspond
     à cet élément ;
  2. les feuilles de style de l'auteur surclassent celles de l'utilisateur, ces
     dernières surclassant la feuille de style par défaut ;
  3. selon la spécificité des sélecteurs : les plus spécifiques surclasseront
     ceux plus généraux ;
  4. selon l'ordre de spécification : si deux règles ont les mêmes poids,
     origines et spécificités, c'est la dernière survenue qui l'emporte.




http://www.yoyodesign.org/doc/w3c/css2/cascade.html#cascading-order
Cascade et héritage
Rappel : les principes de base
Les propriétés raccourcies
 h1 {
         margin-top: 10px;
         margin-right: 20px;
         margin-bottom: 15px;
         margin-left: 20px;
 }

 h1 { margin: 10px 20px 15px 20px; }
 Truc de l'horloge : lire dans l'ordre midi, 3, 6 et 9 heures.



 Horloges raccourcies (autres exemples) :
 h1 { margin: 10px 20px; }
 h1 { margin: 10px 20px 15px; }
Cascade et héritage
Rappel : les principes de base
Les propriétés raccourcies
 h1 {
     background-color: #FFFFFF;
     background-image: url(img/fond.gif);
     background-repeat: repeat-x;
     background-attachment: fixed;
     background-position: top center;
 }

 h1 { background: #FFF url(img/fond.gif) repeat-x
 fixed top center; }
Cascade et héritage
Rappel : les principes de base
Les propriétés raccourcies
 h1 {
     border-top-width: 1px;
     border-right-width: 2px;
     border-bottom-width: 3px;
     border-left-width: 2px;
     border-style: solid;
     border-color: #006699;
 }

 h1 {
     border: 1px solid #069;
     border-width: 1px 2px 3px 2px;
 }
Cascade et héritage
Rappel : les principes de base
Les propriétés raccourcies

h1 {
     font-weight: bold;
     font-size: 12pt;
     line-height: 14pt;
     font-family: Helvetica, sans-serif;
     font-variant: small-caps;
     font-style: italic;
     font-stretch: normal;
     font-size-adjust: none
}

h1 { font: italic small-caps bold 12pt/14pt
Helvetica, sans-serif; }
Cascade et héritage
Rappel : les principes de base
Les classes multiples

class=quot;content_box content_box_bluequot;

   permet de décliner facilement et rapidement des éléments
   évite une surcharge de div
Cascade et héritage
Rappel : les principes de base
LoVe Fuck HAte


a                   {color:        blue; }
a:link              {color:        blue; }
a:visited           {color:        purple; }
a:focus             {color:        green; }
a:hover             {color:        green; }
a:active            {color:        red; }

 La règle a:hover doit être placé après a:link et a:visited,
 sinon les règles de cascade feront que la propriété color spécifiée sera cachée.
Cascade et héritage
Concevoir, organiser, optimiser et maintenir ses feuilles de styles



1. Rappel : les principes de base

2. Mettre en place des règles de travail

3. Du générique au spécifique
Cascade et héritage
Mettre en place des règles de travail
Mettre en place des règles de travail
Organisation des répertoires
Cascade et héritage
Mettre en place des règles de travail
Mettre en place des règles de travail
Organisation des répertoires
Cascade et héritage
Mettre en place des règles de travail
Mettre en place des règles de travail
Organisation des répertoires
Cascade et héritage
Mettre en place des règles de travail
Mettre en place des règles de travail
Organisation des répertoires
 un site statique
Cascade et héritage
Mettre en place des règles de travail
Mettre en place des règles de travail
Organisation des répertoires
 un site décliné dans différents pays
 ici les css de la version commune pour l'ensemble des sites
Cascade et héritage
Mettre en place des règles de travail
Mettre en place des règles de travail
Organisation des répertoires
 un site décliné dans différents pays
 ici les css de la version française pour les surcharge de la version globale
Cascade et héritage
 Mettre en place des règles de travail
 Mettre en place des règles de travail
 Organisation des répertoires
  Organisation des répertoires : un site multilingue




+ langues arabes...
s'adapter aux contraintes de l'outils !
Cascade et héritage
Mettre en place des règles de travail
Mettre en place des règles de travail
Penser la structure

   Prendre le temps d'examiner l'ensemble les éléments à
   disposition : fichiers PSD, storyboars, documents de conception
   ergonomique, contenus...

   En relation avec l'équipe des concepteurs, ergonomes et
   graphistes : favoriser les éléments réutilisables et génériques.

   Consulter les développeurs et intégrateurs CMS, pour
   produire le code HTML qu'ils pourront intégrer au mieux, ou qui
   serra le plus simple à utiliser.

   Anticiper : il y a de grandes chances que la page d'accueil de
   votre nouveau projet évolue en cours de route. Arrangez-vous
   pour qu'elle soit modulable et indépendante des autres pages.
Cascade et héritage
Mettre en place des règles de travail
Mettre en place des règles de travail
Cascade et héritage
Mettre en place des règles de travail
Mettre en place des règles de travail
Cascade et héritage
Mettre en place des règles de travail
Mettre en place des règles de travail
Cascade et héritage
Mettre en place des règles de travail
Nomenclature
Cascade et héritage
Mettre en place des règles de travail
Nomenclature


Nommez vos sélecteurs de façon sémantique
en indiquant leur rôle plutôt que leur apparence :

ex: .style_3 devient .intertitre
ex: .RougeGras devient .warning
ex: .floatRight devient .contexte

On devrait pouvoir relire votre feuille de style
et la comprendre, sans commentaires !
Cascade et héritage
Mettre en place des règles de travail
Mettre en place des règles de travail
Nomenclature
S'inspirer des standards à venir (HTML5, WAI-ARIA, etc.)


                             Les nouveaux éléments du HTML 5 :




 Source : http://alistapart.developpez.com/tutoriels/html/presentation-html5/
Cascade et héritage
Mettre en place des règles de travail
Mettre en place des règles de travail
Nomenclature
S'inspirer des standards à venir (HTML5, WAI-ARIA, etc.)


                                     Un avant-goût du HTML 5 :




 Source : http://alistapart.developpez.com/tutoriels/html/presentation-html5/
Cascade et héritage
Mettre en place des règles de travail
Mettre en place des règles de travail
Nomenclature

Écrivez un code homogène et lisible :

    Espacez les valeurs
    Ex: .selecteur { propriete: valeur; }

    Une tabulation correspond à 4 espaces

    Un sélecteur par ligne
    Ex: .selecteur { propriete: valeur; propriete:

    Retour à la ligne avant chaque nouveau bloc de règles CSS
Cascade et héritage
Mettre en place des règles de travail
Nomenclature
Cascade et héritage
Mettre en place des règles de travail
Nomenclature
Cascade et héritage
Mettre en place des règles de travail
Cascade et héritage
Mettre en place des règles de travail
Cascade et héritage
Mettre en place des règles de travail
Cascade et héritage
Mettre en place des règles de travail
Mettre en place des règles de travail
Cas particulier : on doit insérer une application ou un bout de site
dans un ou des sites existants
Cascade et héritage
Mettre en place des règles de travail
Mettre en place des règles de travail
S'accommoder d'autres règles

   Reset CSS global

       pour donner à votre site web une allure identique
       quel que soit le navigateur utilisé
       éléments à styler par défaut (même ceux qui
       n'apparaitraient pas dans les maquettes -> anticiper
       les évolutions)
Cascade et héritage
Mettre en place des règles de travail
Mettre en place des règles de travail
S'accommoder d'autres règles
Cascade et héritage
Mettre en place des règles de travail
Mettre en place des règles de travail
S'accommoder d'autres règles

   Framework CSS

   Boîte à outils CSS, avec des modèles pré-écrits.
   Jeu de feuilles de styles par défaut, de librairies, de
   conventions et bonnes pratiques, qui forment une
   structure de base pour un projet web.

   Exemples : Blueprint / Yahoo! UI Library: Grids CSS / Tripoli
Cascade et héritage
Mettre en place des règles de travail
Mettre en place des règles de travail
S'accommoder d'autres règles

   Intégration en CMS

   Certains CMS imposent leur structure,
   feuilles de style, etc. :

       feuilles de style par défaut à inclure pour le travail
       structure de page imposée
       HTML généré
Cascade et héritage
Mettre en place des règles de travail
Mettre en place des règles de travail
S'accommoder d'autres règles
Exemple d'intégration CMS : les blocs texte+image dans TYPO3
Cascade et héritage
Mettre en place des règles de travail
Mettre en place des règles de travail
Des gabarits maniable et évolutifs

   présenter tous les éléments disponibles dans le site
   du plus générique vers le plus spécifique

   distinguer les zones éditables de celles générées

   définir des éléments génériques, utilisables dans différents
   contextes

   établir des chartes typographique, graphique, éditoriale

   maintenir des structures proches, de projets en projets
Cascade et héritage
Mettre en place des règles de travail
Mettre en place des règles de travail
Charte typo




 http://www.cartografareilpresente.org/article23.html
http://www.cartografareilpresente.org/article23.html
Cascade et héritage
Mettre en place des règles de travail
Mettre en place des règles de travail
Page de
d'exemples
Cascade et héritage
Concevoir, organiser, optimiser et maintenir ses feuilles de styles



1. Rappel : les principes de base

2. Mettre en place des règles de travail

3. Du générique au spécifique
Cascade et héritage
Du générique au spécifique
Comment découperiez-vous cette maquette ?




 Voir en ligne : http://www.medicamat.com
 Client : Medicamat - Développement : Ilomedia - Graphisme : Timothée Mahuzier
Cascade et héritage
Du générique au spécifique
Comment découperiez-vous cette maquette ?
Cascade et héritage
Du générique au spécifique
Comment découperiez-vous cette maquette ?




 Voir en ligne : http://www.medicamat.com
 Client : Medicamat - Développement : Ilomedia - Graphisme : Timothée Mahuzier
Cascade et héritage
Du générique au spécifique
Comment découperiez-vous cette maquette ?
Cascade et héritage
Du générique au spécifique
  <link rel=quot;stylesheetquot; type=quot;text/cssquot; href=quot;css/styles.cssquot; />
  <link rel=quot;stylesheetquot; type=quot;text/cssquot; href=quot;css/medicamat.cssquot; />
Cascade et héritage
Du générique au spécifique
  <link rel=quot;stylesheetquot; type=quot;text/cssquot; href=quot;css/styles.cssquot; />
  <link rel=quot;stylesheetquot; type=quot;text/cssquot; href=quot;css/medicaderm.cssquot; />
Cascade et héritage
Du générique au spécifique
<link rel=quot;stylesheetquot; type=quot;text/cssquot; href=quot;css/styles.cssquot; />

               #container { width: 980px; margin: 0 auto; text-align: left; }
               #principal { } /* voir surcharges */
               #secondaire { } /* voir surcharges */
               #principal #contenu { background-color: #FFF; }



<link rel=quot;stylesheetquot; type=quot;text/cssquot; href=quot;css/medicamat.cssquot; />

               /* Surcharges pour MEDICAMAT */
               #container { background: url(img/bg-medicamat.gif); }
               #principal { float: left; width: 670px; background: #EEFCEF; }
               #secondaire { width: 300px; float: right; }
               #principal #contenu { float: right; width: 420px; margin-right: 1



 <link rel=quot;stylesheetquot; type=quot;text/cssquot; href=quot;css/medicaderm.cssquot; />

                /* Surcharges pour MEDICADERM */
                #container { background-image: url(img/bg-medicaderm.gif); }
                #principal { float: right; width: 769px; padding-bottom: 10px; ba
                #principal .coulisse { background: transparent url(img/filet-magi
                #secondaire { width: 202px; float: left; border-top: 15px solid #
                #principal #contenu { float: left; margin: 15px 0 0 10px; width:
Cascade et héritage
Du générique au spécifique
Ordre d'écriture de la feuille de style
         Générique

              1.   Reset global
              2.   Base typo : h1, h2, h3...
              3.   Formulaires (base)
              4.   Structure de la page : header, main, footer
              5.   Structure des templates :
                   1 colonne, 2 colonnes, 3 colonnes, ...
              6.   Éléments du contenu, blocs génériques
              7.   Éléments de navigation : menus, pagination
              8.   Variantes par gabarit : page d'accueil, etc.
              9.   Surcharges pour medias : print, handled

         Cas particuliers
Cascade et héritage
Du générique au spécifique
Ordre d'écriture de la feuille de style




            reset ->




       base typo ->
base typo ->
   (suite)
formulaires ->
    (base)
structure ->
de la page
navigation ->
  (éléments
génériques)
Variantes ->
par gabarits
Cascade et héritage
Du générique au spécifique
Déclinaison de blocs éditables
Cascade et héritage
Du générique au spécifique
Déclinaison de blocs éditables
Cascade et héritage
Du générique au spécifique
Déclinaison de blocs, contenu généré
Cascade et héritage
Du générique au spécifique
Un style flexible


   Évitez la « classite aiguë » :
   le moins de class sur tous les éléments simples (p, li),
   stylez plutôt à partir d'un bloc conteneur, exploitez les parents
   !

   Évitez de fixer des largeurs et hauteurs
   sur les blocs conteneurs pour les réutiliser un max

   OK, ça oblige bien souvent à rajouter des div...
Cascade et héritage
Du générique au spécifique
Déclinaison des couleurs des rubriques
Cascade et héritage
Du générique au spécifique
Déclinaison des couleurs des rubriques
Cascade et héritage
Du générique au spécifique
Déclinaison des couleurs des rubriques

    Donner une couleur par defaut

    À partir d'un classe très haut dans l'arbre du document,
    sur le body par exemple

    Isoler les éléments à modifier

    Surcharger
Cascade et héritage
Du générique au spécifique
Cascade et héritage
Du générique au spécifique
Cascade et héritage
Du générique au spécifique
Cascade et héritage
Du générique au spécifique
Déclinaison de blocs
Cascade et héritage
Du générique au spécifique
Déclinaison de blocs
Cascade et héritage
Du générique au spécifique
Des blocs quot;dépliablesquot; dans différents CMS
TYPO3
Cascade et héritage
Du générique au spécifique
Des blocs quot;dépliablesquot; dans différents CMS
SPIP
Cascade et héritage
Du générique au spécifique
Cascade et héritage
Du générique au spécifique
Des formulaires génériques
Cascade et héritage
Du générique au spécifique
Des formulaires génériques
Cascade et héritage
Du générique au spécifique
Des formulaires génériques

    décliner l'ensemble des éléments de formulaire
       fieldset, legend, label, input, select,...

    prévoir les messages d'erreurs, annotations et exemples

    ainsi que les pages de confirmation, de résultats...
Cascade et héritage
Du générique au spécifique
Cascade et héritage
Du générique au spécifique
Cascade et héritage
Du générique au spécifique
?
la cerise sur le gateau




  http://freedotfr.free.fr/css.htm
Cascade et héritage
Annexes


Spécifications du W3C                                    L'article sur wikipedia (refondu)
                                                                http://fr.wikipedia.
CSS                                                             org/wiki/Feuilles_de_style_en_cascade
en :http://www.w3.org/TR/CSS/
fr : http://www.yoyodesign.org/doc/w3c/css2/cover.html
                                                         Autours de l'organisation des CSS
HTML 4.01                                                     http://www.pompage.net/pompe/cssefficace/
en : http://www.w3.org/TR/html401/                            http://www.pompage.net/pompe/raccourcisCSS/
fr : http://www.la-grange.net/w3c/html4.01/cover.html         http://openweb.eu.org/articles/cascade_css
                                                              http://www.smashingmagazine.
xHTML 1.0                                                     com/2008/05/02/improving-code-readability-with-css-
http://www.la-grange.net/w3c/xhtml1/                          styleguides/
                                                              http://www.css-faciles.com/heritage-cascade.php
HTML 5                                                        http://www.css4design.com/blog/5-reset-css-a-la-
http://www.w3.org/TR/html5/                                   loupe-pour-une-remise-a-zero-des-valeurs-par-
                                                              defaut-des-navigateurs
WAI-ARIA                                                      http://www.css4design.com/blog/css-structurer-
http://www.w3.org/TR/wai-aria/#roles                          documenter-et-maintenir
                                                              http://www.css4design.com/blog/organiser-ses-
                                                              feuilles-de-style-css
                                                              http://css.developpez.com/tutoriels/framework-css/

More Related Content

Viewers also liked

Competitic elogistique site internet by competitic - numerique en entreprise
Competitic    elogistique site internet by competitic - numerique en entrepriseCompetitic    elogistique site internet by competitic - numerique en entreprise
Competitic elogistique site internet by competitic - numerique en entrepriseCOMPETITIC
 
North Sea Group et Argos Oil négocient leur fusion
North Sea Group et Argos Oil négocient leur fusionNorth Sea Group et Argos Oil négocient leur fusion
North Sea Group et Argos Oil négocient leur fusionInstiCOM
 
Production FrAKKAssante
Production FrAKKAssanteProduction FrAKKAssante
Production FrAKKAssanteWeavlink
 
Internet development 18
Internet development 18Internet development 18
Internet development 18ihusain
 
Internet development 27
Internet development 27Internet development 27
Internet development 27ihusain
 
Llibres Curs 2011-2012 Infantil
Llibres Curs 2011-2012   InfantilLlibres Curs 2011-2012   Infantil
Llibres Curs 2011-2012 Infantilceipelspins
 
Imagerie à Grande Gamme Dynamique Web
Imagerie à Grande Gamme Dynamique WebImagerie à Grande Gamme Dynamique Web
Imagerie à Grande Gamme Dynamique WebJF O'Kane
 
4 mediation numerique_nouveauxcatalogues_cnfpt2011
4 mediation numerique_nouveauxcatalogues_cnfpt20114 mediation numerique_nouveauxcatalogues_cnfpt2011
4 mediation numerique_nouveauxcatalogues_cnfpt2011Fleury Christine
 
(enjeux de l'utilisation des TIC)
(enjeux de l'utilisation des TIC)(enjeux de l'utilisation des TIC)
(enjeux de l'utilisation des TIC)Anouar Abtoy
 
Evitez les pieges et le derapage de campagnes Google adwords
Evitez les pieges et le derapage de campagnes Google adwords Evitez les pieges et le derapage de campagnes Google adwords
Evitez les pieges et le derapage de campagnes Google adwords AXIZ eBusiness
 
Patrones de diseño de software
Patrones de diseño de softwarePatrones de diseño de software
Patrones de diseño de softwareEsteban Espinel
 
El precio de ocupar tu lugar
El precio de ocupar tu lugarEl precio de ocupar tu lugar
El precio de ocupar tu lugarUnicentro1
 

Viewers also liked (20)

Competitic elogistique site internet by competitic - numerique en entreprise
Competitic    elogistique site internet by competitic - numerique en entrepriseCompetitic    elogistique site internet by competitic - numerique en entreprise
Competitic elogistique site internet by competitic - numerique en entreprise
 
North Sea Group et Argos Oil négocient leur fusion
North Sea Group et Argos Oil négocient leur fusionNorth Sea Group et Argos Oil négocient leur fusion
North Sea Group et Argos Oil négocient leur fusion
 
South Africa
South AfricaSouth Africa
South Africa
 
Production FrAKKAssante
Production FrAKKAssanteProduction FrAKKAssante
Production FrAKKAssante
 
Internet development 18
Internet development 18Internet development 18
Internet development 18
 
L'accès de tous aux télécommunications
L'accès de tous aux télécommunicationsL'accès de tous aux télécommunications
L'accès de tous aux télécommunications
 
Internet development 27
Internet development 27Internet development 27
Internet development 27
 
Llibres Curs 2011-2012 Infantil
Llibres Curs 2011-2012   InfantilLlibres Curs 2011-2012   Infantil
Llibres Curs 2011-2012 Infantil
 
Le bilan 2012 du digital
Le bilan 2012 du digitalLe bilan 2012 du digital
Le bilan 2012 du digital
 
Foto roman
Foto romanFoto roman
Foto roman
 
Imagerie à Grande Gamme Dynamique Web
Imagerie à Grande Gamme Dynamique WebImagerie à Grande Gamme Dynamique Web
Imagerie à Grande Gamme Dynamique Web
 
Baloncesto
BaloncestoBaloncesto
Baloncesto
 
4 mediation numerique_nouveauxcatalogues_cnfpt2011
4 mediation numerique_nouveauxcatalogues_cnfpt20114 mediation numerique_nouveauxcatalogues_cnfpt2011
4 mediation numerique_nouveauxcatalogues_cnfpt2011
 
(enjeux de l'utilisation des TIC)
(enjeux de l'utilisation des TIC)(enjeux de l'utilisation des TIC)
(enjeux de l'utilisation des TIC)
 
Evitez les pieges et le derapage de campagnes Google adwords
Evitez les pieges et le derapage de campagnes Google adwords Evitez les pieges et le derapage de campagnes Google adwords
Evitez les pieges et le derapage de campagnes Google adwords
 
Tarea en clase
Tarea en claseTarea en clase
Tarea en clase
 
Ubuntu
Ubuntu Ubuntu
Ubuntu
 
Patrones de diseño de software
Patrones de diseño de softwarePatrones de diseño de software
Patrones de diseño de software
 
El precio de ocupar tu lugar
El precio de ocupar tu lugarEl precio de ocupar tu lugar
El precio de ocupar tu lugar
 
Las emociones
Las emocionesLas emociones
Las emociones
 

Similar to Cascade et héritage : concevoir, organiser, optimiser…

Préprocesseurs vs CSS natif : Le match !
Préprocesseurs vs CSS natif : Le match !Préprocesseurs vs CSS natif : Le match !
Préprocesseurs vs CSS natif : Le match !Jonathan Levaillant
 
Chapitre 2_CSS_complet_Version1.pdf
Chapitre 2_CSS_complet_Version1.pdfChapitre 2_CSS_complet_Version1.pdf
Chapitre 2_CSS_complet_Version1.pdfYassineZARIOUH
 
Chapitre 2_CSS_complet_Version1.pdf
Chapitre 2_CSS_complet_Version1.pdfChapitre 2_CSS_complet_Version1.pdf
Chapitre 2_CSS_complet_Version1.pdfYassineZARIOUH
 
Enib cours c.a.i. web - séance #1 - html5 css3-js - 2
Enib   cours c.a.i. web - séance #1 - html5 css3-js - 2Enib   cours c.a.i. web - séance #1 - html5 css3-js - 2
Enib cours c.a.i. web - séance #1 - html5 css3-js - 2Horacio Gonzalez
 
Coat::Persistent at FPW2009
Coat::Persistent at FPW2009Coat::Persistent at FPW2009
Coat::Persistent at FPW2009Alexis Sukrieh
 
Chapitre 3 : initiation CSS
Chapitre 3 : initiation CSSChapitre 3 : initiation CSS
Chapitre 3 : initiation CSSManel Ben Sassi
 
Css présentation Pour des sites web dynamique
Css présentation Pour des sites web dynamiqueCss présentation Pour des sites web dynamique
Css présentation Pour des sites web dynamiqueDanielMohamed4
 
Intégrateurs, bousculez vos habitudes
Intégrateurs, bousculez vos habitudesIntégrateurs, bousculez vos habitudes
Intégrateurs, bousculez vos habitudesRaphaël Goetter
 
seance3-1 CSS.ppt
seance3-1 CSS.pptseance3-1 CSS.ppt
seance3-1 CSS.pptAmineReal
 
Qualité logicielle
Qualité logicielleQualité logicielle
Qualité logiciellecyrilgandon
 
Spark - au dela du dataframe avec Tungsten et Catalyst
Spark - au dela du dataframe avec Tungsten et CatalystSpark - au dela du dataframe avec Tungsten et Catalyst
Spark - au dela du dataframe avec Tungsten et CatalystMathieu Goeminne
 
CSS Facile : organiser ses feuilles de style
CSS Facile : organiser ses feuilles de styleCSS Facile : organiser ses feuilles de style
CSS Facile : organiser ses feuilles de styleKaelig Deloumeau-Prigent
 
Comment évaluer la qualité d'un site web selon les techniques d'intégration w...
Comment évaluer la qualité d'un site web selon les techniques d'intégration w...Comment évaluer la qualité d'un site web selon les techniques d'intégration w...
Comment évaluer la qualité d'un site web selon les techniques d'intégration w...Renoir Boulanger
 
LESS : moins de CSS, plus de fun ! (KiwiParty 2011)
LESS : moins de CSS, plus de fun ! (KiwiParty 2011)LESS : moins de CSS, plus de fun ! (KiwiParty 2011)
LESS : moins de CSS, plus de fun ! (KiwiParty 2011)Corinne Schillinger
 
Cours yeoman backbone box2d
Cours yeoman backbone box2dCours yeoman backbone box2d
Cours yeoman backbone box2dhugomallet
 

Similar to Cascade et héritage : concevoir, organiser, optimiser… (20)

Préprocesseurs vs CSS natif : Le match !
Préprocesseurs vs CSS natif : Le match !Préprocesseurs vs CSS natif : Le match !
Préprocesseurs vs CSS natif : Le match !
 
Chapitre 2_CSS_complet_Version1.pdf
Chapitre 2_CSS_complet_Version1.pdfChapitre 2_CSS_complet_Version1.pdf
Chapitre 2_CSS_complet_Version1.pdf
 
Chapitre 2_CSS_complet_Version1.pdf
Chapitre 2_CSS_complet_Version1.pdfChapitre 2_CSS_complet_Version1.pdf
Chapitre 2_CSS_complet_Version1.pdf
 
CSS 3
CSS 3CSS 3
CSS 3
 
La première partie de la présentation PHP
La première partie de la présentation PHPLa première partie de la présentation PHP
La première partie de la présentation PHP
 
Enib cours c.a.i. web - séance #1 - html5 css3-js - 2
Enib   cours c.a.i. web - séance #1 - html5 css3-js - 2Enib   cours c.a.i. web - séance #1 - html5 css3-js - 2
Enib cours c.a.i. web - séance #1 - html5 css3-js - 2
 
Coat::Persistent at FPW2009
Coat::Persistent at FPW2009Coat::Persistent at FPW2009
Coat::Persistent at FPW2009
 
html-css-casuhal.pdf
html-css-casuhal.pdfhtml-css-casuhal.pdf
html-css-casuhal.pdf
 
Chapitre 3 : initiation CSS
Chapitre 3 : initiation CSSChapitre 3 : initiation CSS
Chapitre 3 : initiation CSS
 
Css présentation Pour des sites web dynamique
Css présentation Pour des sites web dynamiqueCss présentation Pour des sites web dynamique
Css présentation Pour des sites web dynamique
 
Intégrateurs, bousculez vos habitudes
Intégrateurs, bousculez vos habitudesIntégrateurs, bousculez vos habitudes
Intégrateurs, bousculez vos habitudes
 
seance3-1 CSS.ppt
seance3-1 CSS.pptseance3-1 CSS.ppt
seance3-1 CSS.ppt
 
CSS3 - nouveautes
CSS3 - nouveautesCSS3 - nouveautes
CSS3 - nouveautes
 
Qualité logicielle
Qualité logicielleQualité logicielle
Qualité logicielle
 
Spark - au dela du dataframe avec Tungsten et Catalyst
Spark - au dela du dataframe avec Tungsten et CatalystSpark - au dela du dataframe avec Tungsten et Catalyst
Spark - au dela du dataframe avec Tungsten et Catalyst
 
CSS Facile : organiser ses feuilles de style
CSS Facile : organiser ses feuilles de styleCSS Facile : organiser ses feuilles de style
CSS Facile : organiser ses feuilles de style
 
Comment évaluer la qualité d'un site web selon les techniques d'intégration w...
Comment évaluer la qualité d'un site web selon les techniques d'intégration w...Comment évaluer la qualité d'un site web selon les techniques d'intégration w...
Comment évaluer la qualité d'un site web selon les techniques d'intégration w...
 
LESS : moins de CSS, plus de fun ! (KiwiParty 2011)
LESS : moins de CSS, plus de fun ! (KiwiParty 2011)LESS : moins de CSS, plus de fun ! (KiwiParty 2011)
LESS : moins de CSS, plus de fun ! (KiwiParty 2011)
 
Cours yeoman backbone box2d
Cours yeoman backbone box2dCours yeoman backbone box2d
Cours yeoman backbone box2d
 
JQuery
JQueryJQuery
JQuery
 

More from Romy Duhem-Verdière

Améliorer la lisibilité typographique à l'écran
Améliorer la lisibilité typographique à l'écranAméliorer la lisibilité typographique à l'écran
Améliorer la lisibilité typographique à l'écranRomy Duhem-Verdière
 
Les recettes de cuisine sont-elles libres ?
Les recettes de cuisine sont-elles libres ?Les recettes de cuisine sont-elles libres ?
Les recettes de cuisine sont-elles libres ?Romy Duhem-Verdière
 
Du zoning au mockup, itinéraire d'une maquette web
Du zoning au mockup, itinéraire d'une maquette webDu zoning au mockup, itinéraire d'une maquette web
Du zoning au mockup, itinéraire d'une maquette webRomy Duhem-Verdière
 
Bonnes pratiques intégration robuste
Bonnes pratiques intégration robusteBonnes pratiques intégration robuste
Bonnes pratiques intégration robusteRomy Duhem-Verdière
 

More from Romy Duhem-Verdière (7)

Bien composer le texte web
Bien composer le texte webBien composer le texte web
Bien composer le texte web
 
Améliorer la lisibilité typographique à l'écran
Améliorer la lisibilité typographique à l'écranAméliorer la lisibilité typographique à l'écran
Améliorer la lisibilité typographique à l'écran
 
Les recettes de cuisine sont-elles libres ?
Les recettes de cuisine sont-elles libres ?Les recettes de cuisine sont-elles libres ?
Les recettes de cuisine sont-elles libres ?
 
Du zoning au mockup, itinéraire d'une maquette web
Du zoning au mockup, itinéraire d'une maquette webDu zoning au mockup, itinéraire d'une maquette web
Du zoning au mockup, itinéraire d'une maquette web
 
Bonnes pratiques graphiques
Bonnes pratiques graphiquesBonnes pratiques graphiques
Bonnes pratiques graphiques
 
Bonnes pratiques intégration robuste
Bonnes pratiques intégration robusteBonnes pratiques intégration robuste
Bonnes pratiques intégration robuste
 
Méthode CSS modulaire Daisy
Méthode CSS modulaire DaisyMéthode CSS modulaire Daisy
Méthode CSS modulaire Daisy
 

Cascade et héritage : concevoir, organiser, optimiser…

  • 1. Cascade et héritage : concevoir, organiser, optimiser et maintenir ses feuilles de styles Cet atelier propose des éléments de méthode pour l’intégration de sites web complexes, en s’interrogeant sur les points suivants : Comment envisager un projet, mettre en place un cadre de travail, prévoir les évolutions et la maintenance ? Comment s’organiser pour traiter de façon efficace les éléments génériques, les déclinaisons, et les parties plus spécifiques ? Quelles sont les possibilités d’optimisation, et en quoi tout cela impacte directement la qualité, l’accessibilité, les performances d’ un site ?
  • 2. Cascade et héritage Qui sommes nous ? Qui sommes-nous ? Marie Romy Hugues Destandau Duhem-Verdière Moreno Intégratrice Intégratrice Intégrateur XHTML CSS 2 XHTML CSS 2 XHTML CSS 2 Ototoï Indépendante Gaya
  • 3. Cascade et héritage Concevoir, organiser, optimiser et maintenir ses feuilles de styles 1. Rappel : les principes de base 2. Mettre en place des règles de travail 3. Du générique au spécifique
  • 4. Cascade et héritage Rappel : les principes de base Documents de référence Les spécifications du langage CSS (recommandation du W3C du 12 mai 1998 révisée en avril 2008) Originales en version anglaise : http://www.w3.org/TR/2008/REC-CSS2-20080411 Leur traduction en français : http://www.yoyodesign.org/doc/w3c/css2/cover.html http://www.yoyodesign.org/doc/w3c/css2/cascade.html
  • 5. Cascade et héritage Rappel : les principes de base Rappel lexical Une règle CSS consiste en deux parties principales : un sélecteur ('H1') et une déclaration ('color: blue'). Celle-ci se compose à son tour de deux parties : une propriété ('color') et une valeur ('blue') Un bloc de déclaration commence par une accolade gauche ({) et se termine par l'accolade droite (}) correspondante. On doit placer entre celles-ci une liste de déclarations séparées par des points-virgules (;) ou, sinon, ne rien y mettre. http://www.yoyodesign.org/doc/w3c/css2/conform.html
  • 6. Cascade et héritage Rappel : les principes de base Héritage Certaines propriétés héritent de la valeur de leur élément parent dans l'arbre du document. Liste des propriétés : http://www.w3.org/TR/CSS2/propidx.html On peut forcer les propriétés qui n'héritent pas par défaut à prendre la valeur de leur parent en spécifiant la valeur 'inherit' .conteneur{ .conteneur{ color:#f00; color:#f00; padding:10px; padding:10px; } } .contenu{ padding:inherit; }
  • 7. Cascade et héritage Rappel : les principes de base Cascade La cascade de CSS définit un ordre de priorité, ou poids, pour chaque règle de style. Quand plusieurs règles sont mises en œuvre, celle avec le plus grand poids a la préséance. Les feuilles de style ont trois origines différentes : 1. celles de l'agent utilisateur 2. celles de l'utilisateur 3. celles de l'auteur
  • 8. Cascade et héritage Rappel : les principes de base Les styles de l'auteur 1. Feuille de style externe : <link href=quot;css/styles.cssquot; rel=quot;stylesheetquot; type=quot;text/cs h2 { color: pink; } 2. Dans le head : <style type=quot;text/cssquot;> h2 { color: red; } </style> 3. Style inline : <h2 style=quot;font-weight: bold;quot;>Titre 2</h2>
  • 9. Cascade et héritage Rappel : les principes de base Cascade : style de l'utilisateur 1em = la valeur de 'font-size' Celle de body par défaut est donnée par les préférences du navigateur, fixées par l'internaute
  • 10. Cascade et héritage Rappel : les principes de base Exemple d'application de la cascade http://www.pas-sages.org/pw2008/cascade1.html
  • 11. Cascade et héritage Rappel : les principes de base Cascade li: valeur par défaut 1em li{ font-size:0.75em; } li{ font-size:0.75em; } li li{ font-size:1em; } 0.75 x 0.75 = 0.56 (pour 1 em à 16px = 8.96px) 0.75 x 1 = 0.75 0.75 x 0.75 x 0.75 = 0.42 0.75 x 1 x 1 = 0.75 (pour 1 em à 16px = 6.7px)
  • 12. Cascade et héritage Rappel : les principes de base Cascade : spécificité des sélecteurs 1. * {...} : 0000 (aucun idenfifiant, aucune classe, aucun élément) 2. p {...} : 0001 (aucun idenfifiant, aucune classe, un élément) 3. blockquote p {...} : 0002 (aucun idenfifiant, aucune classe, deux éléments) 4. .class {...} : 0010 (aucun idenfifiant, une classe, aucun élément) 5. p.class {...} : 0011 (aucun idenfifiant, une classe, un élément) 6. blockquote p.class {...} : 0012 (aucun idenfifiant, une classe, deux éléments) 7. #id {...} : 0100 (un idenfifiant, aucune classe, aucun élément) 8. p#id {...} : 0101 (un idenfifiant, aucune classe, un élément) 9. blockquote p#id {...} : 0102 (un idenfifiant, aucune classe, deux éléments) 10. .class #id {...} : 0110 (un idenfifiant, une classe, aucun élément) 11. .class p#id {...} : 0111 (un idenfifiant, une classe, un élément) 12. blockquote.class p#id {...} : 0112 (un idenfifiant, une classe, deux éléments) 13. <p style=quot;...quot;> : 1000 (attribut HTML style qui ne sera supplanté que par un style utilisateur normal) 14. <p style=quot;... !importantquot;> : 1000 (attribut HTML style marqué !important qui ne sera supplanté que par un style utilisateur lui-même marqué !important) Source : http://openweb.eu.org/articles/cascade_css
  • 13. Cascade et héritage Rappel : les principes de base Cascade : spécificité des sélecteurs En supposant que tous les sélecteurs suivants sont justes et désignent le même élément, lequel sera appliqué en priorité ? 1. #page ul li a { } 2. #page .menu a { } 3. div.menu ul li a { } 4. div#page ul a { } Source : Quiz Alsacréations N°7 : CSS difficile
  • 14. Cascade et héritage Rappel : les principes de base Cascade : spécificité des sélecteurs En supposant que tous les sélecteurs suivants sont justes et désignent le même élément, lequel sera appliqué en priorité ? 1. #page ul li a { } 0103 : le sélecteur contient 1 identifiant, 0 classe et 3 éléments 2. #page .menu a { } 0111 : le sélecteur contient 1 identifiant, 1 classe et 1 élément 3. div.menu ul li a { } 0014 : le sélecteur contient 1 classe et 4 éléments 4. div#page ul a { } 0103 : le sélecteur contient 1 identifiant et 3 éléments Source : Quiz Alsacréations N°7 : CSS difficile
  • 15. Cascade et héritage Rappel : les principes de base *{ color:#f00; } /*rouge 0000 */
  • 16. Cascade et héritage Rappel : les principes de base p{ color:#00f; } /*bleu 0001 */ *{ color:#f00; } /*rouge 0000 */
  • 17. Cascade et héritage Rappel : les principes de base p em{ color:#0f0; } /*vert 0002 */ p{ color:#00f; } /*bleu 0001 */ *{ color:#f00; } /*rouge 0000 */
  • 18. Cascade et héritage Rappel : les principes de base p.chapeau{ color:#000; } /*noir 0011 */ p em{ color:#0f0; } /*vert 0002 */ p{ color:#00f; } /*bleu 0001 */ *{ color:#f00; } /*rouge 0000 */ http://www.pas-sages.org/pw2008/poids4.html
  • 19. Cascade et héritage Rappel : les principes de base body p.chapeau{ color:#666; } /*gris 0012 */ p.chapeau{ color:#000; } /*noir 0011 */ p em{ color:#0f0; } /*vert 0002 */ p{ color:#00f; } /*bleu 0001 */ *{ color:#f00; } /*rouge 0000 */ http://www.pas-sages.org/pw2008/poids5.html
  • 20. Cascade et héritage Rappel : les principes de base #chapeau1{ color:#66ffff; } /*turquoise 0100 */ body p.chapeau{ color:#666; } /*gris 0012 */ p.chapeau{ color:#000; } /*noir 0011 */ p em{ color:#0f0; } /*vert 0002 */ p{ color:#00f; } /*bleu 0001 */ *{ color:#f00; } /*rouge 0000 */
  • 21. Cascade et héritage Rappel : les principes de base p#chapeau1{ color:#339999; } /*canard 0101 */ #chapeau1{ color:#66ffff; } /*turquoise 0100 */ body p.chapeau{ color:#666; } /*gris 0012 */ p.chapeau{ color:#000; } /*noir 0011 */ p em{ color:#0f0; } /*vert 0002 */ p{ color:#00f; } /*bleu 0001 */ *{ color:#f00; } /*rouge 0000 */
  • 22. Cascade et héritage Rappel : les principes de base Cascade : ordre d'application des valeurs (par priorité) 1. valeur donnée par la cascade 2. valeur héritée de l'élément parent (en général valeur calculée) 3. valeur initiale de la propriété http://www.yoyodesign.org/doc/w3c/css2/cascade.html#specified-value
  • 23. Cascade et héritage Rappel : les principes de base Cascade Pour trouver la valeur d'une combinaison élément/propriété, les agents utilisateurs doivent suivre l'ordre de tri suivant : 1. par type de média visé. Celles-ci s'appliquent si le sélecteur correspond à cet élément ; 2. les feuilles de style de l'auteur surclassent celles de l'utilisateur, ces dernières surclassant la feuille de style par défaut ; 3. selon la spécificité des sélecteurs : les plus spécifiques surclasseront ceux plus généraux ; 4. selon l'ordre de spécification : si deux règles ont les mêmes poids, origines et spécificités, c'est la dernière survenue qui l'emporte. http://www.yoyodesign.org/doc/w3c/css2/cascade.html#cascading-order
  • 24. Cascade et héritage Rappel : les principes de base Les propriétés raccourcies h1 { margin-top: 10px; margin-right: 20px; margin-bottom: 15px; margin-left: 20px; } h1 { margin: 10px 20px 15px 20px; } Truc de l'horloge : lire dans l'ordre midi, 3, 6 et 9 heures. Horloges raccourcies (autres exemples) : h1 { margin: 10px 20px; } h1 { margin: 10px 20px 15px; }
  • 25. Cascade et héritage Rappel : les principes de base Les propriétés raccourcies h1 { background-color: #FFFFFF; background-image: url(img/fond.gif); background-repeat: repeat-x; background-attachment: fixed; background-position: top center; } h1 { background: #FFF url(img/fond.gif) repeat-x fixed top center; }
  • 26. Cascade et héritage Rappel : les principes de base Les propriétés raccourcies h1 { border-top-width: 1px; border-right-width: 2px; border-bottom-width: 3px; border-left-width: 2px; border-style: solid; border-color: #006699; } h1 { border: 1px solid #069; border-width: 1px 2px 3px 2px; }
  • 27. Cascade et héritage Rappel : les principes de base Les propriétés raccourcies h1 { font-weight: bold; font-size: 12pt; line-height: 14pt; font-family: Helvetica, sans-serif; font-variant: small-caps; font-style: italic; font-stretch: normal; font-size-adjust: none } h1 { font: italic small-caps bold 12pt/14pt Helvetica, sans-serif; }
  • 28. Cascade et héritage Rappel : les principes de base Les classes multiples class=quot;content_box content_box_bluequot; permet de décliner facilement et rapidement des éléments évite une surcharge de div
  • 29. Cascade et héritage Rappel : les principes de base LoVe Fuck HAte a {color: blue; } a:link {color: blue; } a:visited {color: purple; } a:focus {color: green; } a:hover {color: green; } a:active {color: red; } La règle a:hover doit être placé après a:link et a:visited, sinon les règles de cascade feront que la propriété color spécifiée sera cachée.
  • 30. Cascade et héritage Concevoir, organiser, optimiser et maintenir ses feuilles de styles 1. Rappel : les principes de base 2. Mettre en place des règles de travail 3. Du générique au spécifique
  • 31. Cascade et héritage Mettre en place des règles de travail Mettre en place des règles de travail Organisation des répertoires
  • 32. Cascade et héritage Mettre en place des règles de travail Mettre en place des règles de travail Organisation des répertoires
  • 33. Cascade et héritage Mettre en place des règles de travail Mettre en place des règles de travail Organisation des répertoires
  • 34. Cascade et héritage Mettre en place des règles de travail Mettre en place des règles de travail Organisation des répertoires un site statique
  • 35. Cascade et héritage Mettre en place des règles de travail Mettre en place des règles de travail Organisation des répertoires un site décliné dans différents pays ici les css de la version commune pour l'ensemble des sites
  • 36. Cascade et héritage Mettre en place des règles de travail Mettre en place des règles de travail Organisation des répertoires un site décliné dans différents pays ici les css de la version française pour les surcharge de la version globale
  • 37. Cascade et héritage Mettre en place des règles de travail Mettre en place des règles de travail Organisation des répertoires Organisation des répertoires : un site multilingue + langues arabes... s'adapter aux contraintes de l'outils !
  • 38. Cascade et héritage Mettre en place des règles de travail Mettre en place des règles de travail Penser la structure Prendre le temps d'examiner l'ensemble les éléments à disposition : fichiers PSD, storyboars, documents de conception ergonomique, contenus... En relation avec l'équipe des concepteurs, ergonomes et graphistes : favoriser les éléments réutilisables et génériques. Consulter les développeurs et intégrateurs CMS, pour produire le code HTML qu'ils pourront intégrer au mieux, ou qui serra le plus simple à utiliser. Anticiper : il y a de grandes chances que la page d'accueil de votre nouveau projet évolue en cours de route. Arrangez-vous pour qu'elle soit modulable et indépendante des autres pages.
  • 39. Cascade et héritage Mettre en place des règles de travail Mettre en place des règles de travail
  • 40. Cascade et héritage Mettre en place des règles de travail Mettre en place des règles de travail
  • 41. Cascade et héritage Mettre en place des règles de travail Mettre en place des règles de travail
  • 42. Cascade et héritage Mettre en place des règles de travail Nomenclature
  • 43. Cascade et héritage Mettre en place des règles de travail Nomenclature Nommez vos sélecteurs de façon sémantique en indiquant leur rôle plutôt que leur apparence : ex: .style_3 devient .intertitre ex: .RougeGras devient .warning ex: .floatRight devient .contexte On devrait pouvoir relire votre feuille de style et la comprendre, sans commentaires !
  • 44.
  • 45.
  • 46. Cascade et héritage Mettre en place des règles de travail Mettre en place des règles de travail Nomenclature S'inspirer des standards à venir (HTML5, WAI-ARIA, etc.) Les nouveaux éléments du HTML 5 : Source : http://alistapart.developpez.com/tutoriels/html/presentation-html5/
  • 47. Cascade et héritage Mettre en place des règles de travail Mettre en place des règles de travail Nomenclature S'inspirer des standards à venir (HTML5, WAI-ARIA, etc.) Un avant-goût du HTML 5 : Source : http://alistapart.developpez.com/tutoriels/html/presentation-html5/
  • 48. Cascade et héritage Mettre en place des règles de travail Mettre en place des règles de travail Nomenclature Écrivez un code homogène et lisible : Espacez les valeurs Ex: .selecteur { propriete: valeur; } Une tabulation correspond à 4 espaces Un sélecteur par ligne Ex: .selecteur { propriete: valeur; propriete: Retour à la ligne avant chaque nouveau bloc de règles CSS
  • 49. Cascade et héritage Mettre en place des règles de travail Nomenclature
  • 50. Cascade et héritage Mettre en place des règles de travail Nomenclature
  • 51. Cascade et héritage Mettre en place des règles de travail
  • 52. Cascade et héritage Mettre en place des règles de travail
  • 53. Cascade et héritage Mettre en place des règles de travail
  • 54. Cascade et héritage Mettre en place des règles de travail Mettre en place des règles de travail Cas particulier : on doit insérer une application ou un bout de site dans un ou des sites existants
  • 55.
  • 56.
  • 57. Cascade et héritage Mettre en place des règles de travail Mettre en place des règles de travail S'accommoder d'autres règles Reset CSS global pour donner à votre site web une allure identique quel que soit le navigateur utilisé éléments à styler par défaut (même ceux qui n'apparaitraient pas dans les maquettes -> anticiper les évolutions)
  • 58. Cascade et héritage Mettre en place des règles de travail Mettre en place des règles de travail S'accommoder d'autres règles
  • 59. Cascade et héritage Mettre en place des règles de travail Mettre en place des règles de travail S'accommoder d'autres règles Framework CSS Boîte à outils CSS, avec des modèles pré-écrits. Jeu de feuilles de styles par défaut, de librairies, de conventions et bonnes pratiques, qui forment une structure de base pour un projet web. Exemples : Blueprint / Yahoo! UI Library: Grids CSS / Tripoli
  • 60. Cascade et héritage Mettre en place des règles de travail Mettre en place des règles de travail S'accommoder d'autres règles Intégration en CMS Certains CMS imposent leur structure, feuilles de style, etc. : feuilles de style par défaut à inclure pour le travail structure de page imposée HTML généré
  • 61. Cascade et héritage Mettre en place des règles de travail Mettre en place des règles de travail S'accommoder d'autres règles Exemple d'intégration CMS : les blocs texte+image dans TYPO3
  • 62. Cascade et héritage Mettre en place des règles de travail Mettre en place des règles de travail Des gabarits maniable et évolutifs présenter tous les éléments disponibles dans le site du plus générique vers le plus spécifique distinguer les zones éditables de celles générées définir des éléments génériques, utilisables dans différents contextes établir des chartes typographique, graphique, éditoriale maintenir des structures proches, de projets en projets
  • 63. Cascade et héritage Mettre en place des règles de travail Mettre en place des règles de travail Charte typo http://www.cartografareilpresente.org/article23.html
  • 65. Cascade et héritage Mettre en place des règles de travail Mettre en place des règles de travail Page de d'exemples
  • 66.
  • 67.
  • 68.
  • 69.
  • 70. Cascade et héritage Concevoir, organiser, optimiser et maintenir ses feuilles de styles 1. Rappel : les principes de base 2. Mettre en place des règles de travail 3. Du générique au spécifique
  • 71. Cascade et héritage Du générique au spécifique Comment découperiez-vous cette maquette ? Voir en ligne : http://www.medicamat.com Client : Medicamat - Développement : Ilomedia - Graphisme : Timothée Mahuzier
  • 72. Cascade et héritage Du générique au spécifique Comment découperiez-vous cette maquette ?
  • 73. Cascade et héritage Du générique au spécifique Comment découperiez-vous cette maquette ? Voir en ligne : http://www.medicamat.com Client : Medicamat - Développement : Ilomedia - Graphisme : Timothée Mahuzier
  • 74. Cascade et héritage Du générique au spécifique Comment découperiez-vous cette maquette ?
  • 75. Cascade et héritage Du générique au spécifique <link rel=quot;stylesheetquot; type=quot;text/cssquot; href=quot;css/styles.cssquot; /> <link rel=quot;stylesheetquot; type=quot;text/cssquot; href=quot;css/medicamat.cssquot; />
  • 76. Cascade et héritage Du générique au spécifique <link rel=quot;stylesheetquot; type=quot;text/cssquot; href=quot;css/styles.cssquot; /> <link rel=quot;stylesheetquot; type=quot;text/cssquot; href=quot;css/medicaderm.cssquot; />
  • 77. Cascade et héritage Du générique au spécifique <link rel=quot;stylesheetquot; type=quot;text/cssquot; href=quot;css/styles.cssquot; /> #container { width: 980px; margin: 0 auto; text-align: left; } #principal { } /* voir surcharges */ #secondaire { } /* voir surcharges */ #principal #contenu { background-color: #FFF; } <link rel=quot;stylesheetquot; type=quot;text/cssquot; href=quot;css/medicamat.cssquot; /> /* Surcharges pour MEDICAMAT */ #container { background: url(img/bg-medicamat.gif); } #principal { float: left; width: 670px; background: #EEFCEF; } #secondaire { width: 300px; float: right; } #principal #contenu { float: right; width: 420px; margin-right: 1 <link rel=quot;stylesheetquot; type=quot;text/cssquot; href=quot;css/medicaderm.cssquot; /> /* Surcharges pour MEDICADERM */ #container { background-image: url(img/bg-medicaderm.gif); } #principal { float: right; width: 769px; padding-bottom: 10px; ba #principal .coulisse { background: transparent url(img/filet-magi #secondaire { width: 202px; float: left; border-top: 15px solid # #principal #contenu { float: left; margin: 15px 0 0 10px; width:
  • 78. Cascade et héritage Du générique au spécifique Ordre d'écriture de la feuille de style Générique 1. Reset global 2. Base typo : h1, h2, h3... 3. Formulaires (base) 4. Structure de la page : header, main, footer 5. Structure des templates : 1 colonne, 2 colonnes, 3 colonnes, ... 6. Éléments du contenu, blocs génériques 7. Éléments de navigation : menus, pagination 8. Variantes par gabarit : page d'accueil, etc. 9. Surcharges pour medias : print, handled Cas particuliers
  • 79. Cascade et héritage Du générique au spécifique Ordre d'écriture de la feuille de style reset -> base typo ->
  • 80. base typo -> (suite)
  • 81. formulaires -> (base)
  • 83.
  • 84. navigation -> (éléments génériques)
  • 86. Cascade et héritage Du générique au spécifique Déclinaison de blocs éditables
  • 87. Cascade et héritage Du générique au spécifique Déclinaison de blocs éditables
  • 88. Cascade et héritage Du générique au spécifique Déclinaison de blocs, contenu généré
  • 89. Cascade et héritage Du générique au spécifique Un style flexible Évitez la « classite aiguë » : le moins de class sur tous les éléments simples (p, li), stylez plutôt à partir d'un bloc conteneur, exploitez les parents ! Évitez de fixer des largeurs et hauteurs sur les blocs conteneurs pour les réutiliser un max OK, ça oblige bien souvent à rajouter des div...
  • 90. Cascade et héritage Du générique au spécifique Déclinaison des couleurs des rubriques
  • 91. Cascade et héritage Du générique au spécifique Déclinaison des couleurs des rubriques
  • 92. Cascade et héritage Du générique au spécifique Déclinaison des couleurs des rubriques Donner une couleur par defaut À partir d'un classe très haut dans l'arbre du document, sur le body par exemple Isoler les éléments à modifier Surcharger
  • 93. Cascade et héritage Du générique au spécifique
  • 94. Cascade et héritage Du générique au spécifique
  • 95. Cascade et héritage Du générique au spécifique
  • 96. Cascade et héritage Du générique au spécifique Déclinaison de blocs
  • 97. Cascade et héritage Du générique au spécifique Déclinaison de blocs
  • 98. Cascade et héritage Du générique au spécifique Des blocs quot;dépliablesquot; dans différents CMS TYPO3
  • 99. Cascade et héritage Du générique au spécifique Des blocs quot;dépliablesquot; dans différents CMS SPIP
  • 100.
  • 101. Cascade et héritage Du générique au spécifique
  • 102. Cascade et héritage Du générique au spécifique Des formulaires génériques
  • 103. Cascade et héritage Du générique au spécifique Des formulaires génériques
  • 104. Cascade et héritage Du générique au spécifique Des formulaires génériques décliner l'ensemble des éléments de formulaire fieldset, legend, label, input, select,... prévoir les messages d'erreurs, annotations et exemples ainsi que les pages de confirmation, de résultats...
  • 105. Cascade et héritage Du générique au spécifique
  • 106. Cascade et héritage Du générique au spécifique
  • 107. Cascade et héritage Du générique au spécifique
  • 108. ?
  • 109. la cerise sur le gateau http://freedotfr.free.fr/css.htm
  • 110. Cascade et héritage Annexes Spécifications du W3C L'article sur wikipedia (refondu) http://fr.wikipedia. CSS org/wiki/Feuilles_de_style_en_cascade en :http://www.w3.org/TR/CSS/ fr : http://www.yoyodesign.org/doc/w3c/css2/cover.html Autours de l'organisation des CSS HTML 4.01 http://www.pompage.net/pompe/cssefficace/ en : http://www.w3.org/TR/html401/ http://www.pompage.net/pompe/raccourcisCSS/ fr : http://www.la-grange.net/w3c/html4.01/cover.html http://openweb.eu.org/articles/cascade_css http://www.smashingmagazine. xHTML 1.0 com/2008/05/02/improving-code-readability-with-css- http://www.la-grange.net/w3c/xhtml1/ styleguides/ http://www.css-faciles.com/heritage-cascade.php HTML 5 http://www.css4design.com/blog/5-reset-css-a-la- http://www.w3.org/TR/html5/ loupe-pour-une-remise-a-zero-des-valeurs-par- defaut-des-navigateurs WAI-ARIA http://www.css4design.com/blog/css-structurer- http://www.w3.org/TR/wai-aria/#roles documenter-et-maintenir http://www.css4design.com/blog/organiser-ses- feuilles-de-style-css http://css.developpez.com/tutoriels/framework-css/