Top Banner
INTÉGRATEURS Bousculez vos habitudes ! Photo : fotolia #F34R
104

Intégrateurs, bousculez vos habitudes

Nov 28, 2014

Download

Technology

Depuis que je fais de l'intégration (un paquet d'années), j'ai toujours été très concerné par les standards, l'accessibilité et la sémantique.
Il se trouve cependant qu'avec l'expérience, on se rend compte que les contraintes de production et de performances ont bien évolué en 15 ans : à force de respecter d'antiques préceptes on crée des fichiers CSS lourds, redondant, et non réutilisables. C'est pourquoi 12% des plus gros sites mondiaux comptent plus de 50 occurences de "!important".

Ces aberrations peuvent être évitées en utilisant judicieusement des CSS efficaces.
Nicole Sullivan (ex-Yahoo!) a ouvert la voie en créant "OOCSS" (CSS orientés “objet”), d’autres tels que Jonathan Snooks ou Kaelig Deloumeau-Prigent ont suivi le mouvement.

Voyons quelles réelles remises en question nous attendent pour parvenir à nos fins.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Intégrateurs, bousculez vos habitudes

INTÉGRATEURSBousculez vos habitudes !

Photo : fotolia

#F34R

Page 2: Intégrateurs, bousculez vos habitudes

RAPHAËL GOETTERalsacréations

alsacrea

tions

.com

goetter.f

rkn

acss

.com

Photomontage (odieux) : @diou

Page 3: Intégrateurs, bousculez vos habitudes

Les navigateurs ont évolué

HTML et CSS ont mûri

Les besoins, les projets, les utilisateurs ont changé

Notre métier n'est plus le même

Il est indispensable de nous adapter !

#CONTEXTE

Page 4: Intégrateurs, bousculez vos habitudes

« S »Agence web

Située en Alsace8 personnes

Compétences diversesPas de commercial

Projets variés

Page 5: Intégrateurs, bousculez vos habitudes

TADAAAM !1998 (qui dit mieux?)

Page 6: Intégrateurs, bousculez vos habitudes

TADAAAM !1998 (qui dit mieux?)

doctype ?

Frontpage

CSS !

Page 7: Intégrateurs, bousculez vos habitudes

MAIS ÇA C'ÉTAIT AVANT !

balises propriétaires

spacer.gif<table>

IE 5 / Netscape 4

applets Javafrontpage

framesets

WYSIWYG<font>

position : absolute

<center>

style=

colspan

Page 8: Intégrateurs, bousculez vos habitudes

C'ÉTAIT L'BON TEMPS !On a tous commencé un jour...

Photo : fotolia

Page 9: Intégrateurs, bousculez vos habitudes

nos habitudes ?

Page 10: Intégrateurs, bousculez vos habitudes

nos habitudes ?

dogmes

Page 11: Intégrateurs, bousculez vos habitudes
Page 12: Intégrateurs, bousculez vos habitudes

tableaux de mise en page

FrontPage, Dreamweaver

divite, classite

Flash

JavaScript

IE6 (IE tout court ?)

sélecteur joker *

préfixes constructeurs

C'EST MAL !

Page 13: Intégrateurs, bousculez vos habitudes

HTML épuré

CSS épuré

modèle de boîte standard

id pour les éléments uniques

classes pour des éléments multiples

fermer les balises HTML

être valide W3C

jQuery (et ses copains)

C'EST BIEN !

Page 14: Intégrateurs, bousculez vos habitudes

les frameworks HTML / CSS

les préprocesseurs CSS

ON SAIT PAS TROP !

Page 15: Intégrateurs, bousculez vos habitudes

dans lavraie vie...

Page 16: Intégrateurs, bousculez vos habitudes

dans lavraie vie...

Ben... ça dépend

Page 17: Intégrateurs, bousculez vos habitudes

Des délais à respecteril faut aller vite, être productif, s’adapter

Des intervenants multiplesdes experts, des novices, des développeurs, graphistes

Au secours, un nouveau !l’équipe évolue, des nouveaux arrivent pendant le projet

Un projet et ses specs évoluent toujoursproduire un code cohérent, souple et réutilisable

Page 18: Intégrateurs, bousculez vos habitudes

ALEXA.COMTop 1000 rank

12% plus de 50 fois → !important

13% plus de 100 fois → float

25% plus de 100 fois → font-size

Facebook … 261 valeurs de la couleur bleue

Photo : fotolia

Les styles CSS des gros sites mondiaux :

Page 19: Intégrateurs, bousculez vos habitudes

ALEXA.COMTop 1000 rank

12% plus de 50 fois → !important

13% plus de 100 fois → float

25% plus de 100 fois → font-size

Facebook … 261 valeurs de la couleur bleue

Photo : fotolia

Les styles CSS des gros sites mondiaux :

lourd

pas maintenable

MAL

pas performantpas compréhensible

Page 20: Intégrateurs, bousculez vos habitudes

C'EST MAL ! C'EST BIEN !EUH ?tableaux de mise en pageFrontPage, Dreamweaverdivite, classiteFlashJavaScriptIE6 (IE tout court ?)sélecteur joker *préfixes constructeurs

les frameworksles préprocesseurs

HTML épuréCSS épuré modèle de boîte standardid = éléments uniquesclasses = éléments multiplesêtre valide W3CjQuery (et ses copains)

ou pas !ou pas !ou pas !

Page 21: Intégrateurs, bousculez vos habitudes

C'EST MAL ! C'EST BIEN !EUH ?tableaux de mise en pageFrontPage, Dreamweaverdivite, classiteFlashJavaScriptIE6 (IE tout court ?)sélecteur joker *préfixes constructeurs

les frameworksles préprocesseurs

HTML épuréCSS épuré modèle de boîte standardid = éléments uniquesclasses = éléments multiplesêtre valide W3CjQuery (et ses copains)

ou pas !ou pas !ou pas !

Page 22: Intégrateurs, bousculez vos habitudes

Bousculons nos dogmes !#osons!

ou pas !ou pas !ou pas !

C'EST MAL ! C'EST BIEN !EUH ?

Page 23: Intégrateurs, bousculez vos habitudes

Box-sizing c'est super dangereux et ça pique– moi“  Les préprocesseurs CSS, ça sert à rien

– encore moi“ Chrome est un super navigateur !

– toujours moi (oui bon hein ça va)“ TOUT LE MONDE PEUT SE TROMPER !Apprenons de nos erreurs, testons, avançons

Page 24: Intégrateurs, bousculez vos habitudes

http://wiki.csswg.org/ideas/mistakes

Page 25: Intégrateurs, bousculez vos habitudes

Nos techniques Nos outils Nos méthodes

BOUSCULONS NOS HABITUDES !

❶ ❷ ❸#positionnements#box-sizing#sélecteurs#préfixes

#frameworks#préprocesseurs

#conventions#InternetExplorer#IDvsCLASS!#OOCSS

Page 26: Intégrateurs, bousculez vos habitudes

NOS TECHNIQUES

Page 27: Intégrateurs, bousculez vos habitudes

❶POSITIONNEMENT CSSframes, <table>

position : absolute

float

display : inline-block

display : table-cell

columns

flexbox

grid layout, regions, ...

#FearZone

#HoaxZone

#NoobZoneLa « zone de confiance »

Page 28: Intégrateurs, bousculez vos habitudes

❶POSITIONNEMENT CSSDisplay : inline-block

<p>

<blockquote>

p { display: inline-block; width: 10em;}

blockquote ~ p { vertical-align: top;}

Page 29: Intégrateurs, bousculez vos habitudes

❶POSITIONNEMENT CSS

ul { display: table;}li { display: table-cell; width: 20%;}

li:hover { width: 40%;}

kiwi.gg/tablenav (+ bonus : apple.com)

Display : table

Page 30: Intégrateurs, bousculez vos habitudes

La meilleure technique ?Ça dépend ! hu hu

Page 31: Intégrateurs, bousculez vos habitudes

BOX-SIZING CSS3

Photo : flickr jing_dong

Page 32: Intégrateurs, bousculez vos habitudes

❶BOX-SIZING CSS3

div { width: 50%; padding: 1em; border-width: 1px;}

50% + 2em + 2px 50% + 2em + 2px

Page 33: Intégrateurs, bousculez vos habitudes

❶BOX-SIZING CSS3

div { width: 50%; padding: 1em; border-width: 1px;

} box-sizing: border-box;

50% 50%

Page 34: Intégrateurs, bousculez vos habitudes

❶BOX-SIZING CSS3

88

* { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box;}

Page 35: Intégrateurs, bousculez vos habitudes

SÉLECTION D'ÉLÉMENTS

Page 36: Intégrateurs, bousculez vos habitudes

❶SÉLECTION D'ÉLÉMENTSjQuery of course !

Made by Chuck Norris

<script>$("input[name*='man']").css("background","red");</script>

Page 37: Intégrateurs, bousculez vos habitudes

❶SÉLECTION D'ÉLÉMENTSjQuery of course !

Made by Chuck Norris

#really ?

<script>$("input[name*='man']").css("background","red");</script>

Page 38: Intégrateurs, bousculez vos habitudes

❶SÉLECTION D'ÉLÉMENTS

:first-child premier enfant→

élt + élt frère suivant direct→

élt ~ élt tous les frères suivants→

[attr^="valeur"] attribut qui commence par «valeur»→

[attr$="valeur"] attribut qui termine par «valeur»→

[attr*="valeur"] attribut qui contient «valeur»→

élt:hover élément survolé→

Sélecteurs CSS « avancés »

Page 39: Intégrateurs, bousculez vos habitudes

:first-child élt + élt

élt ~ élt [attr^="valeur"]

[attr$="valeur"]

[attr*="valeur"]

élt:hover

❶SÉLECTION D'ÉLÉMENTSSélecteurs CSS « avancés » qui marchent partout !

Page 40: Intégrateurs, bousculez vos habitudes

❶SÉLECTION D'ÉLÉMENTSjQuery of course (ou pas) !

[name*=man] { background: red;}

=

<script>$("input[name*='man']").css("background","red");</script>

Page 41: Intégrateurs, bousculez vos habitudes

❶li:first-child + li + li { background-color: yellow;}

SÉLECTION D'ÉLÉMENTSCibler le 3e <li> ? Facile !

:first-child élt + élt

élt ~ élt [attr^="valeur"]

[attr$="valeur"]

[attr*="valeur"]

élt:hover

Page 42: Intégrateurs, bousculez vos habitudes

❶[class^="icon-"] { ici des trucs cools}

.icon-info,

.icon-mail,

.icon-skyblog,

.icon-post,

.icon-delete,

...

SÉLECTION D'ÉLÉMENTSCibler un groupe de classes ? Facile !

Page 43: Intégrateurs, bousculez vos habitudes

❶PRÉFIXES CONSTRUCTEURS

-webkit-

-moz-

-ms- -o-

-khtml-

mso--xv--apple-

-rim- -wap--hp-

Page 44: Intégrateurs, bousculez vos habitudes

❶PRÉFIXES CONSTRUCTEURSdiv { -webkit-border-radius : 50%; -moz-border-radius : 50%; -ms-border-radius : 50%; -o-border-radius : 50%; border-radius : 50%;}

Page 45: Intégrateurs, bousculez vos habitudes

❶PRÉFIXES CONSTRUCTEURSdiv { -webkit-border-radius : 50%; -moz-border-radius : 50%; -ms-border-radius : 50%; -o-border-radius : 50%; border-radius : 50%;}

#noob#noob

Page 46: Intégrateurs, bousculez vos habitudes

❶PRÉFIXES CONSTRUCTEURSdiv { -webkit-border-radius : 50%; -moz-border-radius : 50%; -ms-border-radius : 50%; -o-border-radius : 50%; border-radius : 50%;}

#noob#noob

#old#old

Page 47: Intégrateurs, bousculez vos habitudes

❶PRÉFIXES CONSTRUCTEURS

border-radius, text-shadow,

box-shadow, opacity non→

box-sizing uniquement -moz-→

transition, animation,

gradients, calc() uniquement -webkit-→

transform -webkit- et -ms-→

shouldiprefix.com

Page 48: Intégrateurs, bousculez vos habitudes

❶PRÉFIXES CONSTRUCTEURS

border-radius, text-shadow,

box-shadow, opacity non→

box-sizing uniquement -moz-→

transition, animation,

gradients, calc() uniquement -webkit-→

transform -webkit- et -ms-→

flexbox →

shouldiprefix.com

Oui bon OK, là c'estvraiment le #¶§*¿!

Page 49: Intégrateurs, bousculez vos habitudes

❶PRÉFIXES CONSTRUCTEURS

Prefixr.com

Autoprefixer

-prefix-free

Plugins (SublimeText, Notepad, etc.)

LESS, Sass / Compass, Stylus, etc.

C'est automatique !

Page 50: Intégrateurs, bousculez vos habitudes

❶Explorons d'autres positionnements

Adoptons box-sizing

Employons des sélecteurs « avancés »

Laissons-tomber (certains) préfixes

BOUSCULONS NOS TECHNIQUESEn résumé...

Page 51: Intégrateurs, bousculez vos habitudes

BOUSCULONSNOS OUTILS ❷

Page 52: Intégrateurs, bousculez vos habitudes

FRAMEWORKS HTML / CSSUn « kit » pour faciliter la productivité ❷

Page 53: Intégrateurs, bousculez vos habitudes

FRAMEWORKS HTML / CSSCe que propose un framework ❷

Un Reset CSS

Une base réutilisable

Des grilles

Des boutons

Des tableaux

Du Responsive

...

Page 54: Intégrateurs, bousculez vos habitudes

FRAMEWORKS HTML / CSSChoisissez ou construisez le votre ! ❷

Ouch !

Page 55: Intégrateurs, bousculez vos habitudes

PRÉPROCESSEURS CSSDu code qui produit du code ! ❷

styles.less LESS styles.css

Page 56: Intégrateurs, bousculez vos habitudes

PRÉPROCESSEURS CSSDes variables en CSS ❷

@basefont : 1em;@largescreen : 1280px;

body {font-size: @basefont + .2em;

}@media (min-width : @largescreen) {

body {width: auto;}}

body {font-size: 1.2em;

}@media (min-width : 1280px) {

body {width: auto;}}

styles.less

styles.css

Page 57: Intégrateurs, bousculez vos habitudes

PRÉPROCESSEURS CSSUne notation imbriquée ❷styles.les

s

styles.css

.sidebar a {color: tomato;&:hover, &:focus, &:active {text-decoration: underline;}

}

.sidebar a { color: tomato;}.sidebar a:hover,.sidebar a:focus,.sidebar a:active { text-decoration: underline;}

Page 58: Intégrateurs, bousculez vos habitudes

PRÉPROCESSEURS CSSDes calculs et des « fonctions » ❷styles.les

s

styles.css

p { .em(20px); }div { .em(18px); }

p { font-size: 1.4286em;}div { font-size: 1.2857em;}

@basefont: 14px;.em(@size, @bf: @basefont){

@em: round((@size / @bf),4);font-size: unit(@em, em);

}

Page 59: Intégrateurs, bousculez vos habitudes

@column-width: 60;@gutter-width: 20;@columns: 12;

header { .column(12); }article { .column(9); }aside { .column(3); }

@media (max-device-width: 960px) { article { .column(12); } aside { .column(12); }}

<header>...</header><article>...</article><aside>...</aside>

PRÉPROCESSEURS CSSDes modèles de grilles et gouttières ❷

HTML

LESS

http://semantic.gs

Page 60: Intégrateurs, bousculez vos habitudes

PRÉPROCESSEURS CSSContribuent à la maintenance d'un projet ❷

Feuilles de styles allégées en développement,

Maintenance et compréhension facilitées,

Automatisation de tâches (préfixes, calculs, minification, etc.).

Page 61: Intégrateurs, bousculez vos habitudes

Photo : fotolia

Page 62: Intégrateurs, bousculez vos habitudes

utilisons des frameworks

passons par des préprocesseurs

BOUSCULONS NOS OUTILSEn résumé... ❷

un peu

Bien !(si pré-requis préalables)

Page 63: Intégrateurs, bousculez vos habitudes

BOUSCULONSNOS METHODES ❸

Photo : flickr - kalexanderson

Page 64: Intégrateurs, bousculez vos habitudes

AYEZ DES CONVENTIONS !

Page 65: Intégrateurs, bousculez vos habitudes

❸Convention HTML / CSS / JS

Conventions de langue (français / anglais)

Conventions de syntaxe (espace / indentation)

Conventions de commentaires (@TODO)

Conventions de séparateur (trait d'union, underscore)

Conventions de casse (minuscule, majuscule, CamelCase)

Etc.

AYEZ DES CONVENTIONS !Ne recommencez jamais à zéro !

Page 66: Intégrateurs, bousculez vos habitudes

❸Google HTML / CSS style guide

GitHub CSS styleguide

GitHub JavaScript styleguide

WordPress CSS coding standards

WordPress HTML coding standards

WordPress JavaScript coding standards

Idiomatic CSS

AYEZ DES CONVENTIONS !Faites votre choix !

Page 67: Intégrateurs, bousculez vos habitudes

LE « CAS » INTERNET EXPLORER ❸

Page 68: Intégrateurs, bousculez vos habitudes

LE « CAS » INTERNET EXPLORER ❸Internet Explorer, c'est de la ***

– quelqu'un“  « Optimisé pour Internet Explorer »– un vieux site web“ 

Faites-moi un site compatible Internet Explorer !– un client“ 

Page 69: Intégrateurs, bousculez vos habitudes

LE « CAS » INTERNET EXPLORER ❸IE... c'est plus ce que c'était ! ...

Page 70: Intégrateurs, bousculez vos habitudes

LE « CAS » INTERNET EXPLORER ❸IE... c'est plus ce que c'était ! ...

«compatible» IE ?(#really?)

Page 71: Intégrateurs, bousculez vos habitudes

IE11 est unsuper navigateur

Photo : flickr - Taylor Dawn Fortune

Page 72: Intégrateurs, bousculez vos habitudes

ID ou CLASS ?

Photo : Igor Maynaud

Page 73: Intégrateurs, bousculez vos habitudes

ID ou CLASS ? ❸Les « id » c'est pour des éléments uniques dans la page

– quelqu'un qui n'a pas tort“  Les « class » c'est pour des éléments qui ne sont pas uniques

– quelqu'un d'autre“  Don't use id selectors in CSS– CSSlint“ 

Page 74: Intégrateurs, bousculez vos habitudes

Photo : Pizza Hut

* > + ~element / pseudo

class / pseudo / [attr]

ID

style="..."

!important

Spécificité

des sélecteurs

CSS

Page 75: Intégrateurs, bousculez vos habitudes

Photo : Pizza Hut

* > + ~element / pseudo

class / pseudo / [attr]

ID

style="..."

!important

Spécificité

des sélecteurs

CSS

Page 76: Intégrateurs, bousculez vos habitudes

ID ou CLASS ? ❸Les id peuvent être nécessaires en HTML (ancres, formulaires, nommage, JavaScript)

Un élément unique ne doit pas forcément être nommé par un id

Un id n'est pas réutilisable

Un id a une forte spécificitéMontage : @geoffrey_crofte

Page 77: Intégrateurs, bousculez vos habitudes

ID ou CLASS ?

<ul id=″first″> <li><a>...</a></li> <li><a>...</a></li> <li><a>...</a></li></ul>

#first a { background: orange ;}#second a { background: white ;}

Page 78: Intégrateurs, bousculez vos habitudes

ID ou CLASS ?

<ul id=″first″> <li><a>...</a></li> <li><a>...</a></li> <li><a>...</a></li></ul>

#first a { background: orange ;}#second a { background: white ;}

a:hover,a:active,a:focus { background: green;} ?

Page 79: Intégrateurs, bousculez vos habitudes

ID ou CLASS ?

<ul id=″first″> <li><a>...</a></li> <li><a>...</a></li> <li><a>...</a></li></ul>

#first a { background: orange ;}#second a { background: white ;}

#first a:hover, #first a:active,#first a:focus, #second a:hover, #second a:active, #second a:focus { background: green ;}

Page 80: Intégrateurs, bousculez vos habitudes

ID ou CLASS ?

<ul id=″first″> <li><a>...</a></li> <li><a>...</a></li> <li><a>...</a></li></ul>

#first a { background: orange ;}#second a { background: white ;}

a:hover,a:active,a:focus { background: green !important;}

Page 81: Intégrateurs, bousculez vos habitudes

ID ou CLASS ?

<ul class=″first″> <li><a>...</a></li> <li><a>...</a></li> <li><a>...</a></li></ul>

.first a { background: orange ;}.second a { background: white ;}

a:hover,a:active,a:focus { background: green;}

Page 82: Intégrateurs, bousculez vos habitudes

ID ou CLASS ?

<ul id=″first″> <li><a>...</a></li> <li><a>...</a></li> <li><a>...</a></li></ul>

[id=first] a { background: orange ;}[id=second] a { background: white ;}

a:hover,a:active,a:focus { background: green;}

Page 83: Intégrateurs, bousculez vos habitudes

#efficacité#réutilisabilité#maintenabilité

❸existe en pluginpour votre éditeur

Page 84: Intégrateurs, bousculez vos habitudes

DES CSS « OBJETS » ?

CSS

objet

Page 85: Intégrateurs, bousculez vos habitudes

CSS « OBJETS » ❸Intégrez-moi ça !

(ASAP)

Page 86: Intégrateurs, bousculez vos habitudes

CSS « OBJETS » ❸#header { truc: machin;}#sidebar { truc: machin;}#main { truc: machin;}#footer { truc: machin;}

Page 87: Intégrateurs, bousculez vos habitudes

#main { truc: machin;}#main .news { truc: machin;}#main #alaune .news { truc: machin;}

CSS « OBJETS » ❸

#sidebar #edito { truc: machin;}#sidebar .afp { truc: machin;}#sidebar .ads { truc: machin;}

Page 88: Intégrateurs, bousculez vos habitudes

#main { truc: machin;}#main .news { truc: machin;}#main #alaune .news { truc: machin;}

CSS « OBJETS » ❸

#sidebar #edito { truc: machin;}#sidebar .afp { truc: machin;}#sidebar .ads { truc: machin;}

Page 89: Intégrateurs, bousculez vos habitudes

#main { truc: machin;}#main .news { truc: machin;}#main #alaune .news { truc: machin;}

CSS « OBJETS » ❸

#sidebar #edito { truc: machin;}#sidebar .afp { truc: machin;}#sidebar .ads { truc: machin;}

Page 90: Intégrateurs, bousculez vos habitudes

CSS « OBJETS » ❸✔ Largeur adaptable (fluide)

✔ Doit contenir les flottants

✔ Peut contenir une image(à gauche, largeur inconnue)

Similarités :

Page 91: Intégrateurs, bousculez vos habitudes

CSS « OBJETS » ❸✔ Largeur adaptable (fluide)

✔ Doit contenir les flottants

✔ Peut contenir une image(à gauche, largeur inconnue)

Similarités :.mod

Page 92: Intégrateurs, bousculez vos habitudes

CSS « OBJETS » ❸✔ Largeur adaptable (fluide)

✔ Doit contenir les flottants

✔ Peut contenir une image(à gauche, largeur inconnue)

Similarités :.modimg .inner

Page 93: Intégrateurs, bousculez vos habitudes

CSS « OBJETS » ❸✔ Largeur adaptable (fluide)

✔ Doit contenir les flottants

✔ Peut contenir une image(à gauche, largeur inconnue)

Similarités :.modimg .inner

.mod > img { float: left;}.mod > .inner { float: left; width: ?!?!;}

Page 94: Intégrateurs, bousculez vos habitudes

CSS « OBJETS » ❸✔ Largeur adaptable (fluide)

✔ Doit contenir les flottants

✔ Peut contenir une image(à gauche, largeur inconnue)

Similarités :.modimg .inner

.mod > img { float: left;}.mod > .inner { margin-left: ?!?!;}

Page 95: Intégrateurs, bousculez vos habitudes

CSS « OBJETS » ❸parentfloat parentfloat

Block Formatting Context

parent {overflow : hidden;}

Page 96: Intégrateurs, bousculez vos habitudes

CSS « OBJETS » ❸frèrefloat frèrefloat

Block Formatting Context

frère {overflow : hidden;}

dont le contenu

s'écoule autour duflottant

dont le contenune s'écoule plusautour du flottant

Page 97: Intégrateurs, bousculez vos habitudes

CSS « OBJETS » ❸.mod { overflow: hidden;}.mod > img { float: left;}.mod > .inner { overflow: hidden;}

Page 98: Intégrateurs, bousculez vos habitudes

CSS « OBJETS » ❸<div id="wrapper" class="line w80"></div>

<section class="info mod pr0"></section>

<nav id="navigation" role="navigation" class="large-no-float">

Des classes « sémantiques » ?!

Privilégiez le sens et la fonction des éléments !(les classes « visuelles » doivent être secondaires)

Page 99: Intégrateurs, bousculez vos habitudes

CSS « OBJETS » ❸OOCSSNicole Sullivan

SMACSSJonathan Snooks

http://oocss.org http://smacss.com/

Page 100: Intégrateurs, bousculez vos habitudes

Ayons des conventions !

Reconsidérons (doucement) Internet Explorer

Évitons les sélecteurs id si possible

Appliquons des CSS « objets » (OOCSS)

BOUSCULONS NOS MÉTHODESEn résumé... ❸

Page 101: Intégrateurs, bousculez vos habitudes
Page 102: Intégrateurs, bousculez vos habitudes

SAINES LECTURESPour vos longues soirées d'hiver...

Page 103: Intégrateurs, bousculez vos habitudes

SAINES RESSOURCESPour votre veille technologique constante

Page 104: Intégrateurs, bousculez vos habitudes

MERCI, À LAPROCHAINE !

Polices : Delicious heavyAnnie Use Your Telescope

Pictos :Design BoltsCapital18Artua

Raphaël Goetter www.alsacreations.fr @goetter