3. UN PEU D’HISTOIRE
1996
•Première spécification CSS à devenir une
Recommandation W3C Officiel, CSS Level 1(CSS1)
1997
•Création de CSS level 2 par le CSS Working Group
•Le W3C ne maintient plus la recommandation CSS1
4. 1998
•CSS2 devient une recommandation
•CSS2 révision 1 = Retrait des fonctionnalités
•Développement de la spécification CSS3
•Le W3C ne maintient plus la recommandation CSS2
5. 1998
•CSS2 devient une recommandation
•CSS2 révision 1 = Retrait des fonctionnalités
•Développement de la spécification CSS3
•Le W3C ne maintient plus la recommandation CSS2
1999
•Le premier working draft CSS3 est publié
7. 2005
•Des standard déjà publié tel que CSS 2.1, CSS 3
Selectors et CSS 3 Text sont ramenés de Candidate
Recommendation à Working Draft
•CSS 2.1 devient Candidate Recommendation, mais est
renversé à l’état de Working Draft quelques mois après
8. 2005
•Des standard déjà publié tel que CSS 2.1, CSS 3
Selectors et CSS 3 Text sont ramenés de Candidate
Recommendation à Working Draft
•CSS 2.1 devient Candidate Recommendation, mais est
renversé à l’état de Working Draft quelques mois après
2007
•CSS 2.1 devient Candidate Recommendation
9. 2005
•Des standard déjà publié tel que CSS 2.1, CSS 3
Selectors et CSS 3 Text sont ramenés de Candidate
Recommendation à Working Draft
•CSS 2.1 devient Candidate Recommendation, mais est
renversé à l’état de Working Draft quelques mois après
2007
•CSS 2.1 devient Candidate Recommendation
2009
•CSS 2.1 est mis à jour 2 fois
10. 2005
•Des standard déjà publié tel que CSS 2.1, CSS 3
Selectors et CSS 3 Text sont ramenés de Candidate
Recommendation à Working Draft
•CSS 2.1 devient Candidate Recommendation, mais est
renversé à l’état de Working Draft quelques mois après
2007
•CSS 2.1 devient Candidate Recommendation
2009
•CSS 2.1 est mis à jour 2 fois
2010
•CSS 2.1 est renversé à l’état de Working Draft
13. Hier à aujourd’hui
1, 675 ULTIMATE CSS TECHNIQUES YOU WISH
YOU KNEW BEFORE AND WILL HELP YOU
BECOME A NINJA WEB DESIGNER
14. Hier à aujourd’hui
•Problèmes = Solutions documentés, workarounds pour
navigateurs, groupes de supports, partages de
techniques, etc.
•Sortie des navigateurs au ralentie = Temps pour fabriqué
des approches réutilisable + des bonnes pratiques
•Obsession du pixel perfect sur tous les navigateurs
•Aujourd’hui nos sites sont: mulit-platforme, accessible,
flexible, sémantique, optimal, standard, indexable, etc.
•Regroupé et nommé ces bonne pratiques
15. Graceful degradation
•Navigateurs modernes = Prioritaires avec tests sur les
versions précédentes des principaux
•Anciens navigateurs = expérience passable + petits fixes
16. Graceful degradation
•Navigateurs modernes = Prioritaires avec tests sur les
versions précédentes des principaux
•Anciens navigateurs = expérience passable + petits fixes
Progressive enhancement
•Focus sur le contenu, ≠ navigateurs
•CSS2 et un peu de CSS3
•Bloque le notre potentiel créatif
17. Graceful degradation
•Navigateurs modernes = Prioritaires avec tests sur les
versions précédentes des principaux
•Anciens navigateurs = expérience passable + petits fixes
Progressive enhancement
•Focus sur le contenu, ≠ navigateurs
•CSS2 et un peu de CSS3
•Bloque le notre potentiel créatif
Hardboiled
•Aucuns compromis, meilleur expérience Web possible
•Expérience selon les capacités du navigateur (CSS3)
•Design différent pour les navigateurs
19. Demain
•Les sites Web ≠ pareil dans tous les navigateurs
•Pixel Perfect = Abandonné les nouvelles technologies
non supportés par tous les navigateurs
•Accepter les nouvelles réalités: augmentation des
mobiles, TV et écrans de toutes tailles
•Navigateurs sortent plus rapidement
•Les navigateurs modernes ont gagnés du terrain
•IE6 est mort(http://ie6countdown.com/)
•Regarder à l’avant, pas à l’arrière
•Pour avancé, nous devons changé notre façon de penser
20. Demain
•Les sites Web ≠ pareil dans tous les navigateurs
•Pixel Perfect = Abandonné les nouvelles technologies
non supportés par tous les navigateurs
•Accepter les nouvelles réalités: augmentation des
mobiles, TV et écrans de toutes tailles
•Navigateurs sortent plus rapidement
•Les navigateurs modernes ont gagnés du terrain
•IE6 est mort(http://ie6countdown.com/)
•Regarder à l’avant, pas à l’arrière
•Pour avancé, nous devons changé notre façon de penser
dowebsitesneedtobeexperiencedexactlythesameineverybrowser.com
21. CSS3 Logo by W3C
“Rather than attempting to shove dozens of updates into a
single monolithic specification, it will be much easier and
more efficient to be able to update individual pieces of the
specification. Modules will enable CSS to be updated in a
more timely and precise fashion, thus allowing for a more
flexible and timely evolution of the specification as a whole.”
W3C - http://www.w3.org/TR/css3-roadmap/
22. Pourquoi
•Interactions, animations, mouvements ≠ Flash/JavaScripts
•Sites Web flexible qui prennent en comptes les largeurs
d’écrans
•Temps de développement et coûts réduits
•Fonts variés, drop shadow, coins arrondis, sélecteurs
avancés, transparence transitions, transformations, etc.
23. Pourquoi
•Interactions, animations, mouvements ≠ Flash/JavaScripts
•Sites Web flexible qui prennent en comptes les largeurs
d’écrans
•Temps de développement et coûts réduits
•Fonts variés, drop shadow, coins arrondis, sélecteurs
avancés, transparence transitions, transformations, etc.
Comment
•Stratégie
•Modules CSS3
•Ressources
25. Statuts des modules
•Si on se limite aux normes finalisées = CSS2 de 1998
•Focusé sur les modules implémentés
Completed work
REC W3C Recommendation
Drafts
PR Proposed Recommendation
CR Candidate Recommendation
LC Last Call Draft
WD Working Draft
http://www.w3.org/standards/techs/css#w3c_all
26. Priorités des modules
•Focusé sur les modules de priorités élevés
Completed work
High priority
Medium priority
Low Priority
http://www.w3.org/Style/CSS/current-work
27. Préfixes “vendor-specific”
•Processus intéressant = Navigateurs + développeurs
testes => Commentaires pour améliorer la spécification
•Les validateurs devraient l'accepté, ≠ hack
•L’ordre est important
•Filtres propriétaires Microsoft ≠ préfixes
•CSSPrefixer
28. Préfixes “vendor-specific”
•Processus intéressant = Navigateurs + développeurs
testes => Commentaires pour améliorer la spécification
•Les validateurs devraient l'accepté, ≠ hack
•L’ordre est important
•Filtres propriétaires Microsoft ≠ préfixes
•CSSPrefixer
29. Préfixes “vendor-specific”
•Processus intéressant = Navigateurs + développeurs
testes => Commentaires pour améliorer la spécification
•Les validateurs devraient l'accepté, ≠ hack
•L’ordre est important
•Filtres propriétaires Microsoft ≠ préfixes
•CSSPrefixer
30. Support des navigateurs
•caniuse.com
•QuirksMode - CSS contents and browser compatibility
•Robert Nyman - CSS3 - Information and samples
•findmebyIP - HTML5 & CSS3 Support
•universal-ie6-css
http://morcha.blogbus.com/logs/30886671.html
31. Choix et implantation des alternatives
•Cas par cas
•Abandonné/exclure les usagers des anciens navigateurs
•Commentaires conditionnel + feuilles de style pour IE
•JavaScripts pour ajouter le support CSS3
•CSS3 PIE
•eCSSstender
•ie7-js
•cssSandpaper
32. Choix et implantation des alternatives
•Cas par cas
•Abandonné/exclure les usagers des anciens navigateurs
•Commentaires conditionnel + feuilles de style pour IE
•JavaScripts pour ajouter le support CSS3
•CSS3 PIE
•eCSSstender
•ie7-js
•cssSandpaper
Offrir une alternative à la hauteur du
navigateur pour les différentes
fonctionnalités
41. PR
CSS COLOR MODULE LEVEL 3
RGB(A), HSL(A) et noms de couleurs
•≠ propriété, = nouveau modèle de couleur
•Valeur RGB ou HSL avec optionnellement l’opacité
http://robertnyman.com/css3/
42. opacity
•Opacité d’un élément de 0 à 1
•RGBa = 1 couleur / Opacity = 1 élément + enfants
http://www.findmebyip.com/litmus/
43. PR
SELECTORS LEVEL 3
[att]
•Attribut att, peut importe la valeur de l’attribut
44. PR
SELECTORS LEVEL 3
[att]
•Attribut att, peut importe la valeur de l’attribut
[att=val]
•Attribut att et la valeur exact val
45. PR
SELECTORS LEVEL 3
[att]
•Attribut att, peut importe la valeur de l’attribut
[att=val]
•Attribut att et la valeur exact val
[att~=val]
•Attribut att avec des valeurs séparés par des espaces,
l’une d’elles doit être val
46. [att|=val]
•Attribut att et la valeur exact val ou commençant par val
et immédiatement suivit de "-"
•Principalement pour les sous-code de languages
47. [att|=val]
•Attribut att et la valeur exact val ou commençant par val
et immédiatement suivit de "-"
•Principalement pour les sous-code de languages
[att^=val]
•Attribut att et une valeur qui commence par val
48. [att|=val]
•Attribut att et la valeur exact val ou commençant par val
et immédiatement suivit de "-"
•Principalement pour les sous-code de languages
[att^=val]
•Attribut att et une valeur qui commence par val
[att$=val]
•Attribut att et une valeur qui se termine par val
49. [att|=val]
•Attribut att et la valeur exact val ou commençant par val
et immédiatement suivit de "-"
•Principalement pour les sous-code de languages
[att^=val]
•Attribut att et une valeur qui commence par val
[att$=val]
•Attribut att et une valeur qui se termine par val
[att*=val]
•Attribut att et une valeur qui contient au moins une
instance de la substring val
50. The target pseudo-class :target
•Certaines URIs ce terminant par # et un identifiant de
fragement refère à un emplacement dans une ressource.
•Exemple: http://example.com/html/top.html#section_2
•Ces URIs ciblent vers un élément dans le document,
connu comme l’élément cible.
•Un élément cible peut être représenté par la pseudo-
class :target.
51. The target pseudo-class :target
•Certaines URIs ce terminant par # et un identifiant de
fragement refère à un emplacement dans une ressource.
•Exemple: http://example.com/html/top.html#section_2
•Ces URIs ciblent vers un élément dans le document,
connu comme l’élément cible.
•Un élément cible peut être représenté par la pseudo-
class :target.
The language pseudo-class :lang
•Représente un sélecteur pour un élément selon sa
langue si elle est spécifié
52. The target pseudo-class :target
•Certaines URIs ce terminant par # et un identifiant de
fragement refère à un emplacement dans une ressource.
•Exemple: http://example.com/html/top.html#section_2
•Ces URIs ciblent vers un élément dans le document,
connu comme l’élément cible.
•Un élément cible peut être représenté par la pseudo-
class :target.
The language pseudo-class :lang
•Représente un sélecteur pour un élément selon sa
langue si elle est spécifié
54. :enabled
•Représente un élément de l’interface usager (ex: input)
qui est dans l’état enabled
:disabled
•Représente un élément de l’interface usager (ex: input)
qui est dans l’état disabled
55. :enabled
•Représente un élément de l’interface usager (ex: input)
qui est dans l’état enabled
:disabled
•Représente un élément de l’interface usager (ex: input)
qui est dans l’état disabled
:checked
•Les éléments radio et checkbox peuvent être choisi par
l’usager. Lorsque ces élément sont choisi(on) la pseudo-
class :checked s’applique
•Bon aussi pour les éléments qui peuvent avoir l’attribut
selected
57. ::first-line
•Représente la première ligne formatté d’un élément.
::first-letter
•Représente la première lettre d’un élément, si elle n’est
pas précédé par aucuns autres éléments de contenu
(images) sur sa ligne.
•Utiliser pour donner du style
•La ponctuation qui précède ou suit le première lettre
devrait être inclus
•Pourrait être un chiffre. 67 millions = 6
58. ::before et ::after
•Les pseudo-éléments ::before et ::after peuvent êtres
utilisés pour inséré du contenu généré avant ou après le
contenu d’un élément.
59. ::before et ::after
•Les pseudo-éléments ::before et ::after peuvent êtres
utilisés pour inséré du contenu généré avant ou après le
contenu d’un élément.
::selection
•Change la couleur de background et de texte des
sélections.
•http://css-tricks.com/overriding-the-default-text-
selection-color-with-css/
60. General sibling combinator (~)
•Fait de 2 séquences de sélecteurs séparés par ~. Les
éléments représenté par ces deux séquences partagent
le même parent et l’élément représenté par la première
séquence précède (Pas nécessairement immédiatement)
l’élément représenté par la deuxième séquence.
http://www.quirksmode.org/css/selector_sibling.html
61. CR
CSS BACKGROUNDS AND
BORDERS MODULE LEVEL 3
Background-image
•Plusieurs image de background sur un élément
•Séparés par une virgule (,)
•Les navigateurs qui ne supportent pas vont ignoré la
règle, donc mettre une déclaration simple avant
•La première image dans la liste est la plus près de
l’utilisateur
63. Background-clip
•Spécifie la zone de peinture de fond du background
•“border-box” Affiché à l’intérieur du border-box
•“padding-box” Affiché à l’intérieur du padding-box
•“content-box” Affiché à l’intérieur du content-box
http://robertnyman.com/css3/
64. Background-origin
•Spécifie comment la position du background est calculé
•“border-box” Positionné relativement selon la bordure
•“padding-box” Positionné relativement selon le padding
•“content-box” Positionné relativement selon le contenu
http://robertnyman.com/css3/
65. Background-size
•Spécifie la taille de l’image de background
•La première valeur donne la largeur tandis que la
deuxième valeur donne la hauteur
•Si une des dimensions à sa valeur à auto, l’image doit
garder son ration.
http://robertnyman.com/css3/
66. Border-radius
•Arrondis les coins d’un élément avec une valeur de
rayon (%, px ou ems)
•Possibilité de contrôlé chaque coins
•IE7 et IE8 = coins carrés devraient être acceptables
http://robertnyman.com/css3/
67. Border-image
•Images de background à l’intérieur de la zone de
bordure à la place d’un style
•Les côtés et les coins sont pris de l’image spécifié, dont
les parties seront découpé, redimentionné et tendu au
besoin.
•L’image fournit sera découpé en 9 partie selon une grille
3x3. Comme avec les guides dans Photoshop
•Valeurs: Source de l’image suivit par la position des
guides de découpe. Chaque partie de découpe devient
une composante de la bordure: 4 coins, 4 côté entre les
coins et la partie du centre (top, right, bottom, left)
68. •“stretch” L’image est étiré pour couvrir la zone
•“repeat” L’image est tuilé et répété pour couvrir la zone
•“round” L’image est tuilé et répété pour couvrir la
zone. Si la zone n’est pas couverte avec un nombre
complet de tuiles, les images sont redimensionnés afin
qu’il couvrent la zone
•“space” L’image est tuilé et répété pour couvrir la
zone. Si la zone n’est pas couverte avec un nombre
complet de tuiles, les images se distribuent l’espace afin
qu’ils couvrent la zone
70. Box-shadow
•Ajoute une ombre à un élément
•Possibilité de combiné avec RGBa pour un effet
•La première valeur = au décalage horizontal, la seconde
= décalage vertical et la troisième valeur = rayon de
flou. Finalement, couleur pour l’ombrage
•Pour créé une effet plus naturel de 3D il est possible
d’ajouter une 2e ombre
http://robertnyman.com/css3/
71. CR
MEDIA QUERIES
•Étiquettage plus précis des feuilles de styles
•width, height, min/max, color, orientation, aspect-ratio, etc
•Outil pour “Responsive Web Design”
•Changement de CSS en haut de 800px de large:
http://robertnyman.com/css3/
72. Responsive Web Design
•Le site doit être construit avec une grille flexible.
•Les images dans le design doivent être flexibles.
•Différentes vues doivent êtres offertes pour les
différents contextes via les media queries.
http://sixrevisions.com/web_design/understanding-the-elements-of-responsive-web-design/
http://mediaqueri.es/
73. CR
CSS MULTI-COLUMN LAYOUT
MODULE
•Mise en page avec colonnes ≠ floats
•Nous pouvons définir un système de colonnes soit en
définissant le nombre de colonnes ou la largeur des
colonnes
•Le contenu peut continuer d’une colonne à une autre
http://robertnyman.com/css3/
74. CR
CSS3 BASIC USER INTERFACE
MODULE
box-sizing
•content-box = width, height et min/max appliqué au
content box. Padding et border à l’éxtérieur des
dimensions
•border-box = width, height et min/max détermine le
border box. Padding et border compris dans les
dimensions
http://robertnyman.com/css3/
75. Outline
•Agit comme border (width, style, color)
•+ outline-offset
MAIS
•Ils ne prenne pas d’espace
•Peuvent être non-rectangulaire
http://robertnyman.com/css3/
76. WD
CSS TEXT LEVEL 3
text-shadow
•Propriété CSS2 abandonné dans CSS 2.1 et ré-introduis
dans CSS3
•Ajout d’une ombre au texte, avec des options de
direction, quantité de flou et couleur de l’ombre
•Les 2 premières valeurs servent au décalage horizontal
et vertical. La 3e valeur est le rayon du dégradé de
l’ombre. Finalement, la couleur de l’ombre
•Valeurs négatives acceptés
•Possibilité de mettre plusieurs ombres
78. WD
CSS FONTS MODULE LEVEL 3
•Utilisation de fonts plus variés. Pas de Flash, pas de
JavaScripts
•Vérifier la licence EULA (End User License Agreement)
•La police doit se trouver sur le même domaine
81. WD
CSS 2D TRANSFORMS
MODULE LEVEL 3
•Développé initialement par l’équipe de WebKit et
ensuite incorporé au W3C
•Permet au élément rendu par CSS d’être transformé
dans un espace en 2 dimensions
http://robertnyman.com/css3/
82. Scale
•Les élément qui ont la transformation scale n’influencent
pas le layout du document.
•Possible de mettre un point d’origine
83. Scale
•Les élément qui ont la transformation scale n’influencent
pas le layout du document.
•Possible de mettre un point d’origine
Rotate
•http://outsideapp.com/
84. Scale
•Les élément qui ont la transformation scale n’influencent
pas le layout du document.
•Possible de mettre un point d’origine
Rotate
•http://outsideapp.com/
86. Skew
•Skew prends les coordonnés x et y et penche un
élément.
Translate
•Translate déplace les éléments via les coordonnés x/y
•Valeurs négatives acceptés
87. Skew
•Skew prends les coordonnés x et y et penche un
élément.
Translate
•Translate déplace les éléments via les coordonnés x/y
•Valeurs négatives acceptés
88. WD
CSS TRANSITIONS MODULE
LEVEL 3
•Développé initialement par l’équipe de WebKit et
ensuite incorporé au W3C
•Changement des valeurs dans les CSS lorsque qu’une
interaction est déclenché (hover)
•Liste des propriétés qui peuvent être en transition
http://robertnyman.com/css3/
96. CSS3 Selectors
•CSS3 Selectors Test
CSS3 Font-face
•Font Squirrel @font-face generator
•Review of Popular Web Font Embedding Services
97. CSS3 Selectors
•CSS3 Selectors Test
CSS3 Font-face
•Font Squirrel @font-face generator
•Review of Popular Web Font Embedding Services
Media Queries
•CSS 3 Media Queries for all Browser (jQuery Plugin)
•css3-mediaqueries-js
•Respond
•1140 CSS Grid
•ProtoFluid
•Hardboiled CSS3 Media Queries
•Responsive-Images