Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Trois avancées majeures en CSS3 : Media Queries...

Raphael Goetter
February 09, 2012

Trois avancées majeures en CSS3 : Media Queries, Grid Layout et Animations

Microsoft Techdays 2012, Paris

Raphael Goetter

February 09, 2012
Tweet

More Decks by Raphael Goetter

Other Decks in Design

Transcript

  1. 8 février 2012 Raphaël Goetter Übercheerleader Alsacréations @goetter Trois avancées

    majeures en CSS3 : Media Queries, Grid Layout et Animations
  2. 1 PC de bureau (24") 1 PC portable (15") 1

    PC portable (11.6") 1 netbook (10") 1 tablette Windows (10") 1 tablette Android (8.9") 1 smartphone Apple (3.5") Mon quotidien
  3. Media Queries ! CSS3 Media Queries « Requête CSS3 permettant

    d’appliquer des styles CSS selon des critères choisis, notamment la largeur d’écran »
  4. Media Queries ! CSS3 Media Queries Pas besoin de site

    dédié Seul le design s'adapte Aucune intervention sur le serveur Pas de langage de développement Tout est possible visuellement CSS est fait pour ça !
  5. Démos Sony http://www.sony.com/index.php Barrack Obama http://www.barackobama.com/ Theme Loom http://themeloom.com/ The

    Boston Globe http://www.bostonglobe.com/ Goetter http://www.goetter.fr/ Alsacréations http://www.alsacreations.fr/
  6. styles.css body { width : 960px ; } nav {

    float : left ; width : 200px ; } #content { float : left ; width : 760px } <link rel="stylesheet" media="screen and (max- width : 640px)" href="mobile.css"> mobile.css body { width : auto; } nav, #content { float : none; width : auto; } …
  7. styles.css body { width : 960px ; } nav {

    float : left ; width : 200px ; } #content { float : left ; width : 760px } @media (max-width : 640px) { body { width : auto; } nav, #content { float : none; width : auto; } } @media (max-width : 640px) { … }
  8. Où en est-on ? position: relative <br><br><br> frames spacer.gif marges

    négatives float position: absolute <table> colspan hacks clear bidouilles flux bugs rowspan reset commentaires conditionnels &nbsp; calques frameworks CSS IE6 must die !
  9. Grid Layout CSS3 Grid Layout Grille virtuelle Concepts de lignes

    et colonnes Indépendant de l'ordre HTML Positionnement intuitif Alignements et centrages simples Superpositions possibles
  10. Colonnes body { display: grid ; grid-columns: 250px 1fr; }

    nav { grid-column: 1; } section { grid-column: 2; }
  11. Lignes / Colonnes body { display: grid ; grid-columns: 250px

    1fr; grid-rows: 100px 300px; } nav { grid-column: 1; grid-row: 1; } article { grid-column: 1; grid-row: 2; } …
  12. Motifs répétés body { display: grid ; grid-columns: 10px (1fr

    10px)[4]; } … correspond à 10px 1fr 10px 1fr 10px 1fr 10px 1fr 10px
  13. Distribution body { display: grid ; grid-columns: 250px 1fr; grid-rows:

    100px 300px; } header { grid-column: 1; grid-row: 1; grid-column-span: 2 ; } …
  14. Template body { display: grid ; grid-template: "hh" "nc" "ff";

    } header { grid-cell: "h"; } nav { grid-cell: "n"; } … Template syntax
  15. Alignements section { grid-row-align: center; } article { grid-column-align: center;

    } aside { grid-row-align: center; grid-column-align: center; }
  16. Fluide ! body { display: grid ; grid-template: "abcd"; }

    body { display: grid ; grid-template: "a" "b" "d" "d"; }
  17. Transitions / Animations CSS3 Transitions « Transition CSS3 permet une

    évolution progressive entre deux valeurs d'une propriété CSS lorsqu'un événement est déclenché » CSS3 Animations « Extension de Transition. Permet d'appliquer un scénario dans le temps (plusieurs transitions) lors d'un événement ou lors du chargement d'un l'élément »
  18. Transitions div { width: 100px ; transition: width 1s ease

    2s ; } div:hover { width: 200px ; } Aussi :hover, :focus, :active, :checked, :disabled, :valid, :invalid, :target, ::selection, … Propriété Durée Courbe de progression Délai Aussi « all » (ou rien)
  19. Animations @keyframes kiwi { 0% {width: 100px ;} 50% {width:

    50px ;} 100% {width: 100px ;} } div:hover { animation: kiwi 4s infinite ; } Appel de l'animation « kiwi » au survol Déclaration de l'animation « kiwi » Séquences temporelles en %
  20. Démos Apple http://www.apple.com/ The Expressive Web http://bit.ly/mstd1 Photogame http://photogame.fr/ AT-AT

    Walker http://bit.ly/mstd2012a Animatable http://bit.ly/z652t3 Spiderman http://bit.ly/w4Z83s
  21. 4 redirections d’URL 155 requêtes 33 fichiers JS externes 6

    iframes 22.36s de chargement sur bureau 8s de chargement sur mobile mstechdays.fr
  22. 95 flottants 20 clear : both 65 position: absolute 60

    position: relative plusieurs surcouches CSS sur chaque élément mstechdays.fr
  23. couche « reset » perso : display : none width

    : auto ; height : auto float : none position : static overflow : visible suppression de 10aines de JS Grand Ménage !
  24. Grilles #inGrid { display: grid ; grid-columns: 428px 284px 284px

    284px; grid-rows: 132px 132px 140px; } #grid1 { grid-column: 1; grid-row: 1; grid-row-span: 3; } #grid2 { grid-column: 2; grid-row: 1; grid-row-span: 2;
  25. Media Queries @media (max-width: 1280px) { #inGrid { grid-columns: 428px

    284px 284px; grid-rows: 132px 132px 140px 140px; } #grid7 {grid-column: 1; grid-row: 4;} #grid8 {grid-column: 2; grid-row: 4;} #grid9 {grid-column: 3; grid-row: 4;} } …
  26. Media Queries @media (max-width: 1000px) { #inGrid { grid-columns: 428px

    284px; grid-rows: 132px 132px 140px 140px 140px 140px 140px; } } @media (max-width: 712px) { #inGrid { grid-columns: 1fr; grid-rows: 132px 132px 140px 140px 140px 140px 140px 140px 140px; } } …
  27. couche « reset » perso : Suppression JS CSS3 Grid

    Layout CSS3 Media Queries CSS3 Animations Finish Him ! TechDays remix http://bit.ly/mstd2012