SlideShare a Scribd company logo
1 of 68
Download to read offline
Intégrateur : entre le marteau et l'enclume
Bonnes pratiques
d'intégration robuste
Atelier technique CSS — Paris Web 2011
par Romy Duhem-Verdière
http://romy.tetue.net/857
Intégrateur de STPo - Robot de Gordon Bennett
Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011   2
L'intégrateur
                                                 XHML, CSS, jQuery,
                                       media queries, microformats,
                                         RGAA, Accessiweb, WCAG,
                                          BluePrint, 960 Grid, ooCSS,
                                           LESS, Framework Z, sprites,
                                                       PSD, Gimp
                                                              …


Cf.: http://www.nota-bene.org/Integrateurs-montez-au-front-Paris
Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011             3
Vous réalisez vos intégrations
                         avec soin et amour :

                         P valides
                         P sémantiques
                         P accessibles




Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011   4
Mais pourquoi faut-il
                        que le dev'
                        saccage tout ça ?




Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011   5
Le développeur



            .toto p a p { … }




Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011   6
PHP, ASP, Java, SQL,
           Perl, Ruby, Python, Klingon,
                  Zend, Symphony,
     eZ publish, Drupal, SPIP, TypoScript,
                 cahier des charges
                              …




Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011   7
Faire simple !
Ce qu'à codé l'intégrateur

                     h1 { font-size : 2em; }
                     h2 { font-size : 1.33em; }
                     h3 { font-size : 1.17em; }
                     h4 { font-size : 1.1em; }
                     p { font-size: .688em; }
                     li { font-size: .688em; }
                     blockquote { font-size: .688em; }
                     small { font-size: .52em; }




Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011   9
Problèmes




Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011   10
Trop de font-size !




                                                                        Résultats de recherche
                                                des occurrences de « font-size » dans un projet... 11
Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011
Ressortir la calculette ?




Em Calculator : http://riddle.pl/emcalc/
Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011   12
Définir une taille relative
html { font-size: 100%; }
body { font-size: .75em; }

h1 { font-size: 150%; }
h2 { font-size: 130%; }
h3 { font-size: 110%; }

small { font-size: 90%; }




Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011   13
Définir une taille relative
html { font-size: 100%; }
body { font-size: .75em; }

h1 { font-size: 150%; }
h2 { font-size: 130%; }
h3 { font-size: 110%; }

small { font-size: 90%; }




Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011   14
Définir une taille relative
html { font-size: 100%; }
body { font-size: .75em; }

h1 { font-size: 150%; }
h2 { font-size: 130%; }
h3 { font-size: 110%; }

small { font-size: 90%; }




Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011   15
Définir une taille relative
html { font-size: 100%; }
body { font-size: .75em; }

h1 { font-size: 150%; }
h2 { font-size: 130%; }
h3 { font-size: 110%; }

small { font-size: 90%; }



Cf. : http://www.pompage.net/definir-des-tailles-de-polices-en-css
Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011         16
Définir une taille relative
1) Ne pas définir la taille de chaque élément !

2) Définir une font-size de base, sur le <body>
    (dont chaque élément hérite)

3) Puis définir quelques exceptions :
     ●
         titres plus gros

     ●
         mentions plus petites




Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011   17
Au fait, qui saccage
   l'intégration ?
Au fait, qui saccage ?

1) Le développement




Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011   19
Au fait, qui saccage ?

1) Le développement




2) Le code généré
    (framework, CMS, plugins)




Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011   20
Au fait, qui saccage ?

1) Le développement




2) Le code généré
    (framework, CMS, plugins)



3) Les rédacteurs


Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011   21
Comment améliorer ?
                                                  1) Discuter avec les

1) Le développement                                   développeurs

                                                  2) Apprendre à coder souple
                                                      et modulaire

2) Le code généré
    (framework, CMS, plugins)



3) Les rédacteurs


Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011                    22
Comment améliorer ?
                                                  1) Discuter avec les

1) Le développement                                   développeurs

                                                  2) Apprendre à coder souple
                                                      et modulaire

2) Le code généré                                 3) Travailler sur un échantillon
    (framework, CMS, plugins)                         de code généré



3) Les rédacteurs


Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011                         23
Comment améliorer ?
                                                  1) Discuter avec les

1) Le développement                                   développeurs

                                                  2) Apprendre à coder souple
                                                      et modulaire

2) Le code généré                                 3) Travailler sur un échantillon
    (framework, CMS, plugins)                         de code généré

                                                  4) Anticiper les
3) Les rédacteurs                                     expérimentations
                                                      des rédacteurs

Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011                         24
Anticiper
Quel CSS pour styler ces listes ?




Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011   26
Ce qu'à codé l'intégrateur




Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011   27
Problème




Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011   28
Un bon exemple
/* Lists
--------------------------------------------- */

li ul,
li ol               { margin: 0; }
ul, ol              { margin: 0 1.5em 1.5em 0; padding-left: 1.5em; }

ul                  { list-style-type: disc; }
ol                  { list-style-type: decimal; }

dl                  { margin: 0 0 1.5em 0; }
dl dt               { font-weight: bold; }
dd                  { margin-left: 1.5em;}




Source : http://www.blueprintcss.org
Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011      29
Correction




Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011            30
Listes hétérogènes




Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011   31
Comment anticiper ?
1) Styler tout le HTML
     ●
         y compris les balises rarement utilisées

     ●
         utiliser une page de démo exhaustive

2) Se constituer une page de test
     ●
         récolter des exemples vicieux

     ●
         des extraits générés via WYSIWYG




Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011   32
Styler
                                               tout le HTML


                                   Source : framework CSS Blueprint



Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011          33
Exemple de charte typo




Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011                        34
                                                               Source : charte typo SPIP
Laisser la main
Qui l'emporte ?

                           #content h2 { color: red; }




                        .chapo h2 { color: purple; }




                    De quelle couleur sera le titre du chapo ?


Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011     36
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é ?


a) #page         ul li a { }

b) #page         .menu a { }

c) div.menu             ul li a { }

d) div#page             ul a { }

Source : http://www.alsacreations.com/quiz/lire/7-css-difficile.html
Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011                37
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é ?


a) #page          ul li a { }
0103 : le sélecteur contient 1 identifiant, 0 classe et 3 éléments


b) #page          .menu a { }
0111 : le sélecteur contient 1 identifiant, 1 classe et 1 élément


c) div.menu               ul li a { }
0014 : le sélecteur contient 1 classe et 4 éléments


d) div#page               ul a { }
0103 : le sélecteur contient 1 identifiant et 3 éléments


Cascade CSS et priorité des sélecteurs : http://openweb.eu.org/articles/cascade_css/
Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011                           38
Soyez .class plutôt qu'#ID




Voir : http://oli.jp/2011/ids/
Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011   39
Soyez .class plutôt qu'#ID




Exemple : http://romy.tetue.net/structure-html-de-base
Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011   40
Laissez les IDs au dev !
1) Les ID sont uniques :
    laissez la liberté de réemployer
    à ceux qui suivent

2) Réservez les IDs à :
     ●
         JavaScript
     ●
         formulaires
     ●
         N° identifiants (BDD)
     ●
         etc.


Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011   41
Mettre des .class
 à disposition
Mettre des .class à disposition



small, .small { font-size: 90%; }
big,   .big   { font-size: 130%;}




Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011   43
Mettre des .class à disposition


h1,           .h1               {   font-size:       3em; line-height: 1; marg
h2,           .h2               {   font-size:       2em; margin-bottom: 0.75e
h3,           .h3               {   font-size:       1.5em; line-height: 1; ma
h4,           .h4               {   font-size:       1.2em; line-height: 1.25;
h5,           .h5               {   font-size:       1em; font-weight: bold; m
h6,           .h6               {   font-size:       1em; font-weight: bold; }




D'après : Object Oriented CSS
Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011             44
Mettre des .class à disposition


body,     .font1 { font-family:                                Helvetica, Arial, san
h1,h2,    .font2 { font-family:                                'Arial Black', Gadget
code,pre, .font3 { font-family:                                Courier, monospace; }
          .font4 { font-family:                                Palatino, Georgia, se




Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011                   45
Familles typo
                                                               + classes
                                                               réemployables



                                                               Définition
                                                               des titres
                                                               + classes
                                                               réemployables




                                                               Exceptions
                                                               définies
                                                               . via sélecteur
                                                                 parent
                                                               . via classes
                                                                 distinctives




Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011                     46
Mettre des .class à disposition




Voir : http://romy.tetue.net/styler-les-messages-du-systeme
Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011   47
Sélecteurs multiples

                                                                       pink
                                                                       red
                                                                       orange
                                             add               super   yellow
<input class=”button                         edit              big     green ”>
                                             cancel            small   blue
                                             delete                    black
                                             like                      gray
                                             next                      white
                                             prev
                                             start
                                             save
                                             submit

Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011                    48
Séparer sémantique et déco
                                             Classes sémantiques       déco

                                                                       pink
                                                                       red
                                                                       orange
                                             add               super   yellow
<input class=”button                         edit              big     green ”>
                                             cancel            small   blue
                                             delete                    black
                                             like                      gray
                                             next                      white
                                             prev
                                             start
                                             save
                                             submit

Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011                    49
Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011   50
Bref, livrez un framework !
            Avec du code facilement ré-utilisable pour les suivants




Source : framework interne de la Netscouade
Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011          51
Habiller
le code généré
Quelle structure HTML ?
   En plus de celles propres aux formulaires (form, fieldset, label, input)
  quelles balises HTML utiliser pour structurer ce formulaire de contact ?




Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011                  53
Ce qu'à codé l'intégrateur




Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011   54
Code généré




Exemple de code généré par Joomla
Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011   55
Code généré




Exemple de code généré par SPIP
Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011   56
Code généré




Exemple de code généré par Zend Framework
Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011   57
Conclusion ?
1) Ne pas présupposer
    de la structure HTML

2) Demander un échantillon
    de code généré
    (voire adopter le framework
    de l'outil, du dev, de l'équipe)

3) Appliquer le style
    à cet échantillon

Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011   58
Penser modulaire




Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011   59
Bloc modulaire
                         Quel code
               pour ce bloc d'actus ?




Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011   60
Bloc modulaire
<div class="bloc" id="news">
   <h2>L'info en continu</h2>
   <ul>
       <li><a href="#">...</a></li>
       <li><a href="#">...</a></li>
       <li><a href="#">...</a></li>
       <li><a href="#">...</a></li>
       <li><a href="#">...</a></li>
   </ul>
   <a href="#" class="more">Toutes les infos</a>
</div><!--#news-->




#news   { width: 300px; }
#news   h2 { padding-left: 20px; background: url(img/puce.png) no-repeat;
#news   ul { background: #e5e4d3; border: 1px solid #5b4c2a; border-width
#news   li { display: block; padding: 10px; }
#news   .more { display: block; color: red; background: url(img/more.png)


 Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011      61
Bloc modulaire
                          Quel code
               pour ce bloc d'actus
               ailleurs dans la page ?




Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011   62
Bloc modulaire
<div class="bloc" id="news">
   <h2>L'info en continu</h2>
   <ul>
       <li><a href="#">...</a></li>
       <li><a href="#">...</a></li>
       <li><a href="#">...</a></li>
       <li><a href="#">...</a></li>
       <li><a href="#">...</a></li>
   </ul>
   <a href="#" class="more">Toutes les infos</a>
</div><!--#news-->




#news   { padding: 5px; background: #e5e4d3; }
#news   h2 { float: left; padding-left: 20px; background: url(img/puce.pn
#news   ul { }
#news   li { float: left; display: block; width: 660px; padding: 10px; ba
#news   .more { float: right; display: block; color: red; background: url


 Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011      63
Comment disposer des deux ?
<div class="bloc" id="news">
   <h2>L'info en continu</h2>
   <ul>
       <li><a href="#">...</a></li>
       <li><a href="#">...</a></li>
       <li><a href="#">...</a></li>
       <li><a href="#">...</a></li>
       <li><a href="#">...</a></li>
   </ul>
   <a href="#" class="more">Toutes les infos</a>
</div><!--#news-->
#news   { width: 300px; }
#news   h2 { padding-left: 20px; background: url(img/puce.png) no-repeat;
#news   ul { background: #e5e4d3; border: 1px solid #5b4c2a; border-width
#news   li { display: block; padding: 10px; }
#news   .more { display: block; color: red; background: url(img/more.png)

#news   { padding: 5px; background: #e5e4d3; }
#news   h2 { float: left; padding-left: 20px; background: url(img/puce.pn
#news   ul {}
#news   li { float: left; display: block; width: 660px; padding: 10px; ba
#news   .more { float: right; display: block; color: red; background: url
 Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011      64
Comment disposer des deux ?
<div class="bloc" id="news">
   <h2>L'info en continu</h2>
   <ul>
       <li><a href="#">...</a></li>                             Méthode 1 :
       <li><a href="#">...</a></li>
       <li><a href="#">...</a></li>
                                                                 surcharge
       <li><a href="#">...</a></li>
       <li><a href="#">...</a></li>
   </ul>
   <a href="#" class="more">Toutes les infos</a>
</div><!--#news-->
#news   { width: 300px; }
#news   h2 { padding-left: 20px; background: url(img/puce.png) no-repeat;
#news   ul { background: #e5e4d3; border: 1px solid #5b4c2a; border-width
#news   li { display: block; padding: 10px; }
#news   .more { display: block; color: red; background: url(img/more.png)

.toto   #news   { width: auto; padding: 5px; background: #e5e4d3; }
.toto   #news   h2 { float: left; }
.toto   #news   ul { background: none; border: 0; }
.toto   #news   li { float: left; width: 660px; background: #fff; }
.toto   #news   .more { float: right; border: 2px solid #fff; }

 Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011                 65
Comment disposer des deux ?
<div class="bloc" id="news">
   <h2>L'info en continu</h2>
   <ul>
       <li><a href="#">...</a></li>              Méthode 2 :
       <li><a href="#">...</a></li>
       <li><a href="#">...</a></li>
                                                bloc modulaire
       <li><a href="#">...</a></li>
       <li><a href="#">...</a></li>
   </ul>
   <a href="#" class="more">Toutes les infos</a>
</div><!--#news-->
#news   { }
#news   h2 { padding-left: 20px; background: url(img/puce.png) no-repeat;
#news   ul { }
#news   li { display: block; padding: 10px; }
#news   .more { display: block; color: red; background: url(img/more.png)

.aside #news { width: 300px; }
.aside #news ul { background: #e5e4d3; border: 1px solid #5b4c2a; borde

.toto #news { padding: 5px; background: #e5e4d3; }
.toto #news ul {}
.toto #news li { float: left; width: 660px; background: #fff; }
.toto technique .more { float: right;Paris Web 20112px solid #fff; }
 Atelier #news CSS — Romy Duhem-Verdière — border:                     66
Souple
sur les pattes arrières !
Merci !

Merci à Bertrand Keller de la Netscouade, à Martin Supiot de Clever Age, à Cyril Marion des Ateliers CYM,
à Hugues Moreno, Frédéric Xavier et à tous vos retours d'expérience en intégration. Merci à vous et #sharethelove
Retrouvez-moi ici : http://romy.tetue.net/857

More Related Content

What's hot

Alter way-wordcamp-paris-2014
Alter way-wordcamp-paris-2014Alter way-wordcamp-paris-2014
Alter way-wordcamp-paris-2014ALTER WAY
 
Trouvez le Thème WordPress Idéal - WordCamp 2014
Trouvez le Thème WordPress Idéal - WordCamp 2014Trouvez le Thème WordPress Idéal - WordCamp 2014
Trouvez le Thème WordPress Idéal - WordCamp 2014Alex Bortolotti
 
Alphorm.com Support de la Formation Adobe-Illustrator CC , Découverte du vect...
Alphorm.com Support de la Formation Adobe-Illustrator CC , Découverte du vect...Alphorm.com Support de la Formation Adobe-Illustrator CC , Découverte du vect...
Alphorm.com Support de la Formation Adobe-Illustrator CC , Découverte du vect...Alphorm
 
Ouvrir vos plugins aux autres développeurs - WPTech Nantes
Ouvrir vos plugins aux autres développeurs - WPTech NantesOuvrir vos plugins aux autres développeurs - WPTech Nantes
Ouvrir vos plugins aux autres développeurs - WPTech Nantescorsonr
 
alphorm.com - Formation Programmer en C++
alphorm.com - Formation Programmer en C++alphorm.com - Formation Programmer en C++
alphorm.com - Formation Programmer en C++Alphorm
 
Programmer en html5, css 3 et java script (70 480)
Programmer en html5, css 3 et java script (70 480)Programmer en html5, css 3 et java script (70 480)
Programmer en html5, css 3 et java script (70 480)Chamseddine Ouerhani
 
Formation html5 css3 java script
Formation html5 css3 java scriptFormation html5 css3 java script
Formation html5 css3 java scriptArrow Group
 
Alphorm.com Formation PCSoft(version20) GDS et Centres de contrôle
Alphorm.com Formation PCSoft(version20) GDS et Centres de contrôleAlphorm.com Formation PCSoft(version20) GDS et Centres de contrôle
Alphorm.com Formation PCSoft(version20) GDS et Centres de contrôleAlphorm
 
Wordpress et la sécurité des plugins
Wordpress et la sécurité des pluginsWordpress et la sécurité des plugins
Wordpress et la sécurité des pluginsBoiteaweb
 
Support de la formation Inventor 2017 : perfectionnement
Support de la formation Inventor 2017 : perfectionnementSupport de la formation Inventor 2017 : perfectionnement
Support de la formation Inventor 2017 : perfectionnementAlphorm
 
Alphorm.com Formation Le Language C
Alphorm.com  Formation Le Language C Alphorm.com  Formation Le Language C
Alphorm.com Formation Le Language C Alphorm
 
Alphorm.com Formation WordPress 4
Alphorm.com Formation WordPress 4 Alphorm.com Formation WordPress 4
Alphorm.com Formation WordPress 4 Alphorm
 
Alphorm.com Formation WebDev 22 Perfectionnement
Alphorm.com Formation WebDev 22 PerfectionnementAlphorm.com Formation WebDev 22 Perfectionnement
Alphorm.com Formation WebDev 22 PerfectionnementAlphorm
 
Etendre le Web avec les Web Components
Etendre le Web avec les Web ComponentsEtendre le Web avec les Web Components
Etendre le Web avec les Web Componentscjolif
 
Alphorm.com Formation Windev 20 Pefectionnement
Alphorm.com Formation Windev 20 Pefectionnement Alphorm.com Formation Windev 20 Pefectionnement
Alphorm.com Formation Windev 20 Pefectionnement Alphorm
 
Formation JavaScript full-stack (JS, jQuery, Node.js...)
Formation JavaScript full-stack (JS, jQuery, Node.js...)Formation JavaScript full-stack (JS, jQuery, Node.js...)
Formation JavaScript full-stack (JS, jQuery, Node.js...)guicara
 
Alphorm.com support de la formation programmer en C# 6
Alphorm.com support de la formation programmer en C# 6Alphorm.com support de la formation programmer en C# 6
Alphorm.com support de la formation programmer en C# 6Alphorm
 
Alphorm.com Formation knockoutJS
Alphorm.com Formation knockoutJSAlphorm.com Formation knockoutJS
Alphorm.com Formation knockoutJSAlphorm
 

What's hot (20)

Alter way-wordcamp-paris-2014
Alter way-wordcamp-paris-2014Alter way-wordcamp-paris-2014
Alter way-wordcamp-paris-2014
 
Trouvez le Thème WordPress Idéal - WordCamp 2014
Trouvez le Thème WordPress Idéal - WordCamp 2014Trouvez le Thème WordPress Idéal - WordCamp 2014
Trouvez le Thème WordPress Idéal - WordCamp 2014
 
Alphorm.com Support de la Formation Adobe-Illustrator CC , Découverte du vect...
Alphorm.com Support de la Formation Adobe-Illustrator CC , Découverte du vect...Alphorm.com Support de la Formation Adobe-Illustrator CC , Découverte du vect...
Alphorm.com Support de la Formation Adobe-Illustrator CC , Découverte du vect...
 
Ouvrir vos plugins aux autres développeurs - WPTech Nantes
Ouvrir vos plugins aux autres développeurs - WPTech NantesOuvrir vos plugins aux autres développeurs - WPTech Nantes
Ouvrir vos plugins aux autres développeurs - WPTech Nantes
 
Html5 bonnes-pratiques
Html5 bonnes-pratiquesHtml5 bonnes-pratiques
Html5 bonnes-pratiques
 
alphorm.com - Formation Programmer en C++
alphorm.com - Formation Programmer en C++alphorm.com - Formation Programmer en C++
alphorm.com - Formation Programmer en C++
 
Programmer en html5, css 3 et java script (70 480)
Programmer en html5, css 3 et java script (70 480)Programmer en html5, css 3 et java script (70 480)
Programmer en html5, css 3 et java script (70 480)
 
Formation html5 css3 java script
Formation html5 css3 java scriptFormation html5 css3 java script
Formation html5 css3 java script
 
Alphorm.com Formation PCSoft(version20) GDS et Centres de contrôle
Alphorm.com Formation PCSoft(version20) GDS et Centres de contrôleAlphorm.com Formation PCSoft(version20) GDS et Centres de contrôle
Alphorm.com Formation PCSoft(version20) GDS et Centres de contrôle
 
Wordpress et la sécurité des plugins
Wordpress et la sécurité des pluginsWordpress et la sécurité des plugins
Wordpress et la sécurité des plugins
 
Presentation wc
Presentation wcPresentation wc
Presentation wc
 
Support de la formation Inventor 2017 : perfectionnement
Support de la formation Inventor 2017 : perfectionnementSupport de la formation Inventor 2017 : perfectionnement
Support de la formation Inventor 2017 : perfectionnement
 
Alphorm.com Formation Le Language C
Alphorm.com  Formation Le Language C Alphorm.com  Formation Le Language C
Alphorm.com Formation Le Language C
 
Alphorm.com Formation WordPress 4
Alphorm.com Formation WordPress 4 Alphorm.com Formation WordPress 4
Alphorm.com Formation WordPress 4
 
Alphorm.com Formation WebDev 22 Perfectionnement
Alphorm.com Formation WebDev 22 PerfectionnementAlphorm.com Formation WebDev 22 Perfectionnement
Alphorm.com Formation WebDev 22 Perfectionnement
 
Etendre le Web avec les Web Components
Etendre le Web avec les Web ComponentsEtendre le Web avec les Web Components
Etendre le Web avec les Web Components
 
Alphorm.com Formation Windev 20 Pefectionnement
Alphorm.com Formation Windev 20 Pefectionnement Alphorm.com Formation Windev 20 Pefectionnement
Alphorm.com Formation Windev 20 Pefectionnement
 
Formation JavaScript full-stack (JS, jQuery, Node.js...)
Formation JavaScript full-stack (JS, jQuery, Node.js...)Formation JavaScript full-stack (JS, jQuery, Node.js...)
Formation JavaScript full-stack (JS, jQuery, Node.js...)
 
Alphorm.com support de la formation programmer en C# 6
Alphorm.com support de la formation programmer en C# 6Alphorm.com support de la formation programmer en C# 6
Alphorm.com support de la formation programmer en C# 6
 
Alphorm.com Formation knockoutJS
Alphorm.com Formation knockoutJSAlphorm.com Formation knockoutJS
Alphorm.com Formation knockoutJS
 

Viewers also liked

Trabajo.....
Trabajo.....Trabajo.....
Trabajo.....Anablumii
 
Baterias de agua recargables mª carmen moreno gonzalez
Baterias de agua recargables mª carmen moreno gonzalezBaterias de agua recargables mª carmen moreno gonzalez
Baterias de agua recargables mª carmen moreno gonzalezDecotevva
 
Entorno a la cultura escrita 1
Entorno a la cultura escrita 1Entorno a la cultura escrita 1
Entorno a la cultura escrita 1arrocamilo
 
En torno a la cultura escrita
En torno a la cultura escritaEn torno a la cultura escrita
En torno a la cultura escritaLinaSastre
 
CCIMP Rendez vous des TIC-les webinaires nouvel outil de prospection
CCIMP Rendez vous des TIC-les webinaires nouvel outil de prospectionCCIMP Rendez vous des TIC-les webinaires nouvel outil de prospection
CCIMP Rendez vous des TIC-les webinaires nouvel outil de prospectionCOMPETITIC
 
Beauté de l'Antarctique
Beauté de l'AntarctiqueBeauté de l'Antarctique
Beauté de l'AntarctiqueLavennder M
 
Competitic Faites le buzz sur les réseaux sociaux - 1ère partie - numerique ...
Competitic  Faites le buzz sur les réseaux sociaux - 1ère partie - numerique ...Competitic  Faites le buzz sur les réseaux sociaux - 1ère partie - numerique ...
Competitic Faites le buzz sur les réseaux sociaux - 1ère partie - numerique ...COMPETITIC
 
Le monde des_animaux
Le monde des_animauxLe monde des_animaux
Le monde des_animauxcesttresjoli
 
2010-03-04 comment développer son référencement en 2010 by competitic
2010-03-04  comment développer son référencement en 2010 by competitic 2010-03-04  comment développer son référencement en 2010 by competitic
2010-03-04 comment développer son référencement en 2010 by competitic COMPETITIC
 
Alnour Presentation Personelle
Alnour Presentation PersonelleAlnour Presentation Personelle
Alnour Presentation Personelleazarroug
 
Catalogue ateliers, formations & séminaires you & me consulting 2012
Catalogue ateliers, formations & séminaires you & me consulting 2012Catalogue ateliers, formations & séminaires you & me consulting 2012
Catalogue ateliers, formations & séminaires you & me consulting 2012Mohamed REFFADI
 
Surmonter les Obstacles Culturels dans la Silicon Valley
Surmonter les Obstacles Culturels dans la Silicon ValleySurmonter les Obstacles Culturels dans la Silicon Valley
Surmonter les Obstacles Culturels dans la Silicon ValleyAngelika Blendstrup
 
2012 01 19 utilisez les differentes opportunites pour vendre en ligne
2012 01 19 utilisez les differentes opportunites pour vendre en ligne2012 01 19 utilisez les differentes opportunites pour vendre en ligne
2012 01 19 utilisez les differentes opportunites pour vendre en ligneCOMPETITIC
 
Cocina lionesa
Cocina lionesaCocina lionesa
Cocina lionesamepizarrog
 
Programmes d’echanges académiques erasmus et crepuq
Programmes d’echanges académiques erasmus et crepuqProgrammes d’echanges académiques erasmus et crepuq
Programmes d’echanges académiques erasmus et crepuqSusan Loubet
 
FW: La boh ème et Mon tmartre
FW: La boh ème et Mon tmartreFW: La boh ème et Mon tmartre
FW: La boh ème et Mon tmartreLilianaB2008
 

Viewers also liked (20)

Ip marche auto_mois_en_cours
Ip marche auto_mois_en_coursIp marche auto_mois_en_cours
Ip marche auto_mois_en_cours
 
Danyela
DanyelaDanyela
Danyela
 
Trabajo.....
Trabajo.....Trabajo.....
Trabajo.....
 
Baterias de agua recargables mª carmen moreno gonzalez
Baterias de agua recargables mª carmen moreno gonzalezBaterias de agua recargables mª carmen moreno gonzalez
Baterias de agua recargables mª carmen moreno gonzalez
 
Entorno a la cultura escrita 1
Entorno a la cultura escrita 1Entorno a la cultura escrita 1
Entorno a la cultura escrita 1
 
En torno a la cultura escrita
En torno a la cultura escritaEn torno a la cultura escrita
En torno a la cultura escrita
 
CCIMP Rendez vous des TIC-les webinaires nouvel outil de prospection
CCIMP Rendez vous des TIC-les webinaires nouvel outil de prospectionCCIMP Rendez vous des TIC-les webinaires nouvel outil de prospection
CCIMP Rendez vous des TIC-les webinaires nouvel outil de prospection
 
Beauté de l'Antarctique
Beauté de l'AntarctiqueBeauté de l'Antarctique
Beauté de l'Antarctique
 
Competitic Faites le buzz sur les réseaux sociaux - 1ère partie - numerique ...
Competitic  Faites le buzz sur les réseaux sociaux - 1ère partie - numerique ...Competitic  Faites le buzz sur les réseaux sociaux - 1ère partie - numerique ...
Competitic Faites le buzz sur les réseaux sociaux - 1ère partie - numerique ...
 
Le monde des_animaux
Le monde des_animauxLe monde des_animaux
Le monde des_animaux
 
2010-03-04 comment développer son référencement en 2010 by competitic
2010-03-04  comment développer son référencement en 2010 by competitic 2010-03-04  comment développer son référencement en 2010 by competitic
2010-03-04 comment développer son référencement en 2010 by competitic
 
Alnour Presentation Personelle
Alnour Presentation PersonelleAlnour Presentation Personelle
Alnour Presentation Personelle
 
Catalogue ateliers, formations & séminaires you & me consulting 2012
Catalogue ateliers, formations & séminaires you & me consulting 2012Catalogue ateliers, formations & séminaires you & me consulting 2012
Catalogue ateliers, formations & séminaires you & me consulting 2012
 
Surmonter les Obstacles Culturels dans la Silicon Valley
Surmonter les Obstacles Culturels dans la Silicon ValleySurmonter les Obstacles Culturels dans la Silicon Valley
Surmonter les Obstacles Culturels dans la Silicon Valley
 
2012 01 19 utilisez les differentes opportunites pour vendre en ligne
2012 01 19 utilisez les differentes opportunites pour vendre en ligne2012 01 19 utilisez les differentes opportunites pour vendre en ligne
2012 01 19 utilisez les differentes opportunites pour vendre en ligne
 
Cocina lionesa
Cocina lionesaCocina lionesa
Cocina lionesa
 
James Bond
James BondJames Bond
James Bond
 
Geometría 1 aa2.1
Geometría 1   aa2.1Geometría 1   aa2.1
Geometría 1 aa2.1
 
Programmes d’echanges académiques erasmus et crepuq
Programmes d’echanges académiques erasmus et crepuqProgrammes d’echanges académiques erasmus et crepuq
Programmes d’echanges académiques erasmus et crepuq
 
FW: La boh ème et Mon tmartre
FW: La boh ème et Mon tmartreFW: La boh ème et Mon tmartre
FW: La boh ème et Mon tmartre
 

Similar to Bonnes pratiques intégration robuste

INITITIATION_AU_DEVELOPPEMENT_WEB_ET_PRESENTATION_DES_DIFFERENTES_SOLUTIONS_P...
INITITIATION_AU_DEVELOPPEMENT_WEB_ET_PRESENTATION_DES_DIFFERENTES_SOLUTIONS_P...INITITIATION_AU_DEVELOPPEMENT_WEB_ET_PRESENTATION_DES_DIFFERENTES_SOLUTIONS_P...
INITITIATION_AU_DEVELOPPEMENT_WEB_ET_PRESENTATION_DES_DIFFERENTES_SOLUTIONS_P...ssuser1a62e1
 
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...Normandie Web Xperts
 
Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !matparisot
 
Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !Mathieu Parisot
 
HTML5... La révolution maintenant!
HTML5... La révolution maintenant!HTML5... La révolution maintenant!
HTML5... La révolution maintenant!CARA_Lyon
 
HTML5... La révolution maintenant!
HTML5... La révolution maintenant!HTML5... La révolution maintenant!
HTML5... La révolution maintenant!CARA_Lyon
 
Introduction aux web components
Introduction aux web componentsIntroduction aux web components
Introduction aux web componentsFrancois ANDRE
 
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
 
Dw005 formation-dreamweaver-cc-les-bases
Dw005 formation-dreamweaver-cc-les-basesDw005 formation-dreamweaver-cc-les-bases
Dw005 formation-dreamweaver-cc-les-basesCERTyou Formation
 
HTML5 et Internet Explorer 9, est-ce réellement compatible?
HTML5 et Internet Explorer 9, est-ce réellement compatible?HTML5 et Internet Explorer 9, est-ce réellement compatible?
HTML5 et Internet Explorer 9, est-ce réellement compatible?Frédéric Harper
 
Optimiser son workflow frontend
Optimiser son workflow frontendOptimiser son workflow frontend
Optimiser son workflow frontendLouis Chenais
 
Introduction au développement windows 8 modern ui avec html5 et javascript
Introduction au développement windows 8 modern ui avec html5 et javascriptIntroduction au développement windows 8 modern ui avec html5 et javascript
Introduction au développement windows 8 modern ui avec html5 et javascriptdavrous
 
Introduction au développement Windows 8 ModernUI avec HTML5 et JavaScript
Introduction au développement Windows 8 ModernUI avec HTML5 et JavaScriptIntroduction au développement Windows 8 ModernUI avec HTML5 et JavaScript
Introduction au développement Windows 8 ModernUI avec HTML5 et JavaScriptMicrosoft
 
Frameworks php - Solutions Linux 2008
Frameworks php - Solutions Linux 2008Frameworks php - Solutions Linux 2008
Frameworks php - Solutions Linux 2008Eric D.
 

Similar to Bonnes pratiques intégration robuste (20)

INITITIATION_AU_DEVELOPPEMENT_WEB_ET_PRESENTATION_DES_DIFFERENTES_SOLUTIONS_P...
INITITIATION_AU_DEVELOPPEMENT_WEB_ET_PRESENTATION_DES_DIFFERENTES_SOLUTIONS_P...INITITIATION_AU_DEVELOPPEMENT_WEB_ET_PRESENTATION_DES_DIFFERENTES_SOLUTIONS_P...
INITITIATION_AU_DEVELOPPEMENT_WEB_ET_PRESENTATION_DES_DIFFERENTES_SOLUTIONS_P...
 
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...
 
Bien composer le texte web
Bien composer le texte webBien composer le texte web
Bien composer le texte web
 
Web Lab - Thinking Rails
Web Lab - Thinking RailsWeb Lab - Thinking Rails
Web Lab - Thinking Rails
 
Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !
 
Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !
 
CMS
CMSCMS
CMS
 
Dette technique et WordPress
Dette technique et WordPressDette technique et WordPress
Dette technique et WordPress
 
HTML5... La révolution maintenant!
HTML5... La révolution maintenant!HTML5... La révolution maintenant!
HTML5... La révolution maintenant!
 
HTML5... La révolution maintenant!
HTML5... La révolution maintenant!HTML5... La révolution maintenant!
HTML5... La révolution maintenant!
 
Introduction aux web components
Introduction aux web componentsIntroduction aux web components
Introduction aux web components
 
SAPIENS2009 - Module 4B
SAPIENS2009 - Module 4BSAPIENS2009 - Module 4B
SAPIENS2009 - Module 4B
 
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...
 
Dw005 formation-dreamweaver-cc-les-bases
Dw005 formation-dreamweaver-cc-les-basesDw005 formation-dreamweaver-cc-les-bases
Dw005 formation-dreamweaver-cc-les-bases
 
HTML5 et Internet Explorer 9, est-ce réellement compatible?
HTML5 et Internet Explorer 9, est-ce réellement compatible?HTML5 et Internet Explorer 9, est-ce réellement compatible?
HTML5 et Internet Explorer 9, est-ce réellement compatible?
 
Optimiser son workflow frontend
Optimiser son workflow frontendOptimiser son workflow frontend
Optimiser son workflow frontend
 
Méthode CSS modulaire Daisy
Méthode CSS modulaire DaisyMéthode CSS modulaire Daisy
Méthode CSS modulaire Daisy
 
Introduction au développement windows 8 modern ui avec html5 et javascript
Introduction au développement windows 8 modern ui avec html5 et javascriptIntroduction au développement windows 8 modern ui avec html5 et javascript
Introduction au développement windows 8 modern ui avec html5 et javascript
 
Introduction au développement Windows 8 ModernUI avec HTML5 et JavaScript
Introduction au développement Windows 8 ModernUI avec HTML5 et JavaScriptIntroduction au développement Windows 8 ModernUI avec HTML5 et JavaScript
Introduction au développement Windows 8 ModernUI avec HTML5 et JavaScript
 
Frameworks php - Solutions Linux 2008
Frameworks php - Solutions Linux 2008Frameworks php - Solutions Linux 2008
Frameworks php - Solutions Linux 2008
 

Bonnes pratiques intégration robuste

  • 1. Intégrateur : entre le marteau et l'enclume Bonnes pratiques d'intégration robuste Atelier technique CSS — Paris Web 2011 par Romy Duhem-Verdière http://romy.tetue.net/857
  • 2. Intégrateur de STPo - Robot de Gordon Bennett Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 2
  • 3. L'intégrateur XHML, CSS, jQuery, media queries, microformats, RGAA, Accessiweb, WCAG, BluePrint, 960 Grid, ooCSS, LESS, Framework Z, sprites, PSD, Gimp … Cf.: http://www.nota-bene.org/Integrateurs-montez-au-front-Paris Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 3
  • 4. Vous réalisez vos intégrations avec soin et amour : P valides P sémantiques P accessibles Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 4
  • 5. Mais pourquoi faut-il que le dev' saccage tout ça ? Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 5
  • 6. Le développeur .toto p a p { … } Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 6
  • 7. PHP, ASP, Java, SQL, Perl, Ruby, Python, Klingon, Zend, Symphony, eZ publish, Drupal, SPIP, TypoScript, cahier des charges … Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 7
  • 9. Ce qu'à codé l'intégrateur h1 { font-size : 2em; } h2 { font-size : 1.33em; } h3 { font-size : 1.17em; } h4 { font-size : 1.1em; } p { font-size: .688em; } li { font-size: .688em; } blockquote { font-size: .688em; } small { font-size: .52em; } Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 9
  • 10. Problèmes Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 10
  • 11. Trop de font-size ! Résultats de recherche des occurrences de « font-size » dans un projet... 11 Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011
  • 12. Ressortir la calculette ? Em Calculator : http://riddle.pl/emcalc/ Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 12
  • 13. Définir une taille relative html { font-size: 100%; } body { font-size: .75em; } h1 { font-size: 150%; } h2 { font-size: 130%; } h3 { font-size: 110%; } small { font-size: 90%; } Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 13
  • 14. Définir une taille relative html { font-size: 100%; } body { font-size: .75em; } h1 { font-size: 150%; } h2 { font-size: 130%; } h3 { font-size: 110%; } small { font-size: 90%; } Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 14
  • 15. Définir une taille relative html { font-size: 100%; } body { font-size: .75em; } h1 { font-size: 150%; } h2 { font-size: 130%; } h3 { font-size: 110%; } small { font-size: 90%; } Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 15
  • 16. Définir une taille relative html { font-size: 100%; } body { font-size: .75em; } h1 { font-size: 150%; } h2 { font-size: 130%; } h3 { font-size: 110%; } small { font-size: 90%; } Cf. : http://www.pompage.net/definir-des-tailles-de-polices-en-css Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 16
  • 17. Définir une taille relative 1) Ne pas définir la taille de chaque élément ! 2) Définir une font-size de base, sur le <body> (dont chaque élément hérite) 3) Puis définir quelques exceptions : ● titres plus gros ● mentions plus petites Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 17
  • 18. Au fait, qui saccage l'intégration ?
  • 19. Au fait, qui saccage ? 1) Le développement Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 19
  • 20. Au fait, qui saccage ? 1) Le développement 2) Le code généré (framework, CMS, plugins) Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 20
  • 21. Au fait, qui saccage ? 1) Le développement 2) Le code généré (framework, CMS, plugins) 3) Les rédacteurs Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 21
  • 22. Comment améliorer ? 1) Discuter avec les 1) Le développement développeurs 2) Apprendre à coder souple et modulaire 2) Le code généré (framework, CMS, plugins) 3) Les rédacteurs Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 22
  • 23. Comment améliorer ? 1) Discuter avec les 1) Le développement développeurs 2) Apprendre à coder souple et modulaire 2) Le code généré 3) Travailler sur un échantillon (framework, CMS, plugins) de code généré 3) Les rédacteurs Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 23
  • 24. Comment améliorer ? 1) Discuter avec les 1) Le développement développeurs 2) Apprendre à coder souple et modulaire 2) Le code généré 3) Travailler sur un échantillon (framework, CMS, plugins) de code généré 4) Anticiper les 3) Les rédacteurs expérimentations des rédacteurs Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 24
  • 26. Quel CSS pour styler ces listes ? Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 26
  • 27. Ce qu'à codé l'intégrateur Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 27
  • 28. Problème Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 28
  • 29. Un bon exemple /* Lists --------------------------------------------- */ li ul, li ol { margin: 0; } ul, ol { margin: 0 1.5em 1.5em 0; padding-left: 1.5em; } ul { list-style-type: disc; } ol { list-style-type: decimal; } dl { margin: 0 0 1.5em 0; } dl dt { font-weight: bold; } dd { margin-left: 1.5em;} Source : http://www.blueprintcss.org Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 29
  • 30. Correction Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 30
  • 31. Listes hétérogènes Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 31
  • 32. Comment anticiper ? 1) Styler tout le HTML ● y compris les balises rarement utilisées ● utiliser une page de démo exhaustive 2) Se constituer une page de test ● récolter des exemples vicieux ● des extraits générés via WYSIWYG Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 32
  • 33. Styler tout le HTML Source : framework CSS Blueprint Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 33
  • 34. Exemple de charte typo Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 34 Source : charte typo SPIP
  • 36. Qui l'emporte ? #content h2 { color: red; } .chapo h2 { color: purple; } De quelle couleur sera le titre du chapo ? Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 36
  • 37. 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é ? a) #page ul li a { } b) #page .menu a { } c) div.menu ul li a { } d) div#page ul a { } Source : http://www.alsacreations.com/quiz/lire/7-css-difficile.html Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 37
  • 38. 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é ? a) #page ul li a { } 0103 : le sélecteur contient 1 identifiant, 0 classe et 3 éléments b) #page .menu a { } 0111 : le sélecteur contient 1 identifiant, 1 classe et 1 élément c) div.menu ul li a { } 0014 : le sélecteur contient 1 classe et 4 éléments d) div#page ul a { } 0103 : le sélecteur contient 1 identifiant et 3 éléments Cascade CSS et priorité des sélecteurs : http://openweb.eu.org/articles/cascade_css/ Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 38
  • 39. Soyez .class plutôt qu'#ID Voir : http://oli.jp/2011/ids/ Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 39
  • 40. Soyez .class plutôt qu'#ID Exemple : http://romy.tetue.net/structure-html-de-base Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 40
  • 41. Laissez les IDs au dev ! 1) Les ID sont uniques : laissez la liberté de réemployer à ceux qui suivent 2) Réservez les IDs à : ● JavaScript ● formulaires ● N° identifiants (BDD) ● etc. Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 41
  • 42. Mettre des .class à disposition
  • 43. Mettre des .class à disposition small, .small { font-size: 90%; } big, .big { font-size: 130%;} Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 43
  • 44. Mettre des .class à disposition h1, .h1 { font-size: 3em; line-height: 1; marg h2, .h2 { font-size: 2em; margin-bottom: 0.75e h3, .h3 { font-size: 1.5em; line-height: 1; ma h4, .h4 { font-size: 1.2em; line-height: 1.25; h5, .h5 { font-size: 1em; font-weight: bold; m h6, .h6 { font-size: 1em; font-weight: bold; } D'après : Object Oriented CSS Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 44
  • 45. Mettre des .class à disposition body, .font1 { font-family: Helvetica, Arial, san h1,h2, .font2 { font-family: 'Arial Black', Gadget code,pre, .font3 { font-family: Courier, monospace; } .font4 { font-family: Palatino, Georgia, se Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 45
  • 46. Familles typo + classes réemployables Définition des titres + classes réemployables Exceptions définies . via sélecteur parent . via classes distinctives Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 46
  • 47. Mettre des .class à disposition Voir : http://romy.tetue.net/styler-les-messages-du-systeme Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 47
  • 48. Sélecteurs multiples pink red orange add super yellow <input class=”button edit big green ”> cancel small blue delete black like gray next white prev start save submit Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 48
  • 49. Séparer sémantique et déco Classes sémantiques déco pink red orange add super yellow <input class=”button edit big green ”> cancel small blue delete black like gray next white prev start save submit Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 49
  • 50. Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 50
  • 51. Bref, livrez un framework ! Avec du code facilement ré-utilisable pour les suivants Source : framework interne de la Netscouade Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 51
  • 53. Quelle structure HTML ? En plus de celles propres aux formulaires (form, fieldset, label, input) quelles balises HTML utiliser pour structurer ce formulaire de contact ? Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 53
  • 54. Ce qu'à codé l'intégrateur Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 54
  • 55. Code généré Exemple de code généré par Joomla Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 55
  • 56. Code généré Exemple de code généré par SPIP Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 56
  • 57. Code généré Exemple de code généré par Zend Framework Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 57
  • 58. Conclusion ? 1) Ne pas présupposer de la structure HTML 2) Demander un échantillon de code généré (voire adopter le framework de l'outil, du dev, de l'équipe) 3) Appliquer le style à cet échantillon Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 58
  • 59. Penser modulaire Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 59
  • 60. Bloc modulaire Quel code pour ce bloc d'actus ? Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 60
  • 61. Bloc modulaire <div class="bloc" id="news"> <h2>L'info en continu</h2> <ul> <li><a href="#">...</a></li> <li><a href="#">...</a></li> <li><a href="#">...</a></li> <li><a href="#">...</a></li> <li><a href="#">...</a></li> </ul> <a href="#" class="more">Toutes les infos</a> </div><!--#news--> #news { width: 300px; } #news h2 { padding-left: 20px; background: url(img/puce.png) no-repeat; #news ul { background: #e5e4d3; border: 1px solid #5b4c2a; border-width #news li { display: block; padding: 10px; } #news .more { display: block; color: red; background: url(img/more.png) Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 61
  • 62. Bloc modulaire Quel code pour ce bloc d'actus ailleurs dans la page ? Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 62
  • 63. Bloc modulaire <div class="bloc" id="news"> <h2>L'info en continu</h2> <ul> <li><a href="#">...</a></li> <li><a href="#">...</a></li> <li><a href="#">...</a></li> <li><a href="#">...</a></li> <li><a href="#">...</a></li> </ul> <a href="#" class="more">Toutes les infos</a> </div><!--#news--> #news { padding: 5px; background: #e5e4d3; } #news h2 { float: left; padding-left: 20px; background: url(img/puce.pn #news ul { } #news li { float: left; display: block; width: 660px; padding: 10px; ba #news .more { float: right; display: block; color: red; background: url Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 63
  • 64. Comment disposer des deux ? <div class="bloc" id="news"> <h2>L'info en continu</h2> <ul> <li><a href="#">...</a></li> <li><a href="#">...</a></li> <li><a href="#">...</a></li> <li><a href="#">...</a></li> <li><a href="#">...</a></li> </ul> <a href="#" class="more">Toutes les infos</a> </div><!--#news--> #news { width: 300px; } #news h2 { padding-left: 20px; background: url(img/puce.png) no-repeat; #news ul { background: #e5e4d3; border: 1px solid #5b4c2a; border-width #news li { display: block; padding: 10px; } #news .more { display: block; color: red; background: url(img/more.png) #news { padding: 5px; background: #e5e4d3; } #news h2 { float: left; padding-left: 20px; background: url(img/puce.pn #news ul {} #news li { float: left; display: block; width: 660px; padding: 10px; ba #news .more { float: right; display: block; color: red; background: url Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 64
  • 65. Comment disposer des deux ? <div class="bloc" id="news"> <h2>L'info en continu</h2> <ul> <li><a href="#">...</a></li> Méthode 1 : <li><a href="#">...</a></li> <li><a href="#">...</a></li> surcharge <li><a href="#">...</a></li> <li><a href="#">...</a></li> </ul> <a href="#" class="more">Toutes les infos</a> </div><!--#news--> #news { width: 300px; } #news h2 { padding-left: 20px; background: url(img/puce.png) no-repeat; #news ul { background: #e5e4d3; border: 1px solid #5b4c2a; border-width #news li { display: block; padding: 10px; } #news .more { display: block; color: red; background: url(img/more.png) .toto #news { width: auto; padding: 5px; background: #e5e4d3; } .toto #news h2 { float: left; } .toto #news ul { background: none; border: 0; } .toto #news li { float: left; width: 660px; background: #fff; } .toto #news .more { float: right; border: 2px solid #fff; } Atelier technique CSS — Romy Duhem-Verdière — Paris Web 2011 65
  • 66. Comment disposer des deux ? <div class="bloc" id="news"> <h2>L'info en continu</h2> <ul> <li><a href="#">...</a></li> Méthode 2 : <li><a href="#">...</a></li> <li><a href="#">...</a></li> bloc modulaire <li><a href="#">...</a></li> <li><a href="#">...</a></li> </ul> <a href="#" class="more">Toutes les infos</a> </div><!--#news--> #news { } #news h2 { padding-left: 20px; background: url(img/puce.png) no-repeat; #news ul { } #news li { display: block; padding: 10px; } #news .more { display: block; color: red; background: url(img/more.png) .aside #news { width: 300px; } .aside #news ul { background: #e5e4d3; border: 1px solid #5b4c2a; borde .toto #news { padding: 5px; background: #e5e4d3; } .toto #news ul {} .toto #news li { float: left; width: 660px; background: #fff; } .toto technique .more { float: right;Paris Web 20112px solid #fff; } Atelier #news CSS — Romy Duhem-Verdière — border: 66
  • 67. Souple sur les pattes arrières !
  • 68. Merci ! Merci à Bertrand Keller de la Netscouade, à Martin Supiot de Clever Age, à Cyril Marion des Ateliers CYM, à Hugues Moreno, Frédéric Xavier et à tous vos retours d'expérience en intégration. Merci à vous et #sharethelove Retrouvez-moi ici : http://romy.tetue.net/857