SlideShare una empresa de Scribd logo
1 de 31
CSS: more or Less
 12h35 - 12h50 - Salle Miles David
CSS: more or Less




      Julien Roche
Java and Web engineer / trainer
         Objet Direct

        @rochejul
                                  27 au 29 mars 2013
Julien Roche
 ■ Ingénieur d’étude Java, Web, Web Mobile / hybride chez Objet
   Direct depuis 5 ans
 ■ Formateur / consultant sur ces technologies

 ■ Ancien commiter officiel du projet OpenSource wiQuery

 ■ Des talks / articles:
    ■ Quickie au Devoxx 2012
    ■ 3 Articles sur le magazine “Programmez”
    ■ 2 Talks au Human Talks Grenoble
                                                                  3
Et pour faire la présentation …




                      … racontons une jolie histoire
                                                       4
Il était une fois …




                      … un site Web
                                      5
Sur ce site Web …




                    … j’ai rencontré du CSS (… entre autre …)
                                                          6
Je suis content car … (1)


                ■ Le CSS permet de styliser le DOM HTML

                ■ Le CSS permet de définir des styles selon
                  le média

                ■ Le CSS permet de l’héritage des styles


                                                              7
Je suis content car … (2)


                ■ Le CSS possède un moteur de sélecteur
                  CSS puissant

                ■ Et le CSS a connu énormément
                  d’améliorations grâce à CSS3



                                                          8
Mais soudain …




                 … le drame
                              9
On doit faire face à…(1)




                                  … du code en quantité

… du code difficile à maintenir                    … une structuration complexe
                                                                                  10
On doit faire face à…(2)




                               … un manque d’outils

… l’absence de variables, de fonctions       … l’absence de méthodes utilitaires
                                                                               11
Mais une lueur d’espoir …




 http://lesscss.org/   https://github.com/cloudhead/less.js
                                                              12
J’ai enfin un outil ! (1)
           ■ Vous devez créer des fichiers avec l’extension “.less”



           ■ Ensuite, vous avez deux manières de l’utiliser




                                                                      13
J’ai enfin un outil ! (2)
  Importer le fichier JavaScript “less.js” dans votre page, qui va compiler
  à la volée vos fichiers Less
  <!DOCTYPE HTML>
  <html lang="fr">
      <head>
          <!-- Metas basic -->
          <meta name="viewport" content="width=device-width, initial-scale=1">
          <meta charset="utf-8">
          <meta http-equiv="Content-Language" content="fr">

          <!-- StyleSheets -->
          <link rel="stylesheet/less" type="text/css" href="styles.less" />

          <!-- JavaScripts -->
          <script src="less.js" type="text/javascript"></script>

          <!-- Title & others -->
          <title>Exemple très simple</title>
      </head>

      <body>
          <!-- ... -->
      </body>
  </html>
J’ai enfin un outil ! (3)
   ■ Utiliser RhinoJS / NodeJs pour compiler les fichiers Less en CSS
     directement !!
Mais Less, c’est plus que ça !


                 Il « étend » CSS afin de l’enrichir:
                   Il offre de nouvelles syntaxes
                   Il offre de nouvelles fonctionnalités
                   Il offre des méthodes utilitaires
J’ai enfin des variables !
 @black:                  #000;
 @gray:                   rgba(85, 85, 85);
 @white:                  rgb(255, 255, 255);


 body {
     background-color: @gray;                   Less nous offre la possibilité d’utiliser
                                                des variables !!
 }
                                                Cela est très utile pour les sites à
 img {                                          marque blanche (pour pouvoir changer
     border: 2px dotted @black;
                                                facilement et rapidement les couleurs,
                                                la taille des éléments …)
 }




                                                                                            17
Un exemple de site à marque blanches




    Thèmes Bootstrap, se basant sur Less !!!! Merci les variables
J’ai enfin des méthodes ! (1)
 .text-shadow (@x, @y, @blur, @color) {
     box-shadow: @x @y @blur @color;
     -moz-box-shadow: @arguments;           Less permet de génèrer des portions de code en
                                            fonction de paramètres
     -webkit-box-shadow: @arguments;
 }                                          Cela permet de faire du refactoring de code et
                                            d’avoir une maintenance accrue de nos styles
 p.shadow {
     .text-shadow(0px, 0px, 1px, #00000);
 }




                                                                                             19
J’ai enfin des méthodes ! (2)
 .text-shadow (@x: 0, @y: 0, @blur: 1px, @color: #000) {
     box-shadow: @x @y @blur @color;
     -moz-box-shadow: @arguments;
     -webkit-box-shadow: @arguments;
 }


 p.shadow {                             Les paramètres d’une fonction deviennent
     .text-shadow();                    optionnels si ces derniers ont une valeur par
                                        défaut
 }




                                                                                        20
J’ai enfin des méthodes ! (3)
 .mixin (@a) when (lightness(@a) >= 50%) {
     background-color: @Black;
 }
 .mixin (@a) when (lightness(@a) < 50%) {
     background-color: @White;
 }
                                      Less offre également la possibilité de mettre des
                                      conditions sur les méthodes (afin de savoir si elles
 .mixin (@a) {                        s’appliquent ou non)
     color: @a;
 }




                                                                                             21
Je peux facilement séparer mes fichiers !
/* Fichier a.less */   /* Fichier b.less */
@a: red;               @import-once "a.less";
@b: blue;
@c: green;             table {
                           background-color: @a;
                           border: 1px solid @b;
                           color: @c;
                       }




                                                   22
J’ai un code structurant !
// CSS                           // Less
table {                          table {
    border: 1px solid black;         border: 1px solid @borderColor;
}                                    &.dotted {
table.dotted {                           border-style: dotted;
    border-style: dotted;            }
}                                    td {
table td {                               background-color: @tdColor;
    background-color: #ffbbcc;           &:hover{
}                                             background-color: @tdHoverColor;
table td:hover {                         }
    background-color: #ccbbff;       }
}                                }

                                                                             23
J’ai des méthodes supplémentaires ! (1)
 // Commenter avec “//” !!


 // Variabiliser les sélecteurs
 @prefix: a-prefix;
 .style-@{prefix} {
     // va devenir .style-a-prefix
 }


 // Evaluer du JavaScript (à utiliser avec précaution !!)
 @var: `"hello".toUpperCase() + '!'`;


 @str: "hello";
 @var: ~`"@{str}".toUpperCase() + '!'`;


                                                            24
J’ai des méthodes supplémentaires ! (2)
 // Injection dans du texte
 @baseUrl: "http://somewhere.com";
 background-image: url("@{baseUrl}/a.png");


 // Opérations !!
 @base: 5%;
 @filler: (@base * 2); // 10%
 @other: (@base + @filler); // 15%
 @base-color: (#888 / 4); // #222
 background-color: (@base-color + #111); // #333




                                                   25
J’ai des méthodes supplémentaires ! (3)
  escape(@string); // URL encodes a string
  e(@string); // escape string content
  %(@string, values...); // formats a string

  ceil(@number); // rounds up to an integer
  floor(@number); // rounds down to an integer
  percentage(@number); // converts to a %, e.g. 0.5 -> 50%
  round(number, [places: 0]); // rounds a number to a number of places

                                                                          26
J’ai des méthodes supplémentaires ! (4)
  Et bien d’autres !
    Pour manipuler / extraire des informations sur les couleurs
    Pour convertir / extraire des données




                                                                   27
Et à la fin, nous avons ça:
Liens utiles
Documentation (officielle ou non)          Outils




http://lesscss.org/#docs                       http://css2less.cc/
http://lesscss.org/#reference                  http://crunchapp.net/
http://coding.smashingmagazine.com/2011/
                                               http://winless.org/
09/09/an-introduction-to-less-and-
comparison-to-sass/                            http://wearekiss.com/simpless
Les solutions concurrentes




    http://css-tricks.com/poll-results-popularity-of-css-preprocessors/
                                                                          30
Q&A

Más contenido relacionado

La actualidad más candente

Le Futur du positionnement CSS
Le Futur du positionnement CSSLe Futur du positionnement CSS
Le Futur du positionnement CSSRaphaël Goetter
 
Futur du-positionnement-css
Futur du-positionnement-cssFutur du-positionnement-css
Futur du-positionnement-cssRaphaël Goetter
 
Normes de base du Web GTI780 & MTI780 ETS A09
Normes de base du Web  GTI780 & MTI780  ETS   A09Normes de base du Web  GTI780 & MTI780  ETS   A09
Normes de base du Web GTI780 & MTI780 ETS A09Claude Coulombe
 
CSS3 Intel Webinar
CSS3 Intel WebinarCSS3 Intel Webinar
CSS3 Intel WebinarViniSketch
 
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
 
W3 cafe ie10etwindows8
W3 cafe ie10etwindows8W3 cafe ie10etwindows8
W3 cafe ie10etwindows8davrous
 
Comment modifier le style des Tree View dans Odoo.
Comment modifier le style des Tree View dans Odoo.Comment modifier le style des Tree View dans Odoo.
Comment modifier le style des Tree View dans Odoo.Microcom Informatique Inc.
 
Panels, une autre façon de construire. DrupalCamp Paris 2013
Panels, une autre façon de construire. DrupalCamp Paris 2013Panels, une autre façon de construire. DrupalCamp Paris 2013
Panels, une autre façon de construire. DrupalCamp Paris 2013bellesmanieres
 
conception de site web : introduction à l'analyse fonctionnelle
conception de site web : introduction à l'analyse fonctionnelleconception de site web : introduction à l'analyse fonctionnelle
conception de site web : introduction à l'analyse fonctionnellelaureno
 

La actualidad más candente (16)

Le Futur du positionnement CSS
Le Futur du positionnement CSSLe Futur du positionnement CSS
Le Futur du positionnement CSS
 
Futur du-positionnement-css
Futur du-positionnement-cssFutur du-positionnement-css
Futur du-positionnement-css
 
CSS 3
CSS 3CSS 3
CSS 3
 
Outils front-end
Outils front-endOutils front-end
Outils front-end
 
SASS
SASSSASS
SASS
 
Initiation à Bootstrap
Initiation à BootstrapInitiation à Bootstrap
Initiation à Bootstrap
 
Normes de base du Web GTI780 & MTI780 ETS A09
Normes de base du Web  GTI780 & MTI780  ETS   A09Normes de base du Web  GTI780 & MTI780  ETS   A09
Normes de base du Web GTI780 & MTI780 ETS A09
 
CSS3 Intel Webinar
CSS3 Intel WebinarCSS3 Intel Webinar
CSS3 Intel Webinar
 
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
 
Cascade Style Sheets
Cascade Style SheetsCascade Style Sheets
Cascade Style Sheets
 
W3 cafe ie10etwindows8
W3 cafe ie10etwindows8W3 cafe ie10etwindows8
W3 cafe ie10etwindows8
 
Comment modifier le style des Tree View dans Odoo.
Comment modifier le style des Tree View dans Odoo.Comment modifier le style des Tree View dans Odoo.
Comment modifier le style des Tree View dans Odoo.
 
Html css
Html cssHtml css
Html css
 
Panels, une autre façon de construire. DrupalCamp Paris 2013
Panels, une autre façon de construire. DrupalCamp Paris 2013Panels, une autre façon de construire. DrupalCamp Paris 2013
Panels, une autre façon de construire. DrupalCamp Paris 2013
 
conception de site web : introduction à l'analyse fonctionnelle
conception de site web : introduction à l'analyse fonctionnelleconception de site web : introduction à l'analyse fonctionnelle
conception de site web : introduction à l'analyse fonctionnelle
 
Initiation à Bootstrap
Initiation à BootstrapInitiation à Bootstrap
Initiation à Bootstrap
 

Destacado

Brochure tarif 2014
Brochure tarif 2014Brochure tarif 2014
Brochure tarif 2014Lesalicourts
 
Best Practises / Communication for startups - sept 2014
Best Practises / Communication for startups - sept 2014Best Practises / Communication for startups - sept 2014
Best Practises / Communication for startups - sept 2014We Link Agency
 
Les meilleurs hôtels à djerba
Les meilleurs hôtels à djerbaLes meilleurs hôtels à djerba
Les meilleurs hôtels à djerbaTunisie Booking
 
La Mikuna de la communauté Mishkyyaquillu de Shapumba, Pérou (R. Matta)
La Mikuna de la communauté Mishkyyaquillu de Shapumba,  Pérou (R. Matta)La Mikuna de la communauté Mishkyyaquillu de Shapumba,  Pérou (R. Matta)
La Mikuna de la communauté Mishkyyaquillu de Shapumba, Pérou (R. Matta)Emilie Stoll
 
Proyecto extraescolar m.a.f.
Proyecto extraescolar m.a.f.Proyecto extraescolar m.a.f.
Proyecto extraescolar m.a.f.Juan Valenzuela
 
Donner & Recevoir par l'Affiliation (en ligne)
Donner & Recevoir par l'Affiliation (en ligne)Donner & Recevoir par l'Affiliation (en ligne)
Donner & Recevoir par l'Affiliation (en ligne)Stephan Pire
 
Estructura para la publicación de articulos revista de semilleros de investig...
Estructura para la publicación de articulos revista de semilleros de investig...Estructura para la publicación de articulos revista de semilleros de investig...
Estructura para la publicación de articulos revista de semilleros de investig...Katerin Johana Hernández Causil
 
Como No Creer en Dios
Como No Creer en DiosComo No Creer en Dios
Como No Creer en Diossteysis
 
La biblia esta viva, es la palabra
La biblia esta viva,  es la palabraLa biblia esta viva,  es la palabra
La biblia esta viva, es la palabraPablo Palomo
 
Ejercicios de la 80 a 89
Ejercicios de la 80 a 89Ejercicios de la 80 a 89
Ejercicios de la 80 a 89NORMA
 

Destacado (20)

Brochure tarif 2014
Brochure tarif 2014Brochure tarif 2014
Brochure tarif 2014
 
10 expo reforma 2011 oganización
10 expo reforma 2011 oganización10 expo reforma 2011 oganización
10 expo reforma 2011 oganización
 
Mario Great Adventure 3
Mario Great Adventure 3Mario Great Adventure 3
Mario Great Adventure 3
 
1.2 plan de bloque msim segundo
1.2  plan de bloque msim segundo1.2  plan de bloque msim segundo
1.2 plan de bloque msim segundo
 
Juego Survive
Juego SurviveJuego Survive
Juego Survive
 
Catapulta de Pinguinos
Catapulta de PinguinosCatapulta de Pinguinos
Catapulta de Pinguinos
 
Best Practises / Communication for startups - sept 2014
Best Practises / Communication for startups - sept 2014Best Practises / Communication for startups - sept 2014
Best Practises / Communication for startups - sept 2014
 
Passé composé
Passé composéPassé composé
Passé composé
 
Les meilleurs hôtels à djerba
Les meilleurs hôtels à djerbaLes meilleurs hôtels à djerba
Les meilleurs hôtels à djerba
 
La Mikuna de la communauté Mishkyyaquillu de Shapumba, Pérou (R. Matta)
La Mikuna de la communauté Mishkyyaquillu de Shapumba,  Pérou (R. Matta)La Mikuna de la communauté Mishkyyaquillu de Shapumba,  Pérou (R. Matta)
La Mikuna de la communauté Mishkyyaquillu de Shapumba, Pérou (R. Matta)
 
Robert doisneau
Robert doisneauRobert doisneau
Robert doisneau
 
Proyecto extraescolar m.a.f.
Proyecto extraescolar m.a.f.Proyecto extraescolar m.a.f.
Proyecto extraescolar m.a.f.
 
Donner & Recevoir par l'Affiliation (en ligne)
Donner & Recevoir par l'Affiliation (en ligne)Donner & Recevoir par l'Affiliation (en ligne)
Donner & Recevoir par l'Affiliation (en ligne)
 
Estructura para la publicación de articulos revista de semilleros de investig...
Estructura para la publicación de articulos revista de semilleros de investig...Estructura para la publicación de articulos revista de semilleros de investig...
Estructura para la publicación de articulos revista de semilleros de investig...
 
Practica 1
Practica 1Practica 1
Practica 1
 
Tema
TemaTema
Tema
 
Como No Creer en Dios
Como No Creer en DiosComo No Creer en Dios
Como No Creer en Dios
 
Presentación1eval desp 2009
Presentación1eval desp 2009Presentación1eval desp 2009
Presentación1eval desp 2009
 
La biblia esta viva, es la palabra
La biblia esta viva,  es la palabraLa biblia esta viva,  es la palabra
La biblia esta viva, es la palabra
 
Ejercicios de la 80 a 89
Ejercicios de la 80 a 89Ejercicios de la 80 a 89
Ejercicios de la 80 a 89
 

Similar a Devoxx France 2013: CSS, more or Less - http://www.devoxx.com/display/FR13/CSS++more+or+Less

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
 
Intégrateur web aime sass pour ton bien, BLEND Web Mix 2013
Intégrateur web aime sass pour ton bien, BLEND Web Mix 2013Intégrateur web aime sass pour ton bien, BLEND Web Mix 2013
Intégrateur web aime sass pour ton bien, BLEND Web Mix 2013Mehdi Kabab
 
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
 
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
 
Alphorm.com Formation Simplifier l’usage du CSS avec Less
Alphorm.com Formation Simplifier l’usage du CSS avec LessAlphorm.com Formation Simplifier l’usage du CSS avec Less
Alphorm.com Formation Simplifier l’usage du CSS avec LessAlphorm
 
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
 
Gagnez en productivité grâce aux préprocesseurs css
Gagnez en productivité grâce aux préprocesseurs cssGagnez en productivité grâce aux préprocesseurs css
Gagnez en productivité grâce aux préprocesseurs csspefringant
 
Codedarmor 2012 - 06/03 - HTML5, CSS3 et Javascript
Codedarmor 2012 - 06/03 - HTML5, CSS3 et JavascriptCodedarmor 2012 - 06/03 - HTML5, CSS3 et Javascript
Codedarmor 2012 - 06/03 - HTML5, CSS3 et Javascriptcodedarmor
 
Les dernières avancées HTML5 & CSS3 en action !
Les dernières avancées HTML5 & CSS3 en action !Les dernières avancées HTML5 & CSS3 en action !
Les dernières avancées HTML5 & CSS3 en action !Microsoft Technet France
 
Les dernières avancées html5 & css3 en action !
Les dernières avancées html5 & css3 en action !Les dernières avancées html5 & css3 en action !
Les dernières avancées html5 & css3 en action !davrous
 
Faire le pont entre designers et développeurs au Guardian
Faire le pont entre designers et développeurs au GuardianFaire le pont entre designers et développeurs au Guardian
Faire le pont entre designers et développeurs au GuardianKaelig Deloumeau-Prigent
 
Chapitre 2 - Programmation web - 3) Le CSS.pdf
Chapitre 2 - Programmation web - 3) Le CSS.pdfChapitre 2 - Programmation web - 3) Le CSS.pdf
Chapitre 2 - Programmation web - 3) Le CSS.pdfAnouAr42
 
Faire le pont entre designers et développeurs avec Sass au Guardian
Faire le pont entre designers et développeurs avec Sass au GuardianFaire le pont entre designers et développeurs avec Sass au Guardian
Faire le pont entre designers et développeurs avec Sass au GuardianKaelig Deloumeau-Prigent
 
Alphorm.com Formation Simplifier l’usage du CSS avec Scss & Sass
Alphorm.com Formation Simplifier l’usage du CSS avec Scss & SassAlphorm.com Formation Simplifier l’usage du CSS avec Scss & Sass
Alphorm.com Formation Simplifier l’usage du CSS avec Scss & SassAlphorm
 
technologie web - part2
technologie web - part2technologie web - part2
technologie web - part2Benoît Simard
 
seance3-1 CSS.ppt
seance3-1 CSS.pptseance3-1 CSS.ppt
seance3-1 CSS.pptAmineReal
 
Mobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveaux
Mobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveauxMobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveaux
Mobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveauxFrédéric Harper
 
CSS 2019: 23 plus tard, la guerre continue... @WEB2DAY 2019
CSS 2019: 23 plus tard, la guerre continue... @WEB2DAY 2019CSS 2019: 23 plus tard, la guerre continue... @WEB2DAY 2019
CSS 2019: 23 plus tard, la guerre continue... @WEB2DAY 2019Naomi Hauret
 

Similar a Devoxx France 2013: CSS, more or Less - http://www.devoxx.com/display/FR13/CSS++more+or+Less (20)

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...
 
Intégrateur web aime sass pour ton bien, BLEND Web Mix 2013
Intégrateur web aime sass pour ton bien, BLEND Web Mix 2013Intégrateur web aime sass pour ton bien, BLEND Web Mix 2013
Intégrateur web aime sass pour ton bien, BLEND Web Mix 2013
 
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 !
 
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)
 
Alphorm.com Formation Simplifier l’usage du CSS avec Less
Alphorm.com Formation Simplifier l’usage du CSS avec LessAlphorm.com Formation Simplifier l’usage du CSS avec Less
Alphorm.com Formation Simplifier l’usage du CSS avec Less
 
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 !
 
Gagnez en productivité grâce aux préprocesseurs css
Gagnez en productivité grâce aux préprocesseurs cssGagnez en productivité grâce aux préprocesseurs css
Gagnez en productivité grâce aux préprocesseurs css
 
Codedarmor 2012 - 06/03 - HTML5, CSS3 et Javascript
Codedarmor 2012 - 06/03 - HTML5, CSS3 et JavascriptCodedarmor 2012 - 06/03 - HTML5, CSS3 et Javascript
Codedarmor 2012 - 06/03 - HTML5, CSS3 et Javascript
 
Les dernières avancées HTML5 & CSS3 en action !
Les dernières avancées HTML5 & CSS3 en action !Les dernières avancées HTML5 & CSS3 en action !
Les dernières avancées HTML5 & CSS3 en action !
 
Les dernières avancées html5 & css3 en action !
Les dernières avancées html5 & css3 en action !Les dernières avancées html5 & css3 en action !
Les dernières avancées html5 & css3 en action !
 
Faire le pont entre designers et développeurs au Guardian
Faire le pont entre designers et développeurs au GuardianFaire le pont entre designers et développeurs au Guardian
Faire le pont entre designers et développeurs au Guardian
 
Chapitre 2 - Programmation web - 3) Le CSS.pdf
Chapitre 2 - Programmation web - 3) Le CSS.pdfChapitre 2 - Programmation web - 3) Le CSS.pdf
Chapitre 2 - Programmation web - 3) Le CSS.pdf
 
Faire le pont entre designers et développeurs avec Sass au Guardian
Faire le pont entre designers et développeurs avec Sass au GuardianFaire le pont entre designers et développeurs avec Sass au Guardian
Faire le pont entre designers et développeurs avec Sass au Guardian
 
HTML5 & CSS3 : Jeux
HTML5 & CSS3 : Jeux HTML5 & CSS3 : Jeux
HTML5 & CSS3 : Jeux
 
Alphorm.com Formation Simplifier l’usage du CSS avec Scss & Sass
Alphorm.com Formation Simplifier l’usage du CSS avec Scss & SassAlphorm.com Formation Simplifier l’usage du CSS avec Scss & Sass
Alphorm.com Formation Simplifier l’usage du CSS avec Scss & Sass
 
technologie web - part2
technologie web - part2technologie web - part2
technologie web - part2
 
seance3-1 CSS.ppt
seance3-1 CSS.pptseance3-1 CSS.ppt
seance3-1 CSS.ppt
 
Mobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveaux
Mobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveauxMobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveaux
Mobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveaux
 
CSS 2019: 23 plus tard, la guerre continue... @WEB2DAY 2019
CSS 2019: 23 plus tard, la guerre continue... @WEB2DAY 2019CSS 2019: 23 plus tard, la guerre continue... @WEB2DAY 2019
CSS 2019: 23 plus tard, la guerre continue... @WEB2DAY 2019
 

Más de VISEO

Tendances Mobile 2018
Tendances Mobile 2018Tendances Mobile 2018
Tendances Mobile 2018VISEO
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !VISEO
 
What’s new in Microsoft ALM 2013, hosted in Windows Azure, VISUAL STUDIO ONLI...
What’s new in Microsoft ALM 2013, hosted in Windows Azure, VISUAL STUDIO ONLI...What’s new in Microsoft ALM 2013, hosted in Windows Azure, VISUAL STUDIO ONLI...
What’s new in Microsoft ALM 2013, hosted in Windows Azure, VISUAL STUDIO ONLI...VISEO
 
Phonegap
PhonegapPhonegap
PhonegapVISEO
 
Aperçu de RequireJS
Aperçu de RequireJSAperçu de RequireJS
Aperçu de RequireJSVISEO
 
Faire du-code-centre-sur-l-humain devoxx
Faire du-code-centre-sur-l-humain devoxxFaire du-code-centre-sur-l-humain devoxx
Faire du-code-centre-sur-l-humain devoxxVISEO
 
Devoxx 2012 Gregory Weinbach - il n y a pas de bon modele metier
Devoxx 2012   Gregory Weinbach - il n y a pas de bon modele metierDevoxx 2012   Gregory Weinbach - il n y a pas de bon modele metier
Devoxx 2012 Gregory Weinbach - il n y a pas de bon modele metierVISEO
 
Sexy.le.developpement.web.mobile
Sexy.le.developpement.web.mobileSexy.le.developpement.web.mobile
Sexy.le.developpement.web.mobileVISEO
 

Más de VISEO (8)

Tendances Mobile 2018
Tendances Mobile 2018Tendances Mobile 2018
Tendances Mobile 2018
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !
 
What’s new in Microsoft ALM 2013, hosted in Windows Azure, VISUAL STUDIO ONLI...
What’s new in Microsoft ALM 2013, hosted in Windows Azure, VISUAL STUDIO ONLI...What’s new in Microsoft ALM 2013, hosted in Windows Azure, VISUAL STUDIO ONLI...
What’s new in Microsoft ALM 2013, hosted in Windows Azure, VISUAL STUDIO ONLI...
 
Phonegap
PhonegapPhonegap
Phonegap
 
Aperçu de RequireJS
Aperçu de RequireJSAperçu de RequireJS
Aperçu de RequireJS
 
Faire du-code-centre-sur-l-humain devoxx
Faire du-code-centre-sur-l-humain devoxxFaire du-code-centre-sur-l-humain devoxx
Faire du-code-centre-sur-l-humain devoxx
 
Devoxx 2012 Gregory Weinbach - il n y a pas de bon modele metier
Devoxx 2012   Gregory Weinbach - il n y a pas de bon modele metierDevoxx 2012   Gregory Weinbach - il n y a pas de bon modele metier
Devoxx 2012 Gregory Weinbach - il n y a pas de bon modele metier
 
Sexy.le.developpement.web.mobile
Sexy.le.developpement.web.mobileSexy.le.developpement.web.mobile
Sexy.le.developpement.web.mobile
 

Devoxx France 2013: CSS, more or Less - http://www.devoxx.com/display/FR13/CSS++more+or+Less

  • 1. CSS: more or Less 12h35 - 12h50 - Salle Miles David
  • 2. CSS: more or Less Julien Roche Java and Web engineer / trainer Objet Direct @rochejul 27 au 29 mars 2013
  • 3. Julien Roche ■ Ingénieur d’étude Java, Web, Web Mobile / hybride chez Objet Direct depuis 5 ans ■ Formateur / consultant sur ces technologies ■ Ancien commiter officiel du projet OpenSource wiQuery ■ Des talks / articles: ■ Quickie au Devoxx 2012 ■ 3 Articles sur le magazine “Programmez” ■ 2 Talks au Human Talks Grenoble 3
  • 4. Et pour faire la présentation … … racontons une jolie histoire 4
  • 5. Il était une fois … … un site Web 5
  • 6. Sur ce site Web … … j’ai rencontré du CSS (… entre autre …) 6
  • 7. Je suis content car … (1) ■ Le CSS permet de styliser le DOM HTML ■ Le CSS permet de définir des styles selon le média ■ Le CSS permet de l’héritage des styles 7
  • 8. Je suis content car … (2) ■ Le CSS possède un moteur de sélecteur CSS puissant ■ Et le CSS a connu énormément d’améliorations grâce à CSS3 8
  • 9. Mais soudain … … le drame 9
  • 10. On doit faire face à…(1) … du code en quantité … du code difficile à maintenir … une structuration complexe 10
  • 11. On doit faire face à…(2) … un manque d’outils … l’absence de variables, de fonctions … l’absence de méthodes utilitaires 11
  • 12. Mais une lueur d’espoir … http://lesscss.org/ https://github.com/cloudhead/less.js 12
  • 13. J’ai enfin un outil ! (1) ■ Vous devez créer des fichiers avec l’extension “.less” ■ Ensuite, vous avez deux manières de l’utiliser 13
  • 14. J’ai enfin un outil ! (2)  Importer le fichier JavaScript “less.js” dans votre page, qui va compiler à la volée vos fichiers Less <!DOCTYPE HTML> <html lang="fr"> <head> <!-- Metas basic --> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta charset="utf-8"> <meta http-equiv="Content-Language" content="fr"> <!-- StyleSheets --> <link rel="stylesheet/less" type="text/css" href="styles.less" /> <!-- JavaScripts --> <script src="less.js" type="text/javascript"></script> <!-- Title & others --> <title>Exemple très simple</title> </head> <body> <!-- ... --> </body> </html>
  • 15. J’ai enfin un outil ! (3) ■ Utiliser RhinoJS / NodeJs pour compiler les fichiers Less en CSS directement !!
  • 16. Mais Less, c’est plus que ça !  Il « étend » CSS afin de l’enrichir: Il offre de nouvelles syntaxes Il offre de nouvelles fonctionnalités Il offre des méthodes utilitaires
  • 17. J’ai enfin des variables ! @black: #000; @gray: rgba(85, 85, 85); @white: rgb(255, 255, 255); body { background-color: @gray; Less nous offre la possibilité d’utiliser des variables !! } Cela est très utile pour les sites à img { marque blanche (pour pouvoir changer border: 2px dotted @black; facilement et rapidement les couleurs, la taille des éléments …) } 17
  • 18. Un exemple de site à marque blanches Thèmes Bootstrap, se basant sur Less !!!! Merci les variables
  • 19. J’ai enfin des méthodes ! (1) .text-shadow (@x, @y, @blur, @color) { box-shadow: @x @y @blur @color; -moz-box-shadow: @arguments; Less permet de génèrer des portions de code en fonction de paramètres -webkit-box-shadow: @arguments; } Cela permet de faire du refactoring de code et d’avoir une maintenance accrue de nos styles p.shadow { .text-shadow(0px, 0px, 1px, #00000); } 19
  • 20. J’ai enfin des méthodes ! (2) .text-shadow (@x: 0, @y: 0, @blur: 1px, @color: #000) { box-shadow: @x @y @blur @color; -moz-box-shadow: @arguments; -webkit-box-shadow: @arguments; } p.shadow { Les paramètres d’une fonction deviennent .text-shadow(); optionnels si ces derniers ont une valeur par défaut } 20
  • 21. J’ai enfin des méthodes ! (3) .mixin (@a) when (lightness(@a) >= 50%) { background-color: @Black; } .mixin (@a) when (lightness(@a) < 50%) { background-color: @White; } Less offre également la possibilité de mettre des conditions sur les méthodes (afin de savoir si elles .mixin (@a) { s’appliquent ou non) color: @a; } 21
  • 22. Je peux facilement séparer mes fichiers ! /* Fichier a.less */ /* Fichier b.less */ @a: red; @import-once "a.less"; @b: blue; @c: green; table { background-color: @a; border: 1px solid @b; color: @c; } 22
  • 23. J’ai un code structurant ! // CSS // Less table { table { border: 1px solid black; border: 1px solid @borderColor; } &.dotted { table.dotted { border-style: dotted; border-style: dotted; } } td { table td { background-color: @tdColor; background-color: #ffbbcc; &:hover{ } background-color: @tdHoverColor; table td:hover { } background-color: #ccbbff; } } } 23
  • 24. J’ai des méthodes supplémentaires ! (1) // Commenter avec “//” !! // Variabiliser les sélecteurs @prefix: a-prefix; .style-@{prefix} { // va devenir .style-a-prefix } // Evaluer du JavaScript (à utiliser avec précaution !!) @var: `"hello".toUpperCase() + '!'`; @str: "hello"; @var: ~`"@{str}".toUpperCase() + '!'`; 24
  • 25. J’ai des méthodes supplémentaires ! (2) // Injection dans du texte @baseUrl: "http://somewhere.com"; background-image: url("@{baseUrl}/a.png"); // Opérations !! @base: 5%; @filler: (@base * 2); // 10% @other: (@base + @filler); // 15% @base-color: (#888 / 4); // #222 background-color: (@base-color + #111); // #333 25
  • 26. J’ai des méthodes supplémentaires ! (3)  escape(@string); // URL encodes a string  e(@string); // escape string content  %(@string, values...); // formats a string  ceil(@number); // rounds up to an integer  floor(@number); // rounds down to an integer  percentage(@number); // converts to a %, e.g. 0.5 -> 50%  round(number, [places: 0]); // rounds a number to a number of places 26
  • 27. J’ai des méthodes supplémentaires ! (4)  Et bien d’autres !  Pour manipuler / extraire des informations sur les couleurs  Pour convertir / extraire des données 27
  • 28. Et à la fin, nous avons ça:
  • 29. Liens utiles Documentation (officielle ou non) Outils http://lesscss.org/#docs http://css2less.cc/ http://lesscss.org/#reference http://crunchapp.net/ http://coding.smashingmagazine.com/2011/ http://winless.org/ 09/09/an-introduction-to-less-and- comparison-to-sass/ http://wearekiss.com/simpless
  • 30. Les solutions concurrentes http://css-tricks.com/poll-results-popularity-of-css-preprocessors/ 30
  • 31. Q&A