SlideShare une entreprise Scribd logo
1  sur  97
Télécharger pour lire hors ligne
Monday, 5 November 12
Hi.I am chris                        mills.

         ‣ Open standards advocate and
             Education           agitator
         ‣ dev.opera.com editor
         ‣ W3C fellow, working
             on         webplatform.org
         ‣ Accessibility whiner
         ‣ HTML5/CSS3 wrangler
         ‣ Heavy metal drummer
             and         proud   dad




Monday, 5 November 12
Monday, 5 November 12
useful stuff

         ‣ dev.opera.com
         ‣ webplatform.org
         ‣ slideshare.net/
             chrisdavidmills
         ‣ cmills@opera.com
         ‣ @chrisdavidmills




Monday, 5 November 12
in this talk...
         ‣ MQ: Beyond width and height
         ‣ Other “responsive modules”
         ‣ Legacy support
         ‣ RWD for the future




Monday, 5 November 12
Monday, 5 November 12
A quick flashback




Monday, 5 November 12
In the beginning...

         ‣ There wasn’t much RWD
         ‣ We only really looked at the
             Web        on   desktops/laptops




Monday, 5 November 12
Ok. We had wap




Monday, 5 November 12
Monday, 5 November 12
Monday, 5 November 12
Then the mobile web
                   arrived




Monday, 5 November 12
Then the mobile web
                   arrived




Monday, 5 November 12
Then the mobile web
                   arrived




Monday, 5 November 12
Then the mobile web
                   arrived




Monday, 5 November 12
media types
             media="screen"
             media="print"




Monday, 5 November 12
media types
             media="handheld"
             media="tv"




Monday, 5 November 12
small tv rant
             “Searching, browsing,
             updating and buffering are
             not TV-like. In fact an
             enormous number of people
             found that the technology
             they had purchased wasn't
             what they expected at all,
             that they were bringing the
             worst parts of using a
             computer into the television
             environment.”
                         --   www.insideci.co.uk/news/rovi-research-
                               reveals-changing-consumer-habits.aspx




Monday, 5 November 12
small tv rant
             “Searching, browsing,
             updating and buffering are
             not TV-like. In fact an
             enormous number of people
             found that the technology
             they had purchased wasn't
             what they expected at all,
             that they were bringing the
             worst parts of using a
             computer into the television
             environment.”
                         --   www.insideci.co.uk/news/rovi-research-
                               reveals-changing-consumer-habits.aspx




Monday, 5 November 12
Monday, 5 November 12
Back to the modern
      world




Monday, 5 November 12
media queries

             media="screen and (max-width: 481px)"


             @media screen and (max-width: 481px) {
               /* do amazing stuff for
                  narrow screens */
             }




Monday, 5 November 12
media queries




Monday, 5 November 12
the mobile problem




Monday, 5 November 12
viewport

             <meta name="viewport"
             content="width=device-width">




Monday, 5 November 12
other rwd issues



Monday, 5 November 12
other rwd issues



Monday, 5 November 12
Other
                        considerations
         ‣ Making replaced elements
             responsive
         ‣ Bandwidth/loading of
             resources
         ‣ Resolution
         ‣ Processing power
         ‣ Control mechanisms




Monday, 5 November 12
replaced elements



Monday, 5 November 12
replaced elements
             #related img {
                   display: block;
                   margin: 0 auto;
                   max-width: 100%;
             }




Monday, 5 November 12
be warned
         ‣ Old IE versions don’t
             support max-width, so you’ll
             have to fallback to width:
             100% instead.




Monday, 5 November 12
file size also
                          important
         ‣ Users on slow connections
             won’t       want to   download   huge
             media       files.
         ‣ We need to try to serve them
             smaller       files/alternatives.
         ‣ Assumptions: e.g. narrow
             equals mobile         equals   slow
             connection




Monday, 5 November 12
css resources easy
                  to deal with
         ‣ Use “mobile first”
         ‣ Load smaller resources by
             default, and   larger   ones
             inside MQs
         ‣ And in the future we’ve got
             things like image-set     coming
             up (possibly...)




Monday, 5 November 12
Mobile first
                           example
             header { background: url(small-
             image.png); }
             @media screen and (min-width: 480px) {
               header { background: url(large-
             image.png); }
             }




Monday, 5 November 12
html5 video also
                          well served
                 <source src="crystal320.webm"
             type="video/webm" media="all and (max-
             width: 480px)">
                 <source src="crystal720.webm"
             type="video/webm" media="all and (min-
             width: 481px)">




Monday, 5 November 12
But html images are
                 not so lucky




              <img src="thats-all-folks.png"> ?




Monday, 5 November 12
Various solutions

         ‣ http://dev.opera.com/
             articles/view/responsive-
             images-problem/
         ‣ None work perfectly
         ‣ Pre-fetch is a bitch




Monday, 5 November 12
adaptive-images

         ‣ adaptive-images.com
         ‣ Add .htaccess and adaptive-
             images.php to       your     document
             root folder.
         ‣ Add one line of JavaScript
             into the       <head>   of   your
             site.
         ‣ Add your CSS Media Query
             values into $resolutions            in
             the PHP file.




Monday, 5 November 12
the picture element

             <picture alt="a picture of something">
                   <source src="mobile.jpg">
                   <source src="medium.jpg" media="min
                           width: 600px">
                   <source src="fullsize.jpg" media="min
                           width: 900px">
                   <img src="mobile.jpg">
                   <!-- fallback for
                        non-supporting browsers -->
             </picture>
Monday, 5 November 12
suggested solutions

         ‣ Srcset
         ‣ New image formats?
         ‣ Defined the media tests in
             meta       tags?
         ‣ New headers and protocols?




Monday, 5 November 12
processing power
         ‣ You might want to turn off
             effects like shadows,
             gradients and animations             for
             small screen devices.
         ‣ CSS effects are arguably
             less power draining than             JS
             or Flash, but even so.
         ‣ They can cause the display
             to         look   cluttered   too.




Monday, 5 November 12
resolution



Monday, 5 November 12
resolution



Monday, 5 November 12
resolution



Monday, 5 November 12
resolution
                        64px




Monday, 5 November 12
resolution
                        64px


                               48px




Monday, 5 November 12
now we have hi
                    fidelity devices
         ‣ e.g. iPhone 4s is 960 x 640
             pixels     at   326ppi
         ‣ These devices lie twice
         ‣ One CSS pixel = multiple
             device     pixels
         ‣ Images can start to look
             pixellated




Monday, 5 November 12
SOLUTIONS

             <img src="500px_image.jpg" width="250">




Monday, 5 November 12
SOLUTIONS

             @media screen and (-o-min-device-pixel-
             ratio: 3/2) {
                   body { background-size: 250px; }
             }
             @media screen and (-webkit-min-device-
             pixel-ratio: 1.5) {
                   body { background-size: 250px; }
             }


Monday, 5 November 12
Monday, 5 November 12
soon to be
                        replaced by
             @media screen and (resolution: 1.5dppx)
             {
                   body { background-size: 250px; }
             }




Monday, 5 November 12
tell the truth with
                  viewport
             <meta name="viewport"
             content="width=device-width,
             target-densitydpi=device-dpi">




Monday, 5 November 12
All good but...

         ‣ Images may now start to look
             a          little   small
         ‣ You could serve larger
             images          for devices   with
             higher          resolutions




Monday, 5 November 12
control mechanisms
         ‣ Currently tricky
           ‣ Usual wisdom about web sites
                 applies — make pages
                 keyboard accessible,     etc.
             ‣ Can’t be detected in
                 CSS(yet)
             ‣ JavaScript touch detection
                 is an option   —   Modernizr,
                 jQuery




Monday, 5 November 12
supporting older
               browsers


Monday, 5 November 12
old ie versions

         ‣ Lack support for media
             queries
         ‣ Although we don’t get old IE
             on         small   screen   devices
         ‣ But mobile first is a
             problem




Monday, 5 November 12
solutions

         ‣ Provide fallbacks such as
             simpler         layouts   or pixels
             instead         of % or   rems
         ‣ Use a media query polyfill
             such       as   respond.js




Monday, 5 November 12
modernizr

             <html lang="en-US" class="no-js">
             <head>
                   <script src="modernizr.js"></script>
             </head>




Monday, 5 November 12
modernizr

             <html class=" js flexbox canvas canvastext
             webgl no-touch geolocation postmessage no-
             websqldatabase indexeddb hashchange
             history draganddrop websockets rgba hsla
             multiplebgs backgroundsize borderimage
             borderradius boxshadow textshadow opacity
             cssanimations csscolumns cssgradients no-
             cssreflections csstransforms no-
             csstransforms3d csstransitions fontface
             generatedcontent video audio ... ">


Monday, 5 November 12
modernizr css

         #wrapper:hover, #wrapper:focus {
           transform: rotateX(180deg);
         }




Monday, 5 November 12
modernizr css

         .no-csstransforms3d #wrapper #front {
           transition: 0.8s all ease-in;
         }

         .no-csstransforms3d #wrapper:hover #front,
         .no-csstransforms3d #wrapper:focus #front {
           transform: rotate(-30deg)
                      translate(-50%,-100%);
         }




Monday, 5 November 12
modernizr JS

         function rotateForm() {
           if(Modernizr.cssanimations &&
              Modernizr.csstransforms3d) {
             form.setAttribute("class","form-
         rotate");
             form.style.left = "0rem";
           } else {
             back.style.zIndex = "5";
           }
         }


Monday, 5 November 12
@supports
         @supports (display:flex) {
           section { display: flex }
           ...
         }




Monday, 5 November 12
other responsive
         css3 modules




Monday, 5 November 12
other responsive
         css3 modules




Monday, 5 November 12
worthy of note

         ‣ CSS device adaptation
         ‣ Flexbox
         ‣ Multi-col
         ‣ (Regions, Grids, etc.)




Monday, 5 November 12
CSS device
                          adaptation
         ‣ Because viewport is really
             more        of   a CSS type thing
             than        an   HTML type thing
         ‣ This spec provides a
             @viewport at-rule to            contain
             viewport equivalents
         ‣ Currently supported in Opera
             and        IE10,   with   prefixes
         ‣ dev.opera.com/articles/view/
             an-introduction-to-meta-
             viewport-and-viewport


Monday, 5 November 12
CSS device
                        adaptation
         <meta name="viewport"
           content="width=550,
           maximum-scale=1.0,
           target-densitydpi=device-dpi">

         @viewport {
           width: 550px;
           max-zoom: 1;
           resolution: device;
         }

Monday, 5 November 12
Flex box

         ‣ A spec for easier UI
             layout
         ‣ Makes certain layout tasks
             much       easier
         ‣ New syntax support
             currently       very   limited
         ‣ Old syntax supported
             in most modern
             browsers




Monday, 5 November 12
Flex box

         <section>
           <article id="first"></article>
           <article id="second"></article>
           <article id="third"></article>
         </section>




Monday, 5 November 12
Monday, 5 November 12
Flex box

         section {
           display: flex;
           flex-flow: row;
         }

         section {
           display: flex;
           flex-flow: column;
         }


Monday, 5 November 12
Monday, 5 November 12
Flex box

         section {
           display: flex;
           flex-flow: row;
           align-items: center;
         }




Monday, 5 November 12
Monday, 5 November 12
Flex box

         #first, #third {
           order: 2;
         }

         #second {
           order: 1;
         }




Monday, 5 November 12
Monday, 5 November 12
Flex box

         #first {
           flex: 1;
         }

         #second {
           flex: 1;
         }

         #third {
           flex: 1;
         }
Monday, 5 November 12
Monday, 5 November 12
Flex box

         #first {
           flex: 1;
         }

         #second {
           flex: 1;
         }

         #third {
           flex: 2;
         }
Monday, 5 November 12
Monday, 5 November 12
multi col

          ‣ A spec for breaking content
              into      multiple   columns.
          ‣ Column widths/numbers,
              column rules, column
              spacing, column gaps,        column
              breaks.
          ‣ Supported across all major
              browsers,      mostly.




Monday, 5 November 12
Multi col

         article {
           column-width: 20em;
           column-gap: 2em;
         }




Monday, 5 November 12
Monday, 5 November 12
other future
                   developments


Monday, 5 November 12
matchmedia

         if (window.matchMedia("(min-width:
         400px)").matches) {
           /* Do stuff for wider screens */
         } else {
           /* Do stuff for narrow screens */
         }

         For IE9 and Opera, polyfill
         github.com/paulirish/matchMedia.js/




Monday, 5 November 12
script MQ

         @media screen and (script) {...}
         @media screen and not (script) {...}




Monday, 5 November 12
hover MQ

         The ‘hover’ media feature is
         used to query whether the
         primary pointing system used
         on the output device can
         hover or not.

         @media screen and (hover) {...}




Monday, 5 November 12
pointer MQ

         @media screen and (pointer: coarse) {...}

         ‣ none: The input mechanism of
           the device does not include a
           pointing device.
         ‣ coarse: The input mechanism of
           the device includes a pointing
           device of limited accuracy.
         ‣ fine: The input mechanism of
           the device includes an
           accurate pointing device.



Monday, 5 November 12
luminosity MQ

         @media screen and (luminosity: dim) {...}

         ‣ dim: The device is being used
           in a dim environment, such as
           nighttime.
         ‣ normal: The device is being
           used in average lighting
           conditions, which don’t
           require significant
           adjustment.
         ‣ washed: The device is being
           used in washed out
           conditions, e.g. in bright
           sunlight.
Monday, 5 November 12
other future MQs

         @media (paged) and (interactive:0) {
           // I am like a printer
         }
         @media (paged) and (interactive) {
           // I'm a projector, or like a Kindle
         }
         @media (paged) and (interactive) and (touch)
         {
           // I'm like a touch-screen Kindle
         }

Monday, 5 November 12
other future MQs

         @media (touch) and (max-width: 480) {
           // looks like an smart phone
         }
         @media (touch) and (keyboard) and
         (min-width:600) {
           // looks like a touch-screen laptop
         }




Monday, 5 November 12
other future MQs

         @media (remote) {
           // TV or set-top box?
         }
         @media (remote) and (hover) {
           // Wii?
         }




Monday, 5 November 12
other future MQs

         @media (network: v-slow) {...}

         “It has been proposed. Most
         people agree that it would be
         cool, nobody has a clue about
         how to spec it ... submit
         proposals to me or to www-
         style@w3.org. Use [css4-
         mediaqueries] in the subject
         line, and read lists.w3.org/
         Archives/Public/wwwstyle/
         2012Mar/0691.html first.”

                               -- Florian Rivoal

Monday, 5 November 12
“Subtle”
     advertisement
   Buy my book
Monday, 5 November 12
game over




                                1up   0000000
Monday, 5 November 12
game over
                01.     dev.opera.com

                02.     slideshare.net/chrisdavidmills

                03.     cmills@opera.com

                04.     @chrisdavidmills

                05. Practical     CSS3:   Develop   &
                Design

                06. www.w3.org/Style/CSS/current-
                work.en.html

                07. http://dev.w3.org/csswg/
                mediaqueries4/

                08.     CDM

                09.     WOW


                                              1up       0000000
Monday, 5 November 12

Contenu connexe

Similaire à Adapt and respond: keeping responsive into the future

Keeping responsive into the future by Chris mills
Keeping responsive into the future by Chris millsKeeping responsive into the future by Chris mills
Keeping responsive into the future by Chris millsCodemotion
 
Performance & Responsive Web Design
Performance & Responsive Web DesignPerformance & Responsive Web Design
Performance & Responsive Web DesignZach Leatherman
 
Responsive Web Design &amp; Workflow
Responsive Web Design &amp; WorkflowResponsive Web Design &amp; Workflow
Responsive Web Design &amp; Workflowhouhr
 
Maximiliano Firtman
Maximiliano FirtmanMaximiliano Firtman
Maximiliano FirtmanColombia3.0
 
Optimizing WordPress Performance on Shared Web Hosting
Optimizing WordPress Performance on Shared Web HostingOptimizing WordPress Performance on Shared Web Hosting
Optimizing WordPress Performance on Shared Web HostingJon Brown
 
Responsive web design standards?
Responsive web design standards?Responsive web design standards?
Responsive web design standards?Chris Mills
 
Modern HTML & CSS Coding: Speed, Semantics & Structure
Modern HTML & CSS Coding: Speed, Semantics & StructureModern HTML & CSS Coding: Speed, Semantics & Structure
Modern HTML & CSS Coding: Speed, Semantics & StructureRaven Tools
 
Adaptive Experiences
Adaptive ExperiencesAdaptive Experiences
Adaptive ExperiencesWINTR
 
Cloud Messaging With Cloud Foundry
Cloud Messaging With Cloud FoundryCloud Messaging With Cloud Foundry
Cloud Messaging With Cloud FoundryAlvaro Videla
 
Web Performance & You
Web Performance & YouWeb Performance & You
Web Performance & YouDave Olsen
 
[convergefl] Adaptive Images in Responsive Web Design
[convergefl] Adaptive Images in Responsive Web Design[convergefl] Adaptive Images in Responsive Web Design
[convergefl] Adaptive Images in Responsive Web DesignChristopher Schmitt
 
iFixit @ Monterey Bay Aquarium
iFixit @ Monterey Bay AquariumiFixit @ Monterey Bay Aquarium
iFixit @ Monterey Bay AquariumKyle Wiens
 
Ga london-html5&mobile advertising-tomlimongello
Ga london-html5&mobile advertising-tomlimongelloGa london-html5&mobile advertising-tomlimongello
Ga london-html5&mobile advertising-tomlimongelloTom Limongello
 
JS-Everywhere - LocalStorage Hands-on
JS-Everywhere - LocalStorage Hands-onJS-Everywhere - LocalStorage Hands-on
JS-Everywhere - LocalStorage Hands-onBrice Argenson
 
Measuring Web Performance (HighEdWeb FL Edition)
Measuring Web Performance (HighEdWeb FL Edition)Measuring Web Performance (HighEdWeb FL Edition)
Measuring Web Performance (HighEdWeb FL Edition)Dave Olsen
 
Hyves: Mobile app development with HTML5 and Javascript
Hyves: Mobile app development with HTML5 and JavascriptHyves: Mobile app development with HTML5 and Javascript
Hyves: Mobile app development with HTML5 and Javascriptnlwebperf
 

Similaire à Adapt and respond: keeping responsive into the future (20)

Keeping responsive into the future by Chris mills
Keeping responsive into the future by Chris millsKeeping responsive into the future by Chris mills
Keeping responsive into the future by Chris mills
 
Performance & Responsive Web Design
Performance & Responsive Web DesignPerformance & Responsive Web Design
Performance & Responsive Web Design
 
Responsive Web Design &amp; Workflow
Responsive Web Design &amp; WorkflowResponsive Web Design &amp; Workflow
Responsive Web Design &amp; Workflow
 
NATO IST Symposium 2013
NATO IST Symposium 2013NATO IST Symposium 2013
NATO IST Symposium 2013
 
Maximiliano Firtman
Maximiliano FirtmanMaximiliano Firtman
Maximiliano Firtman
 
Optimizing WordPress Performance on Shared Web Hosting
Optimizing WordPress Performance on Shared Web HostingOptimizing WordPress Performance on Shared Web Hosting
Optimizing WordPress Performance on Shared Web Hosting
 
Responsive web design standards?
Responsive web design standards?Responsive web design standards?
Responsive web design standards?
 
Modern HTML & CSS Coding: Speed, Semantics & Structure
Modern HTML & CSS Coding: Speed, Semantics & StructureModern HTML & CSS Coding: Speed, Semantics & Structure
Modern HTML & CSS Coding: Speed, Semantics & Structure
 
Adaptive Experiences
Adaptive ExperiencesAdaptive Experiences
Adaptive Experiences
 
[Phind] Miracle
[Phind] Miracle[Phind] Miracle
[Phind] Miracle
 
Mobileweb
MobilewebMobileweb
Mobileweb
 
Cloud Messaging With Cloud Foundry
Cloud Messaging With Cloud FoundryCloud Messaging With Cloud Foundry
Cloud Messaging With Cloud Foundry
 
Web Performance & You
Web Performance & YouWeb Performance & You
Web Performance & You
 
[convergefl] Adaptive Images in Responsive Web Design
[convergefl] Adaptive Images in Responsive Web Design[convergefl] Adaptive Images in Responsive Web Design
[convergefl] Adaptive Images in Responsive Web Design
 
iFixit @ Monterey Bay Aquarium
iFixit @ Monterey Bay AquariumiFixit @ Monterey Bay Aquarium
iFixit @ Monterey Bay Aquarium
 
05 Mobile CSS
05 Mobile CSS05 Mobile CSS
05 Mobile CSS
 
Ga london-html5&mobile advertising-tomlimongello
Ga london-html5&mobile advertising-tomlimongelloGa london-html5&mobile advertising-tomlimongello
Ga london-html5&mobile advertising-tomlimongello
 
JS-Everywhere - LocalStorage Hands-on
JS-Everywhere - LocalStorage Hands-onJS-Everywhere - LocalStorage Hands-on
JS-Everywhere - LocalStorage Hands-on
 
Measuring Web Performance (HighEdWeb FL Edition)
Measuring Web Performance (HighEdWeb FL Edition)Measuring Web Performance (HighEdWeb FL Edition)
Measuring Web Performance (HighEdWeb FL Edition)
 
Hyves: Mobile app development with HTML5 and Javascript
Hyves: Mobile app development with HTML5 and JavascriptHyves: Mobile app development with HTML5 and Javascript
Hyves: Mobile app development with HTML5 and Javascript
 

Plus de Chris Mills

More efficient, usable web
More efficient, usable webMore efficient, usable web
More efficient, usable webChris Mills
 
Feedback handling, community wrangling, panhandlin’
Feedback handling, community wrangling, panhandlin’Feedback handling, community wrangling, panhandlin’
Feedback handling, community wrangling, panhandlin’Chris Mills
 
APIs for modern web apps
APIs for modern web appsAPIs for modern web apps
APIs for modern web appsChris Mills
 
APIs, now and in the future
APIs, now and in the futureAPIs, now and in the future
APIs, now and in the futureChris Mills
 
Guerrilla education
Guerrilla educationGuerrilla education
Guerrilla educationChris Mills
 
Web versus Native: round 1!
Web versus Native: round 1!Web versus Native: round 1!
Web versus Native: round 1!Chris Mills
 
Empowering the "mobile web"
Empowering the "mobile web"Empowering the "mobile web"
Empowering the "mobile web"Chris Mills
 
Documentation and publishing
Documentation and publishingDocumentation and publishing
Documentation and publishingChris Mills
 
Getting rid of images with CSS
Getting rid of images with CSSGetting rid of images with CSS
Getting rid of images with CSSChris Mills
 
Laying out the future
Laying out the futureLaying out the future
Laying out the futureChris Mills
 
Adapt! Media queries and viewport
Adapt! Media queries and viewportAdapt! Media queries and viewport
Adapt! Media queries and viewportChris Mills
 
Angels versus demons: balancing shiny and inclusive
Angels versus demons: balancing shiny and inclusiveAngels versus demons: balancing shiny and inclusive
Angels versus demons: balancing shiny and inclusiveChris Mills
 
HTML5 and CSS3: does now really mean now?
HTML5 and CSS3: does now really mean now?HTML5 and CSS3: does now really mean now?
HTML5 and CSS3: does now really mean now?Chris Mills
 
The W3C and the web design ecosystem
The W3C and the web design ecosystemThe W3C and the web design ecosystem
The W3C and the web design ecosystemChris Mills
 
HTML5 Pearson preso
HTML5 Pearson presoHTML5 Pearson preso
HTML5 Pearson presoChris Mills
 
Brave new world of HTML5
Brave new world of HTML5Brave new world of HTML5
Brave new world of HTML5Chris Mills
 
Inclusive design: real accessibility for everyone
Inclusive design: real accessibility for everyoneInclusive design: real accessibility for everyone
Inclusive design: real accessibility for everyoneChris Mills
 

Plus de Chris Mills (20)

More efficient, usable web
More efficient, usable webMore efficient, usable web
More efficient, usable web
 
Feedback handling, community wrangling, panhandlin’
Feedback handling, community wrangling, panhandlin’Feedback handling, community wrangling, panhandlin’
Feedback handling, community wrangling, panhandlin’
 
APIs for modern web apps
APIs for modern web appsAPIs for modern web apps
APIs for modern web apps
 
APIs, now and in the future
APIs, now and in the futureAPIs, now and in the future
APIs, now and in the future
 
Guerrilla education
Guerrilla educationGuerrilla education
Guerrilla education
 
Web versus Native: round 1!
Web versus Native: round 1!Web versus Native: round 1!
Web versus Native: round 1!
 
BrazilJS MDN
BrazilJS MDNBrazilJS MDN
BrazilJS MDN
 
Empowering the "mobile web"
Empowering the "mobile web"Empowering the "mobile web"
Empowering the "mobile web"
 
Documentation and publishing
Documentation and publishingDocumentation and publishing
Documentation and publishing
 
MDN is easy!
MDN is easy!MDN is easy!
MDN is easy!
 
Getting rid of images with CSS
Getting rid of images with CSSGetting rid of images with CSS
Getting rid of images with CSS
 
Future layouts
Future layoutsFuture layouts
Future layouts
 
Laying out the future
Laying out the futureLaying out the future
Laying out the future
 
Adapt! Media queries and viewport
Adapt! Media queries and viewportAdapt! Media queries and viewport
Adapt! Media queries and viewport
 
Angels versus demons: balancing shiny and inclusive
Angels versus demons: balancing shiny and inclusiveAngels versus demons: balancing shiny and inclusive
Angels versus demons: balancing shiny and inclusive
 
HTML5 and CSS3: does now really mean now?
HTML5 and CSS3: does now really mean now?HTML5 and CSS3: does now really mean now?
HTML5 and CSS3: does now really mean now?
 
The W3C and the web design ecosystem
The W3C and the web design ecosystemThe W3C and the web design ecosystem
The W3C and the web design ecosystem
 
HTML5 Pearson preso
HTML5 Pearson presoHTML5 Pearson preso
HTML5 Pearson preso
 
Brave new world of HTML5
Brave new world of HTML5Brave new world of HTML5
Brave new world of HTML5
 
Inclusive design: real accessibility for everyone
Inclusive design: real accessibility for everyoneInclusive design: real accessibility for everyone
Inclusive design: real accessibility for everyone
 

Dernier

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 

Dernier (20)

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 

Adapt and respond: keeping responsive into the future

  • 2. Hi.I am chris mills. ‣ Open standards advocate and Education agitator ‣ dev.opera.com editor ‣ W3C fellow, working on webplatform.org ‣ Accessibility whiner ‣ HTML5/CSS3 wrangler ‣ Heavy metal drummer and proud dad Monday, 5 November 12
  • 4. useful stuff ‣ dev.opera.com ‣ webplatform.org ‣ slideshare.net/ chrisdavidmills ‣ cmills@opera.com ‣ @chrisdavidmills Monday, 5 November 12
  • 5. in this talk... ‣ MQ: Beyond width and height ‣ Other “responsive modules” ‣ Legacy support ‣ RWD for the future Monday, 5 November 12
  • 8. In the beginning... ‣ There wasn’t much RWD ‣ We only really looked at the Web on desktops/laptops Monday, 5 November 12
  • 9. Ok. We had wap Monday, 5 November 12
  • 12. Then the mobile web arrived Monday, 5 November 12
  • 13. Then the mobile web arrived Monday, 5 November 12
  • 14. Then the mobile web arrived Monday, 5 November 12
  • 15. Then the mobile web arrived Monday, 5 November 12
  • 16. media types media="screen" media="print" Monday, 5 November 12
  • 17. media types media="handheld" media="tv" Monday, 5 November 12
  • 18. small tv rant “Searching, browsing, updating and buffering are not TV-like. In fact an enormous number of people found that the technology they had purchased wasn't what they expected at all, that they were bringing the worst parts of using a computer into the television environment.” -- www.insideci.co.uk/news/rovi-research- reveals-changing-consumer-habits.aspx Monday, 5 November 12
  • 19. small tv rant “Searching, browsing, updating and buffering are not TV-like. In fact an enormous number of people found that the technology they had purchased wasn't what they expected at all, that they were bringing the worst parts of using a computer into the television environment.” -- www.insideci.co.uk/news/rovi-research- reveals-changing-consumer-habits.aspx Monday, 5 November 12
  • 21. Back to the modern world Monday, 5 November 12
  • 22. media queries media="screen and (max-width: 481px)" @media screen and (max-width: 481px) { /* do amazing stuff for narrow screens */ } Monday, 5 November 12
  • 23. media queries Monday, 5 November 12
  • 24. the mobile problem Monday, 5 November 12
  • 25. viewport <meta name="viewport" content="width=device-width"> Monday, 5 November 12
  • 26. other rwd issues Monday, 5 November 12
  • 27. other rwd issues Monday, 5 November 12
  • 28. Other considerations ‣ Making replaced elements responsive ‣ Bandwidth/loading of resources ‣ Resolution ‣ Processing power ‣ Control mechanisms Monday, 5 November 12
  • 30. replaced elements #related img { display: block; margin: 0 auto; max-width: 100%; } Monday, 5 November 12
  • 31. be warned ‣ Old IE versions don’t support max-width, so you’ll have to fallback to width: 100% instead. Monday, 5 November 12
  • 32. file size also important ‣ Users on slow connections won’t want to download huge media files. ‣ We need to try to serve them smaller files/alternatives. ‣ Assumptions: e.g. narrow equals mobile equals slow connection Monday, 5 November 12
  • 33. css resources easy to deal with ‣ Use “mobile first” ‣ Load smaller resources by default, and larger ones inside MQs ‣ And in the future we’ve got things like image-set coming up (possibly...) Monday, 5 November 12
  • 34. Mobile first example header { background: url(small- image.png); } @media screen and (min-width: 480px) { header { background: url(large- image.png); } } Monday, 5 November 12
  • 35. html5 video also well served <source src="crystal320.webm" type="video/webm" media="all and (max- width: 480px)"> <source src="crystal720.webm" type="video/webm" media="all and (min- width: 481px)"> Monday, 5 November 12
  • 36. But html images are not so lucky <img src="thats-all-folks.png"> ? Monday, 5 November 12
  • 37. Various solutions ‣ http://dev.opera.com/ articles/view/responsive- images-problem/ ‣ None work perfectly ‣ Pre-fetch is a bitch Monday, 5 November 12
  • 38. adaptive-images ‣ adaptive-images.com ‣ Add .htaccess and adaptive- images.php to your document root folder. ‣ Add one line of JavaScript into the <head> of your site. ‣ Add your CSS Media Query values into $resolutions in the PHP file. Monday, 5 November 12
  • 39. the picture element <picture alt="a picture of something"> <source src="mobile.jpg"> <source src="medium.jpg" media="min width: 600px"> <source src="fullsize.jpg" media="min width: 900px"> <img src="mobile.jpg"> <!-- fallback for non-supporting browsers --> </picture> Monday, 5 November 12
  • 40. suggested solutions ‣ Srcset ‣ New image formats? ‣ Defined the media tests in meta tags? ‣ New headers and protocols? Monday, 5 November 12
  • 41. processing power ‣ You might want to turn off effects like shadows, gradients and animations for small screen devices. ‣ CSS effects are arguably less power draining than JS or Flash, but even so. ‣ They can cause the display to look cluttered too. Monday, 5 November 12
  • 45. resolution 64px Monday, 5 November 12
  • 46. resolution 64px 48px Monday, 5 November 12
  • 47. now we have hi fidelity devices ‣ e.g. iPhone 4s is 960 x 640 pixels at 326ppi ‣ These devices lie twice ‣ One CSS pixel = multiple device pixels ‣ Images can start to look pixellated Monday, 5 November 12
  • 48. SOLUTIONS <img src="500px_image.jpg" width="250"> Monday, 5 November 12
  • 49. SOLUTIONS @media screen and (-o-min-device-pixel- ratio: 3/2) { body { background-size: 250px; } } @media screen and (-webkit-min-device- pixel-ratio: 1.5) { body { background-size: 250px; } } Monday, 5 November 12
  • 51. soon to be replaced by @media screen and (resolution: 1.5dppx) { body { background-size: 250px; } } Monday, 5 November 12
  • 52. tell the truth with viewport <meta name="viewport" content="width=device-width, target-densitydpi=device-dpi"> Monday, 5 November 12
  • 53. All good but... ‣ Images may now start to look a little small ‣ You could serve larger images for devices with higher resolutions Monday, 5 November 12
  • 54. control mechanisms ‣ Currently tricky ‣ Usual wisdom about web sites applies — make pages keyboard accessible, etc. ‣ Can’t be detected in CSS(yet) ‣ JavaScript touch detection is an option — Modernizr, jQuery Monday, 5 November 12
  • 55. supporting older browsers Monday, 5 November 12
  • 56. old ie versions ‣ Lack support for media queries ‣ Although we don’t get old IE on small screen devices ‣ But mobile first is a problem Monday, 5 November 12
  • 57. solutions ‣ Provide fallbacks such as simpler layouts or pixels instead of % or rems ‣ Use a media query polyfill such as respond.js Monday, 5 November 12
  • 58. modernizr <html lang="en-US" class="no-js"> <head> <script src="modernizr.js"></script> </head> Monday, 5 November 12
  • 59. modernizr <html class=" js flexbox canvas canvastext webgl no-touch geolocation postmessage no- websqldatabase indexeddb hashchange history draganddrop websockets rgba hsla multiplebgs backgroundsize borderimage borderradius boxshadow textshadow opacity cssanimations csscolumns cssgradients no- cssreflections csstransforms no- csstransforms3d csstransitions fontface generatedcontent video audio ... "> Monday, 5 November 12
  • 60. modernizr css #wrapper:hover, #wrapper:focus { transform: rotateX(180deg); } Monday, 5 November 12
  • 61. modernizr css .no-csstransforms3d #wrapper #front { transition: 0.8s all ease-in; } .no-csstransforms3d #wrapper:hover #front, .no-csstransforms3d #wrapper:focus #front { transform: rotate(-30deg) translate(-50%,-100%); } Monday, 5 November 12
  • 62. modernizr JS function rotateForm() { if(Modernizr.cssanimations && Modernizr.csstransforms3d) { form.setAttribute("class","form- rotate"); form.style.left = "0rem"; } else { back.style.zIndex = "5"; } } Monday, 5 November 12
  • 63. @supports @supports (display:flex) { section { display: flex } ... } Monday, 5 November 12
  • 64. other responsive css3 modules Monday, 5 November 12
  • 65. other responsive css3 modules Monday, 5 November 12
  • 66. worthy of note ‣ CSS device adaptation ‣ Flexbox ‣ Multi-col ‣ (Regions, Grids, etc.) Monday, 5 November 12
  • 67. CSS device adaptation ‣ Because viewport is really more of a CSS type thing than an HTML type thing ‣ This spec provides a @viewport at-rule to contain viewport equivalents ‣ Currently supported in Opera and IE10, with prefixes ‣ dev.opera.com/articles/view/ an-introduction-to-meta- viewport-and-viewport Monday, 5 November 12
  • 68. CSS device adaptation <meta name="viewport" content="width=550, maximum-scale=1.0, target-densitydpi=device-dpi"> @viewport { width: 550px; max-zoom: 1; resolution: device; } Monday, 5 November 12
  • 69. Flex box ‣ A spec for easier UI layout ‣ Makes certain layout tasks much easier ‣ New syntax support currently very limited ‣ Old syntax supported in most modern browsers Monday, 5 November 12
  • 70. Flex box <section> <article id="first"></article> <article id="second"></article> <article id="third"></article> </section> Monday, 5 November 12
  • 72. Flex box section { display: flex; flex-flow: row; } section { display: flex; flex-flow: column; } Monday, 5 November 12
  • 74. Flex box section { display: flex; flex-flow: row; align-items: center; } Monday, 5 November 12
  • 76. Flex box #first, #third { order: 2; } #second { order: 1; } Monday, 5 November 12
  • 78. Flex box #first { flex: 1; } #second { flex: 1; } #third { flex: 1; } Monday, 5 November 12
  • 80. Flex box #first { flex: 1; } #second { flex: 1; } #third { flex: 2; } Monday, 5 November 12
  • 82. multi col ‣ A spec for breaking content into multiple columns. ‣ Column widths/numbers, column rules, column spacing, column gaps, column breaks. ‣ Supported across all major browsers, mostly. Monday, 5 November 12
  • 83. Multi col article { column-width: 20em; column-gap: 2em; } Monday, 5 November 12
  • 85. other future developments Monday, 5 November 12
  • 86. matchmedia if (window.matchMedia("(min-width: 400px)").matches) { /* Do stuff for wider screens */ } else { /* Do stuff for narrow screens */ } For IE9 and Opera, polyfill github.com/paulirish/matchMedia.js/ Monday, 5 November 12
  • 87. script MQ @media screen and (script) {...} @media screen and not (script) {...} Monday, 5 November 12
  • 88. hover MQ The ‘hover’ media feature is used to query whether the primary pointing system used on the output device can hover or not. @media screen and (hover) {...} Monday, 5 November 12
  • 89. pointer MQ @media screen and (pointer: coarse) {...} ‣ none: The input mechanism of the device does not include a pointing device. ‣ coarse: The input mechanism of the device includes a pointing device of limited accuracy. ‣ fine: The input mechanism of the device includes an accurate pointing device. Monday, 5 November 12
  • 90. luminosity MQ @media screen and (luminosity: dim) {...} ‣ dim: The device is being used in a dim environment, such as nighttime. ‣ normal: The device is being used in average lighting conditions, which don’t require significant adjustment. ‣ washed: The device is being used in washed out conditions, e.g. in bright sunlight. Monday, 5 November 12
  • 91. other future MQs @media (paged) and (interactive:0) { // I am like a printer } @media (paged) and (interactive) { // I'm a projector, or like a Kindle } @media (paged) and (interactive) and (touch) { // I'm like a touch-screen Kindle } Monday, 5 November 12
  • 92. other future MQs @media (touch) and (max-width: 480) { // looks like an smart phone } @media (touch) and (keyboard) and (min-width:600) { // looks like a touch-screen laptop } Monday, 5 November 12
  • 93. other future MQs @media (remote) { // TV or set-top box? } @media (remote) and (hover) { // Wii? } Monday, 5 November 12
  • 94. other future MQs @media (network: v-slow) {...} “It has been proposed. Most people agree that it would be cool, nobody has a clue about how to spec it ... submit proposals to me or to www- style@w3.org. Use [css4- mediaqueries] in the subject line, and read lists.w3.org/ Archives/Public/wwwstyle/ 2012Mar/0691.html first.” -- Florian Rivoal Monday, 5 November 12
  • 95. “Subtle” advertisement Buy my book Monday, 5 November 12
  • 96. game over 1up 0000000 Monday, 5 November 12
  • 97. game over 01. dev.opera.com 02. slideshare.net/chrisdavidmills 03. cmills@opera.com 04. @chrisdavidmills 05. Practical CSS3: Develop & Design 06. www.w3.org/Style/CSS/current- work.en.html 07. http://dev.w3.org/csswg/ mediaqueries4/ 08. CDM 09. WOW 1up 0000000 Monday, 5 November 12

Notes de l'éditeur

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n
  65. \n
  66. \n
  67. \n
  68. \n
  69. \n
  70. \n
  71. \n
  72. \n
  73. \n
  74. \n
  75. \n
  76. \n
  77. \n
  78. \n
  79. \n
  80. \n
  81. \n
  82. \n
  83. \n
  84. \n
  85. \n
  86. \n
  87. \n
  88. \n
  89. \n