SlideShare une entreprise Scribd logo
1  sur  63
Télécharger pour lire hors ligne
&
CSS3, Media Queries,
  Responsive Design

May 23, 2012
STC Summit
Zoe Mickley Gillenwater | @zomigi
What I do
      Books                         Web
      Stunning CSS3:                Accessibility
      A Project-based Guide to      specialist at AT&T
      the Latest in CSS
                                    Visual designer
      www.stunningcss3.com
                                    CSS developer
                                    and consultant
      Flexible Web Design:
      Creating Liquid and Elastic
      Layouts with CSS
      www.flexiblewebbook.com

                                                         2
1
   3
My home's web-enabled devices


         2



    2
                                3
& devices
   more mobile devices

more diversity within
   EVERY DAY

                         4
&
                              every day
  1.45 MILLION DEVICES

              317,124 BABIES
                        enter the world

Source: http://www.lukew.com/ff/entry.asp?1506   5
Growing screen resolution
   diversity on desktop
       May 2009 widths                      May 2012 widths

                                                              1366
                                    1024                      1024
                                    1280                      1280
                                    1440                      1440
                                    1680                      1920
                                    800                       1600
                                    1152                      1680
                                    other                     1360
                                                              other



Source: http://gs.statcounter.com                                     6
25%
          of U.S. smartphone users do
                 MOST OR ALL
     of their web browsing on mobile


Source: http://www.lukew.com/ff/entry.asp?1405   7
?
  how can our sites
accommodate all this
 DIVERSITY


                       8
Introducing media queries
• Awesome new part of CSS3
• Simple way to feed different CSS based on
  characteristics of user's device
• Used to build responsive/adaptive designs
• Not:
  • for feeding styles based on browser
  • just for feeding styles based on viewport size



                                                     9
Media query syntax: internal
body {
    background: gray;
}
@media screen and (max-width:500px) {
    body {
        background: blue;
    }
}


English translation:
Make the background gray. But up to a maximum width of 500
pixels, make the background blue.
                                                             10
Flip flop it
body {
    background: blue;
}
@media screen and (min-width:501px) {
    body {
        background: gray;
    }
}


English translation:
Make the background blue. But at and past the minimum width
of 501 pixels, make the background gray.
                                                              11
How it looks




               12
Media query syntax: external
Extend the existing media part of the link
element or @import rule:

<link href="narrow.css" rel="stylesheet"
media="only screen and (max-width:500px)">

@import url(narrow.css) only screen and
(max-width:500px);




                                             13
Recommendation: internal
• Main advantages:
  • No extra HTTP request(s)
  • Not out of sight and forgotten
• Learn full pros/cons: www.zomigi.com/blog/
  essential-considerations-crafting-quality-
  media-queries




                                               14
!
you now know media query syntax
            YAY



                                  15
but media queries don't actually
             DO
           anything



                                   16
it's the CSS
        INSIDE
that changes the appearance



                              17
Width-dependent layout changes
• Responsive web design:
  • Media queries + fluid layouts + fluid media
  • See www.alistapart.com/articles/responsive-
    web-design/
• Adaptive layouts:
  • Media queries + fixed-width layouts
  • See www.netmagazine.com/tutorials/
    adaptive-layouts-media-queries



                                                  18
Retrofitting responsiveness
• Typical to add on media queries for both
  smaller and wider styles
• CSS before media queries is default
• Can take different approach when starting
  from scratch
  • Start with "mobile," layer on wider styles?
  • Start with "desktop," layer on narrower styles?
  • Start with something in between for majority?


                                                      19
Starting with desktop styles
Pros:                       Cons:
• No extra work to          • Mobile devices may
  make majority width         have to download
  appear correctly on         unneeded desktop
  IE 6-8                      assets
• Easiest way to retrofit   • Need separate style
  existing site               sheets or JavaScript
                              to make mobile
                              design appear in IE
                              Mobile 7 and other
                              older mobile
                              browsers
                                                     20
Starting with mobile styles
Pros:                     Cons:
• Mobile devices won't    • Desktop devices may
  download unneeded         have to download
  desktop assets            unneeded mobile
• Older, non-media-         assets
  query-supporting        • Need separate style
  mobile browsers still     sheets or JavaScript
  get the mobile styles     to make majority
  without any extra         desktop design
  work                      appear in IE 6-8

                                                   21
Our
starting
point




           22
Very wide: awkward




                     23
Very
narrow:
awkward




          24
Wide-screen media query
/*all the other styles up here*/

@media screen and (min-width: 1200px) {
    /*styles for larger screens in here*/
}




                                            25
Add third column
@media screen and (min-width: 1200px) {
    #nav-main {
        position: fixed;
        top: 136px;
        width: 13%;
        margin: 0;
    }
    #content-main {
        width: 58%;
        margin-left: 18%;
    }
    #content-secondary { width: 20%; }
}
                                          26
Style nav as vertical menu
@media screen and (min-width: 1200px) {
    ...
    #nav-main li {
        float: none;
        margin: 0;
        }
    #nav-main a {
        -moz-border-radius: 0;
        -webkit-border-radius: 0;
        border-radius: 0;
    }
}

                                          27
Wide-screen design




                     28
Small-screen media query
/*all the other styles up here*/

@media screen and (max-width: 760px) {
    /*styles for smaller screens in here*/
}




                                             29
Remove columns from text
@media screen and (max-width: 760px) {
    h1 + p {
        -moz-column-count: 1;
        -o-column-count: 1;
        -webkit-column-count: 1;
        column-count: 1;
    }
}




                                         30
Stack feature boxes
@media screen and (max-width: 760px) {
    ...
    .feature {
        float: none;
        width: auto;
        margin: 0 0 1.6em 0;
        padding: 0 0 0 140px;
        background-position: top left;
    }
}


                                         31
Narrow-
screen
design




          32
&
    pause for
   CAVEATS

CLARIFICATIONS

                 33
Some sites would be better
served with a separate site for
mobile devices instead of using
media queries.




                                  34
Even if a separate mobile site
would be best, using media
queries is a good first step if a
separate site isn't currently
feasible.




                                    35
“The choice is not between using media queries
and creating a dedicated mobile site; the choice
is between using media queries and doing
nothing at all.”

                                      ―Jeremy Keith
                             http://adactio.com/journal/1696/



                                                                36
You can add media queries to a
dedicated mobile site in order to
cater to the wide range of
mobile viewport sizes.




                                    37
If you do use media queries on
a single site, they're not the only
tool you can use—you can add
scripting as well to further
customize the content, markup,
functionality, etc.



                                      38
Media queries are only meant to
solve the problem of mobile's
small viewports, not all the other
things that can make mobile
browsing different (such as
context, bandwidth, etc.).



                                     39
“It's making sure your layout doesn't look crap
on diff. sized screens.”
                                                ―Mark Boulton
            http://twitter.com/#!/markboulton/status/50237480368214016




                                                                         40
back to
CSS


          41
Mobile media query
/*all the other styles up here*/

@media screen and (max-width: 550px) {
    /*styles for tiny screens in here*/
}




                                          42
Non-overlapping version
@media screen and (min-width: 551px) and
(max-width: 760px) {
    /*styles for small screens in here*/
}
@media screen and (max-width: 550px) {
    /*styles for tiny screens in here*/
}




                                           43
Media features for mobile
min-width
max-width
device-width
min-device-width
max-device-width
orientation
min-device-pixel-ratio
 -webkit-min-device-pixel-ratio
 min--moz-device-pixel-ratio
 -o-min-device-pixel-ratio
                                  44
Useful media features for mobile
min-width
max-width
device-width
min-device-width
max-device-width
orientation
min-device-pixel-ratio
 -webkit-min-device-pixel-ratio
 min--moz-device-pixel-ratio
 -o-min-device-pixel-ratio
                                   45
Changing to single column
@media screen and (max-width: 550px) {
    #content-main, #content-secondary,
    #about, #credits {
        float: none;
        width: 100%;
    }
}




                                         46
Changing feature images
@media screen and (max-width: 550px) {
    ...
    .feature { padding-left: 70px; }
    #feature-candy {
        background-image: url(icon_candy_64.png);
    }
    #feature-pastry {
        background-image: url(icon_pastry_64.png);
    }
    #feature-dessert {
        background-image: url(icon_dessert_64.png);
    }
}
                                                      47
Mobile
design




         48
Viewport meta tag
Forces mobile devices to scale viewport to
actual device width

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




                                             49
Zoom problem in iOS
• Remember: device-width on iOS devices
  always matches portrait width
• This means design doesn't reflow when you
  switch to landscape, but instead just zooms




                                            50
Fixing (and adding) zoom issues
• Option 1: add maximum-scale=1
 • But disables user scaling
   <meta name="viewport"
      content="width=device-width, maximum-scale=1">


• Option 2: add initial-scale=1
 • Allows user scaling
 • But triggers over-zoom/crop bug when
   changing from portrait to landscape
   <meta name="viewport"
      content="width=device-width, initial-scale=1">

                                                   51
The best way to fix zoom issues
• Option 3: add initial-scale=1 plus
  script to fix over-zoom bug
  • See http://filamentgroup.com/lab/a_fix_for_
    the_ios_orientationchange_zoom_bug/

<head>
  ...
  <meta name="viewport"
      content="width=device-width, initial-scale=1">
  <script src="ios-orientationchange-fix.js">
  ...
</head>
                                                       52
View it live
http://stunningcss3.com/code/bakery/




                                       53
More responsive examples
• Design patterns:
  • "Multi-Device Layout Patterns" by Luke
    Wroblewski: www.lukew.com/ff/entry.asp?1514
  • "Responsive Navigation Patterns" by Brad
    Frost: http://bradfrostweb.com/blog/web/
    responsive-nav-patterns/
• Inspiration:
  • Gallery: http://mediaqueri.es/
  • My own bookmarks: https://gimmebar.com/
    loves/zomigi/tag/mediaqueries

                                                  54
Dealing with IE 8 and earlier
• Conditional comments
• JavaScript




                                55
Conditional comments
• Split styles into separate sheets and feed
  applicable sheet to IE based on whether
  it's IE on desktop or mobile
• Approach varies based on which set of
  styles are your default




                                               56
Conditional comment when
desktop styles are default
Feed IE Mobile 7 media query sheet:
<link rel="stylesheet" href="global.css" media="all">

<link rel="stylesheet" href="mobile.css" media="all
and (max-width: 700px)">

<!--[if IEMobile 7]>
<link rel="stylesheet" href="mobile.css" media="all">
<![endif]-->



Source: http://blogs.msdn.com/b/iemobile/archive/2010/12/08/targeting-mobile-
optimized-css-at-windows-phone-7.aspx                                         57
Conditional comment when
mobile styles are default
Feed older IE media query sheet, hide from
IE Mobile 7:
<link rel="stylesheet" href="global.css" media="all">

<link rel="stylesheet" href="desktop.css" media="all
and (min-width: 700px)">

<!--[if (lt IE 9)&(!IEMobile 7)]>
<link rel="stylesheet" href="desktop.css" media="all">
<![endif]-->

Source: http://adactio.com/journal/4494/
                                                        58
Pre-fab JavaScript for non-
supporting browsers
• Simply add one of these scripts:
  • Respond: https://github.com/scottjehl/Respond
  • css3-mediaqueries.js:
    http://code.google.com/p/css3-mediaqueries-js/
• Avoid extra HTTP request for non-old-IE
  browsers using conditional comments:
 <!--[if (lt IE 9)&(!IEMobile 7)]>
 <script src="respond.min.js"></script>
 <![endif]-->


                                                 59
?
 WHAT ELSE
can media queries do




                       60
Swapping images on high-res
displays
@media
screen   and   (moz--min-device-pixel-ratio : 1.5),
screen   and   (-o-min-device-pixel-ratio : 3/2),
screen   and   (-webkit-min-device-pixel-ratio : 1.5),
screen   and   (min-device-pixel-ratio : 1.5) {

}




                                                         61
Swapping images on high-res
displays
@media ... screen and (min-device-pixel-ratio : 1.5) {
    .feature {
        -moz-background-size: 64px 64px;
        -webkit-background-size: 64px 64px;
        background-size: 64px 64px;
    }
    #feature-candy {
        background-image: url(icon_candy_128.png); }
    #feature-pastry {
        background-image: url(icon_pastry_128.png); }
    #feature-dessert {
        background-image: url(icon_dessert_128.png); }
}

                                                         62
Learn more
Download slides and get links at
http://zomigi.com/blog/responsive-web-
design-presentation



Zoe Mickley Gillenwater
@zomigi
design@zomigi.com
zomigi.com | stunningcss3.com | flexiblewebbook.com
                                                      63

Contenu connexe

Tendances

Tendances (20)

CSS
CSSCSS
CSS
 
HTML and CSS crash course!
HTML and CSS crash course!HTML and CSS crash course!
HTML and CSS crash course!
 
CSS for Beginners
CSS for BeginnersCSS for Beginners
CSS for Beginners
 
CSS Positioning Elements.pdf
CSS Positioning Elements.pdfCSS Positioning Elements.pdf
CSS Positioning Elements.pdf
 
Css
CssCss
Css
 
Html / CSS Presentation
Html / CSS PresentationHtml / CSS Presentation
Html / CSS Presentation
 
Flexbox
FlexboxFlexbox
Flexbox
 
Bootstrap PPT by Mukesh
Bootstrap PPT by MukeshBootstrap PPT by Mukesh
Bootstrap PPT by Mukesh
 
Cascading style sheet
Cascading style sheetCascading style sheet
Cascading style sheet
 
Css pseudo-classes
Css pseudo-classesCss pseudo-classes
Css pseudo-classes
 
CSS Day: CSS Grid Layout
CSS Day: CSS Grid Layout CSS Day: CSS Grid Layout
CSS Day: CSS Grid Layout
 
CSS Grid
CSS GridCSS Grid
CSS Grid
 
Css
CssCss
Css
 
Bootstrap 5 basic
Bootstrap 5 basicBootstrap 5 basic
Bootstrap 5 basic
 
Css Ppt
Css PptCss Ppt
Css Ppt
 
Web 2 | CSS - Cascading Style Sheets
Web 2 | CSS - Cascading Style SheetsWeb 2 | CSS - Cascading Style Sheets
Web 2 | CSS - Cascading Style Sheets
 
Introduction to BOOTSTRAP
Introduction to BOOTSTRAPIntroduction to BOOTSTRAP
Introduction to BOOTSTRAP
 
Css floats
Css floatsCss floats
Css floats
 
CSS Basics
CSS BasicsCSS Basics
CSS Basics
 
Css3
Css3Css3
Css3
 

En vedette

CSS3 Media Queries & Kick Start for Mobile
CSS3 Media Queries & Kick Start for MobileCSS3 Media Queries & Kick Start for Mobile
CSS3 Media Queries & Kick Start for Mobile
ambientphoto
 
Responsive Web Design
Responsive Web DesignResponsive Web Design
Responsive Web Design
Justin Avery
 
HTML5 for PHP Developers - IPC
HTML5 for PHP Developers - IPCHTML5 for PHP Developers - IPC
HTML5 for PHP Developers - IPC
Mayflower GmbH
 

En vedette (20)

CSS3 Media Queries And Creating Adaptive Layouts
CSS3 Media Queries And Creating Adaptive LayoutsCSS3 Media Queries And Creating Adaptive Layouts
CSS3 Media Queries And Creating Adaptive Layouts
 
Introdução à media queries
Introdução à media queriesIntrodução à media queries
Introdução à media queries
 
CSS Fundamentals: selectors and Properties
CSS Fundamentals: selectors and PropertiesCSS Fundamentals: selectors and Properties
CSS Fundamentals: selectors and Properties
 
Jquery Ajax
Jquery AjaxJquery Ajax
Jquery Ajax
 
jQuery Ajax
jQuery AjaxjQuery Ajax
jQuery Ajax
 
CSS3 Media Queries & Kick Start for Mobile
CSS3 Media Queries & Kick Start for MobileCSS3 Media Queries & Kick Start for Mobile
CSS3 Media Queries & Kick Start for Mobile
 
Practical CSS3 Animations
Practical CSS3 AnimationsPractical CSS3 Animations
Practical CSS3 Animations
 
JavaScript JQUERY AJAX
JavaScript JQUERY AJAXJavaScript JQUERY AJAX
JavaScript JQUERY AJAX
 
Ajax and Jquery
Ajax and JqueryAjax and Jquery
Ajax and Jquery
 
Building the Media Block in ReactJS
Building the Media Block in ReactJS Building the Media Block in ReactJS
Building the Media Block in ReactJS
 
Responsive UI using CSS Media Query
Responsive UI using CSS Media QueryResponsive UI using CSS Media Query
Responsive UI using CSS Media Query
 
CSS3 Media Queries: Mobile Elixir or CSS Snake Oil
CSS3 Media Queries: Mobile Elixir or CSS Snake OilCSS3 Media Queries: Mobile Elixir or CSS Snake Oil
CSS3 Media Queries: Mobile Elixir or CSS Snake Oil
 
Responsive Web Design
Responsive Web DesignResponsive Web Design
Responsive Web Design
 
4 peraturan reklamasi dan pascatambang bimtek redtop [compatibility mode]
4 peraturan reklamasi dan pascatambang bimtek redtop [compatibility mode]4 peraturan reklamasi dan pascatambang bimtek redtop [compatibility mode]
4 peraturan reklamasi dan pascatambang bimtek redtop [compatibility mode]
 
Web design responsivo e adaptativo - HTML5/CSS3
Web design responsivo e adaptativo - HTML5/CSS3Web design responsivo e adaptativo - HTML5/CSS3
Web design responsivo e adaptativo - HTML5/CSS3
 
As Media Queries são só um detalhe!
As Media Queries são só um detalhe!As Media Queries são só um detalhe!
As Media Queries são só um detalhe!
 
Penyusunan Rencana Pastambang
Penyusunan Rencana PastambangPenyusunan Rencana Pastambang
Penyusunan Rencana Pastambang
 
Peraturan Menteri tentang Pelaksanaan Reklamasi dan Pascatambang pada Kegiata...
Peraturan Menteri tentang Pelaksanaan Reklamasi dan Pascatambang pada Kegiata...Peraturan Menteri tentang Pelaksanaan Reklamasi dan Pascatambang pada Kegiata...
Peraturan Menteri tentang Pelaksanaan Reklamasi dan Pascatambang pada Kegiata...
 
Tata cara perhitungan jaminan reklamasi (final) danang
Tata cara perhitungan jaminan reklamasi (final) danang Tata cara perhitungan jaminan reklamasi (final) danang
Tata cara perhitungan jaminan reklamasi (final) danang
 
HTML5 for PHP Developers - IPC
HTML5 for PHP Developers - IPCHTML5 for PHP Developers - IPC
HTML5 for PHP Developers - IPC
 

Similaire à CSS3, Media Queries, and Responsive Design

Responsive Web Design On Student's day
Responsive Web Design On Student's day Responsive Web Design On Student's day
Responsive Web Design On Student's day
psophy
 
FITC - 2012-04-23 - Responsive Web Design
FITC - 2012-04-23 - Responsive Web DesignFITC - 2012-04-23 - Responsive Web Design
FITC - 2012-04-23 - Responsive Web Design
Frédéric Harper
 
Effective and Efficient Design with CSS3
Effective and Efficient Design with CSS3Effective and Efficient Design with CSS3
Effective and Efficient Design with CSS3
Zoe Gillenwater
 
Responsive UX - One size fits all @BigDesign conference #BigD12
Responsive UX - One size fits all   @BigDesign conference #BigD12Responsive UX - One size fits all   @BigDesign conference #BigD12
Responsive UX - One size fits all @BigDesign conference #BigD12
touchtitans
 

Similaire à CSS3, Media Queries, and Responsive Design (20)

CSS3: Using media queries to improve the web site experience
CSS3: Using media queries to improve the web site experienceCSS3: Using media queries to improve the web site experience
CSS3: Using media queries to improve the web site experience
 
Great Responsive-ability Web Design
Great Responsive-ability Web DesignGreat Responsive-ability Web Design
Great Responsive-ability Web Design
 
Responsive Web Design On Student's day
Responsive Web Design On Student's day Responsive Web Design On Student's day
Responsive Web Design On Student's day
 
An Introduction to Responsive Design
An Introduction to Responsive DesignAn Introduction to Responsive Design
An Introduction to Responsive Design
 
Responsive Web Design_2013
Responsive Web Design_2013Responsive Web Design_2013
Responsive Web Design_2013
 
Mobile Best Practices
Mobile Best PracticesMobile Best Practices
Mobile Best Practices
 
Advancio, Inc. Academy: Responsive Web Design
Advancio, Inc. Academy: Responsive Web DesignAdvancio, Inc. Academy: Responsive Web Design
Advancio, Inc. Academy: Responsive Web Design
 
Mobile web development
Mobile web development Mobile web development
Mobile web development
 
The Mobile Development Landscape
The Mobile Development LandscapeThe Mobile Development Landscape
The Mobile Development Landscape
 
Responsive Web Design
Responsive Web DesignResponsive Web Design
Responsive Web Design
 
BarkleyREI & Hannon Hill Webinar - Responsive Web Design
BarkleyREI & Hannon Hill Webinar - Responsive Web DesignBarkleyREI & Hannon Hill Webinar - Responsive Web Design
BarkleyREI & Hannon Hill Webinar - Responsive Web Design
 
Responsive Web Design in Cascade Server, by Chris Cox of BarkleyREI
Responsive Web Design in Cascade Server, by Chris Cox of BarkleyREIResponsive Web Design in Cascade Server, by Chris Cox of BarkleyREI
Responsive Web Design in Cascade Server, by Chris Cox of BarkleyREI
 
FITC - 2012-04-23 - Responsive Web Design
FITC - 2012-04-23 - Responsive Web DesignFITC - 2012-04-23 - Responsive Web Design
FITC - 2012-04-23 - Responsive Web Design
 
Responsive web designing course in Chandigarh
Responsive web designing course in Chandigarh Responsive web designing course in Chandigarh
Responsive web designing course in Chandigarh
 
Real-world CSS3
Real-world CSS3Real-world CSS3
Real-world CSS3
 
Responsive web design
Responsive web designResponsive web design
Responsive web design
 
CSS3: Simply Responsive
CSS3: Simply ResponsiveCSS3: Simply Responsive
CSS3: Simply Responsive
 
Effective and Efficient Design with CSS3
Effective and Efficient Design with CSS3Effective and Efficient Design with CSS3
Effective and Efficient Design with CSS3
 
Responsive Web Design (HeadStart TechTalks)
Responsive Web Design (HeadStart TechTalks)Responsive Web Design (HeadStart TechTalks)
Responsive Web Design (HeadStart TechTalks)
 
Responsive UX - One size fits all @BigDesign conference #BigD12
Responsive UX - One size fits all   @BigDesign conference #BigD12Responsive UX - One size fits all   @BigDesign conference #BigD12
Responsive UX - One size fits all @BigDesign conference #BigD12
 

Plus de Zoe Gillenwater

CSS Lessons Learned the Hard Way (Generate Conf)
CSS Lessons Learned the Hard Way (Generate Conf)CSS Lessons Learned the Hard Way (Generate Conf)
CSS Lessons Learned the Hard Way (Generate Conf)
Zoe Gillenwater
 

Plus de Zoe Gillenwater (20)

Using Flexbox Today (Frontier Conf 2016)
Using Flexbox Today (Frontier Conf 2016)Using Flexbox Today (Frontier Conf 2016)
Using Flexbox Today (Frontier Conf 2016)
 
Using Flexbox Today (Generate Sydney 2016)
Using Flexbox Today (Generate Sydney 2016)Using Flexbox Today (Generate Sydney 2016)
Using Flexbox Today (Generate Sydney 2016)
 
Using Flexbox Today (CSS Summit 2016)
Using Flexbox Today (CSS Summit 2016)Using Flexbox Today (CSS Summit 2016)
Using Flexbox Today (CSS Summit 2016)
 
Using Flexbox Today (Frontend United 2016)
Using Flexbox Today (Frontend United 2016)Using Flexbox Today (Frontend United 2016)
Using Flexbox Today (Frontend United 2016)
 
Show vs. Tell in UX Design (Front in Amsterdam)
Show vs. Tell in UX Design (Front in Amsterdam)Show vs. Tell in UX Design (Front in Amsterdam)
Show vs. Tell in UX Design (Front in Amsterdam)
 
Enhancing Responsiveness with Flexbox (CSS Conf EU 2015)
Enhancing Responsiveness with Flexbox (CSS Conf EU 2015)Enhancing Responsiveness with Flexbox (CSS Conf EU 2015)
Enhancing Responsiveness with Flexbox (CSS Conf EU 2015)
 
Responsive Flexbox Inspiration (Responsive Day Out)
Responsive Flexbox Inspiration (Responsive Day Out)Responsive Flexbox Inspiration (Responsive Day Out)
Responsive Flexbox Inspiration (Responsive Day Out)
 
Enhancing Responsiveness With Flexbox (CSS Day)
Enhancing Responsiveness With Flexbox (CSS Day)Enhancing Responsiveness With Flexbox (CSS Day)
Enhancing Responsiveness With Flexbox (CSS Day)
 
CSS Lessons Learned the Hard Way (ConvergeSE)
CSS Lessons Learned the Hard Way (ConvergeSE)CSS Lessons Learned the Hard Way (ConvergeSE)
CSS Lessons Learned the Hard Way (ConvergeSE)
 
Enhancing Responsiveness With Flexbox (Smashing Conference)
Enhancing Responsiveness With Flexbox (Smashing Conference)Enhancing Responsiveness With Flexbox (Smashing Conference)
Enhancing Responsiveness With Flexbox (Smashing Conference)
 
Enhancing Responsiveness with Flexbox (RWD Summit)
Enhancing Responsiveness with Flexbox (RWD Summit)Enhancing Responsiveness with Flexbox (RWD Summit)
Enhancing Responsiveness with Flexbox (RWD Summit)
 
CSS Lessons Learned the Hard Way (Beyond Tellerand)
CSS Lessons Learned the Hard Way (Beyond Tellerand)CSS Lessons Learned the Hard Way (Beyond Tellerand)
CSS Lessons Learned the Hard Way (Beyond Tellerand)
 
CSS Lessons Learned the Hard Way (Generate Conf)
CSS Lessons Learned the Hard Way (Generate Conf)CSS Lessons Learned the Hard Way (Generate Conf)
CSS Lessons Learned the Hard Way (Generate Conf)
 
Leveling Up With Flexbox (Smart Web Conference)
Leveling Up With Flexbox (Smart Web Conference)Leveling Up With Flexbox (Smart Web Conference)
Leveling Up With Flexbox (Smart Web Conference)
 
Leveling Up with Flexbox (Smashing Conference)
Leveling Up with Flexbox (Smashing Conference)Leveling Up with Flexbox (Smashing Conference)
Leveling Up with Flexbox (Smashing Conference)
 
Just One (CSS Dev Conference keynote)
Just One (CSS Dev Conference keynote)Just One (CSS Dev Conference keynote)
Just One (CSS Dev Conference keynote)
 
Putting Flexbox into Practice (Fronteers)
Putting Flexbox into Practice (Fronteers)Putting Flexbox into Practice (Fronteers)
Putting Flexbox into Practice (Fronteers)
 
Putting Flexbox into Practice
Putting Flexbox into PracticePutting Flexbox into Practice
Putting Flexbox into Practice
 
CSS3 Layout
CSS3 LayoutCSS3 Layout
CSS3 Layout
 
Building Responsive Layouts
Building Responsive LayoutsBuilding Responsive Layouts
Building Responsive Layouts
 

Dernier

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Dernier (20)

Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
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
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
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
 
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
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
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
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 

CSS3, Media Queries, and Responsive Design

  • 1. & CSS3, Media Queries, Responsive Design May 23, 2012 STC Summit Zoe Mickley Gillenwater | @zomigi
  • 2. What I do Books Web Stunning CSS3: Accessibility A Project-based Guide to specialist at AT&T the Latest in CSS Visual designer www.stunningcss3.com CSS developer and consultant Flexible Web Design: Creating Liquid and Elastic Layouts with CSS www.flexiblewebbook.com 2
  • 3. 1 3 My home's web-enabled devices 2 2 3
  • 4. & devices more mobile devices more diversity within EVERY DAY 4
  • 5. & every day 1.45 MILLION DEVICES 317,124 BABIES enter the world Source: http://www.lukew.com/ff/entry.asp?1506 5
  • 6. Growing screen resolution diversity on desktop May 2009 widths May 2012 widths 1366 1024 1024 1280 1280 1440 1440 1680 1920 800 1600 1152 1680 other 1360 other Source: http://gs.statcounter.com 6
  • 7. 25% of U.S. smartphone users do MOST OR ALL of their web browsing on mobile Source: http://www.lukew.com/ff/entry.asp?1405 7
  • 8. ? how can our sites accommodate all this DIVERSITY 8
  • 9. Introducing media queries • Awesome new part of CSS3 • Simple way to feed different CSS based on characteristics of user's device • Used to build responsive/adaptive designs • Not: • for feeding styles based on browser • just for feeding styles based on viewport size 9
  • 10. Media query syntax: internal body { background: gray; } @media screen and (max-width:500px) { body { background: blue; } } English translation: Make the background gray. But up to a maximum width of 500 pixels, make the background blue. 10
  • 11. Flip flop it body { background: blue; } @media screen and (min-width:501px) { body { background: gray; } } English translation: Make the background blue. But at and past the minimum width of 501 pixels, make the background gray. 11
  • 13. Media query syntax: external Extend the existing media part of the link element or @import rule: <link href="narrow.css" rel="stylesheet" media="only screen and (max-width:500px)"> @import url(narrow.css) only screen and (max-width:500px); 13
  • 14. Recommendation: internal • Main advantages: • No extra HTTP request(s) • Not out of sight and forgotten • Learn full pros/cons: www.zomigi.com/blog/ essential-considerations-crafting-quality- media-queries 14
  • 15. ! you now know media query syntax YAY 15
  • 16. but media queries don't actually DO anything 16
  • 17. it's the CSS INSIDE that changes the appearance 17
  • 18. Width-dependent layout changes • Responsive web design: • Media queries + fluid layouts + fluid media • See www.alistapart.com/articles/responsive- web-design/ • Adaptive layouts: • Media queries + fixed-width layouts • See www.netmagazine.com/tutorials/ adaptive-layouts-media-queries 18
  • 19. Retrofitting responsiveness • Typical to add on media queries for both smaller and wider styles • CSS before media queries is default • Can take different approach when starting from scratch • Start with "mobile," layer on wider styles? • Start with "desktop," layer on narrower styles? • Start with something in between for majority? 19
  • 20. Starting with desktop styles Pros: Cons: • No extra work to • Mobile devices may make majority width have to download appear correctly on unneeded desktop IE 6-8 assets • Easiest way to retrofit • Need separate style existing site sheets or JavaScript to make mobile design appear in IE Mobile 7 and other older mobile browsers 20
  • 21. Starting with mobile styles Pros: Cons: • Mobile devices won't • Desktop devices may download unneeded have to download desktop assets unneeded mobile • Older, non-media- assets query-supporting • Need separate style mobile browsers still sheets or JavaScript get the mobile styles to make majority without any extra desktop design work appear in IE 6-8 21
  • 25. Wide-screen media query /*all the other styles up here*/ @media screen and (min-width: 1200px) { /*styles for larger screens in here*/ } 25
  • 26. Add third column @media screen and (min-width: 1200px) { #nav-main { position: fixed; top: 136px; width: 13%; margin: 0; } #content-main { width: 58%; margin-left: 18%; } #content-secondary { width: 20%; } } 26
  • 27. Style nav as vertical menu @media screen and (min-width: 1200px) { ... #nav-main li { float: none; margin: 0; } #nav-main a { -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0; } } 27
  • 29. Small-screen media query /*all the other styles up here*/ @media screen and (max-width: 760px) { /*styles for smaller screens in here*/ } 29
  • 30. Remove columns from text @media screen and (max-width: 760px) { h1 + p { -moz-column-count: 1; -o-column-count: 1; -webkit-column-count: 1; column-count: 1; } } 30
  • 31. Stack feature boxes @media screen and (max-width: 760px) { ... .feature { float: none; width: auto; margin: 0 0 1.6em 0; padding: 0 0 0 140px; background-position: top left; } } 31
  • 33. & pause for CAVEATS CLARIFICATIONS 33
  • 34. Some sites would be better served with a separate site for mobile devices instead of using media queries. 34
  • 35. Even if a separate mobile site would be best, using media queries is a good first step if a separate site isn't currently feasible. 35
  • 36. “The choice is not between using media queries and creating a dedicated mobile site; the choice is between using media queries and doing nothing at all.” ―Jeremy Keith http://adactio.com/journal/1696/ 36
  • 37. You can add media queries to a dedicated mobile site in order to cater to the wide range of mobile viewport sizes. 37
  • 38. If you do use media queries on a single site, they're not the only tool you can use—you can add scripting as well to further customize the content, markup, functionality, etc. 38
  • 39. Media queries are only meant to solve the problem of mobile's small viewports, not all the other things that can make mobile browsing different (such as context, bandwidth, etc.). 39
  • 40. “It's making sure your layout doesn't look crap on diff. sized screens.” ―Mark Boulton http://twitter.com/#!/markboulton/status/50237480368214016 40
  • 42. Mobile media query /*all the other styles up here*/ @media screen and (max-width: 550px) { /*styles for tiny screens in here*/ } 42
  • 43. Non-overlapping version @media screen and (min-width: 551px) and (max-width: 760px) { /*styles for small screens in here*/ } @media screen and (max-width: 550px) { /*styles for tiny screens in here*/ } 43
  • 44. Media features for mobile min-width max-width device-width min-device-width max-device-width orientation min-device-pixel-ratio -webkit-min-device-pixel-ratio min--moz-device-pixel-ratio -o-min-device-pixel-ratio 44
  • 45. Useful media features for mobile min-width max-width device-width min-device-width max-device-width orientation min-device-pixel-ratio -webkit-min-device-pixel-ratio min--moz-device-pixel-ratio -o-min-device-pixel-ratio 45
  • 46. Changing to single column @media screen and (max-width: 550px) { #content-main, #content-secondary, #about, #credits { float: none; width: 100%; } } 46
  • 47. Changing feature images @media screen and (max-width: 550px) { ... .feature { padding-left: 70px; } #feature-candy { background-image: url(icon_candy_64.png); } #feature-pastry { background-image: url(icon_pastry_64.png); } #feature-dessert { background-image: url(icon_dessert_64.png); } } 47
  • 49. Viewport meta tag Forces mobile devices to scale viewport to actual device width <meta name="viewport" content="width=device-width"> 49
  • 50. Zoom problem in iOS • Remember: device-width on iOS devices always matches portrait width • This means design doesn't reflow when you switch to landscape, but instead just zooms 50
  • 51. Fixing (and adding) zoom issues • Option 1: add maximum-scale=1 • But disables user scaling <meta name="viewport" content="width=device-width, maximum-scale=1"> • Option 2: add initial-scale=1 • Allows user scaling • But triggers over-zoom/crop bug when changing from portrait to landscape <meta name="viewport" content="width=device-width, initial-scale=1"> 51
  • 52. The best way to fix zoom issues • Option 3: add initial-scale=1 plus script to fix over-zoom bug • See http://filamentgroup.com/lab/a_fix_for_ the_ios_orientationchange_zoom_bug/ <head> ... <meta name="viewport" content="width=device-width, initial-scale=1"> <script src="ios-orientationchange-fix.js"> ... </head> 52
  • 54. More responsive examples • Design patterns: • "Multi-Device Layout Patterns" by Luke Wroblewski: www.lukew.com/ff/entry.asp?1514 • "Responsive Navigation Patterns" by Brad Frost: http://bradfrostweb.com/blog/web/ responsive-nav-patterns/ • Inspiration: • Gallery: http://mediaqueri.es/ • My own bookmarks: https://gimmebar.com/ loves/zomigi/tag/mediaqueries 54
  • 55. Dealing with IE 8 and earlier • Conditional comments • JavaScript 55
  • 56. Conditional comments • Split styles into separate sheets and feed applicable sheet to IE based on whether it's IE on desktop or mobile • Approach varies based on which set of styles are your default 56
  • 57. Conditional comment when desktop styles are default Feed IE Mobile 7 media query sheet: <link rel="stylesheet" href="global.css" media="all"> <link rel="stylesheet" href="mobile.css" media="all and (max-width: 700px)"> <!--[if IEMobile 7]> <link rel="stylesheet" href="mobile.css" media="all"> <![endif]--> Source: http://blogs.msdn.com/b/iemobile/archive/2010/12/08/targeting-mobile- optimized-css-at-windows-phone-7.aspx 57
  • 58. Conditional comment when mobile styles are default Feed older IE media query sheet, hide from IE Mobile 7: <link rel="stylesheet" href="global.css" media="all"> <link rel="stylesheet" href="desktop.css" media="all and (min-width: 700px)"> <!--[if (lt IE 9)&(!IEMobile 7)]> <link rel="stylesheet" href="desktop.css" media="all"> <![endif]--> Source: http://adactio.com/journal/4494/ 58
  • 59. Pre-fab JavaScript for non- supporting browsers • Simply add one of these scripts: • Respond: https://github.com/scottjehl/Respond • css3-mediaqueries.js: http://code.google.com/p/css3-mediaqueries-js/ • Avoid extra HTTP request for non-old-IE browsers using conditional comments: <!--[if (lt IE 9)&(!IEMobile 7)]> <script src="respond.min.js"></script> <![endif]--> 59
  • 60. ? WHAT ELSE can media queries do 60
  • 61. Swapping images on high-res displays @media screen and (moz--min-device-pixel-ratio : 1.5), screen and (-o-min-device-pixel-ratio : 3/2), screen and (-webkit-min-device-pixel-ratio : 1.5), screen and (min-device-pixel-ratio : 1.5) { } 61
  • 62. Swapping images on high-res displays @media ... screen and (min-device-pixel-ratio : 1.5) { .feature { -moz-background-size: 64px 64px; -webkit-background-size: 64px 64px; background-size: 64px 64px; } #feature-candy { background-image: url(icon_candy_128.png); } #feature-pastry { background-image: url(icon_pastry_128.png); } #feature-dessert { background-image: url(icon_dessert_128.png); } } 62
  • 63. Learn more Download slides and get links at http://zomigi.com/blog/responsive-web- design-presentation Zoe Mickley Gillenwater @zomigi design@zomigi.com zomigi.com | stunningcss3.com | flexiblewebbook.com 63