Complete Websites

Building a Responsive Layout With Skeleton: Widescreen


It's time to pick up our Skeleton layout once more, this time to approach layouts larger than the standard 960px width. Skeleton throws a few curve balls our way when it comes to extending the framework - let's take a look at those difficulties and see what we can do to get around them.


Alternatively, Download the video, or subscribe to Webdesigntuts+ screencasts via iTunes or YouTube!

Extending Skeleton

During my experiments I came up with a couple of things. If you're interested, here are the recalculated columns for a 1280px container:

/* #Additional - Large Screens beyond 1280px
================================================== */

    /* Note: Design for a width of 1280px */

    @media only screen and (min-width: 1280px) {
        .container                                  { width: 1280px; }
        .container .column,
        .container .columns                         { margin-left: 10px; margin-right: 10px;  }
        .column.alpha, .columns.alpha               { margin-left: 0; margin-right: 10px; },               { margin-right: 0; margin-left: 10px; }                                { margin-left: 0; margin-right: 0; }

        .container .one.column,
        .container .one.columns                     { width: 60px; }
        .container .two.columns                     { width: 140px; }
        .container .three.columns                   { width: 220px; }
        .container .four.columns                    { width: 300px; }
        .container .five.columns                    { width: 380px; }
        .container .six.columns                     { width: 460px; }
        .container .seven.columns                   { width: 540px; }
        .container .eight.columns                   { width: 620px; }
        .container .nine.columns                    { width: 700px; }
        .container .ten.columns                     { width: 780px; }
        .container .eleven.columns                  { width: 860px; }
        .container .twelve.columns                  { width: 940px; }
        .container .thirteen.columns                { width: 1020px; }
        .container .fourteen.columns                { width: 1100px; }
        .container .fifteen.columns                 { width: 1180px; }
        .container .sixteen.columns                 { width: 1260px; }

        .container .one-third.column                { width: 406px; }
        .container .two-thirds.column               { width: 822px; }

        /* Offsets */
        .container .offset-by-one                   { padding-left: 80px; }
        .container .offset-by-two                   { padding-left: 160px; }
        .container .offset-by-three                 { padding-left: 240px; }
        .container .offset-by-four                  { padding-left: 320px; }
        .container .offset-by-five                  { padding-left: 400px; }
        .container .offset-by-six                   { padding-left: 480px; }
        .container .offset-by-seven                 { padding-left: 560px; }
        .container .offset-by-eight                 { padding-left: 640px; }
        .container .offset-by-nine                  { padding-left: 720px; }
        .container .offset-by-ten                   { padding-left: 800px; }
        .container .offset-by-eleven                { padding-left: 880px; }
        .container .offset-by-twelve                { padding-left: 960px; }
        .container .offset-by-thirteen              { padding-left: 1040px; }
        .container .offset-by-fourteen              { padding-left: 1120px; }
        .container .offset-by-fifteen               { padding-left: 1200px; }

Also, here are the column widths recalculated as percentages. That's right, a fluid Skeleton! Be aware that nesting columns will not work in this case..

/* #Additional - Flexible Column Widths
================================================== */

        .container                                  { width: 90%; } /*whatever you want - can even be fixed if you prefer*/
        .container .column,
        .container .columns                         { margin-left: 0.78125%; margin-right: 0.78125%;  }

        .container .one.column,
        .container .one.columns                     { width: 4.6875%; }
        .container .two.columns                     { width: 10.9375%; }
        .container .three.columns                   { width: 17.1875%; }
        .container .four.columns                    { width: 23.4375%; }
        .container .five.columns                    { width: 29.6875%; }
        .container .six.columns                     { width: 35.9375%; }
        .container .seven.columns                   { width: 42.1875%; }
        .container .eight.columns                   { width: 48.4375%; }
        .container .nine.columns                    { width: 54.6875%; }
        .container .ten.columns                     { width: 60.9375%; }
        .container .eleven.columns                  { width: 67.1875%; }
        .container .twelve.columns                  { width: 73.4375%; }
        .container .thirteen.columns                { width: 79.6875%; }
        .container .fourteen.columns                { width: 85.9375%; }
        .container .fifteen.columns                 { width: 92.1875%; }
        .container .sixteen.columns                 { width: 98.4375%; }

        .container .one-third.column                { width: 31.7708%; }
        .container .two-thirds.column               { width: 65.1041%; }

        /* Offsets */
        .container .offset-by-one                   { padding-left: 6.25%; }
        .container .offset-by-two                   { padding-left: 12.5%; }
        .container .offset-by-three                 { padding-left: 18.75%; }
        .container .offset-by-four                  { padding-left: 25%; }
        .container .offset-by-five                  { padding-left: 31.25%; }
        .container .offset-by-six                   { padding-left: 37.5%; }
        .container .offset-by-seven                 { padding-left: 43.75%; }
        .container .offset-by-eight                 { padding-left: 50%; }
        .container .offset-by-nine                  { padding-left: 56.25%; }
        .container .offset-by-ten                   { padding-left: 62.5%; }
        .container .offset-by-eleven                { padding-left: 68.75%; }
        .container .offset-by-twelve                { padding-left: 75%; }
        .container .offset-by-thirteen              { padding-left: 81.25%; }
        .container .offset-by-fourteen              { padding-left: 87.5%; }
        .container .offset-by-fifteen               { padding-left: 93.75%; }

Additional Resources

Some useful links to further build on what's been covered in this video.

Related Posts
  • Web Design
    HTML & CSS
    Build a Dribbble Portfolio Grid With Flexboxgrid and JribbbleFlexboxgrid dribbble
    Flexboxgrid is a new framework which allows you to combine the predictability and common language structure of a grid system with the flexibility and simplicity of flexbox. Today, we will walk through the basics of using Flexboxgrid, and use it to build a simple Dribbble feed. Let's get started!Read More…
  • Web Design
    HTML & CSS
    A “Readability First” Approach to Media Queries and LayoutReadability first thumb
    In this article I'll be talking about a methodology that is a mixture of many approaches to Responsive Web Design, with a few extras stirred in. It's both "Content First" and "Device Agnostic", and was originally inspired by the typography focused em based "Goldilocks Approach". I like to think of it as a "Readability First" approach.Read More…
  • Web Design
    Finishing Off the Merry Christmas Web App InterfaceXmas build 1 retina
    In this tutorial we will finish off our web app front-end so it all looks perfect and functions nicely on all screen sizes. Last time, we rounded off by styling the message boxes, leaving just the content left to do. Shall we dive right in? Ok!Read More…
  • Web Design
    A Simple Mixin Alternative to Standard CSS GridsMixin grid retina
    Over the past few years CSS grid systems have become a very popular way of rapidly producing layout scaffolding in web design. They can be a fantastic time-saving resource, with talented coders having intelligently crafted systems which cater to a wide array of possible layouts designers might need to create. However, this isn't the only way to approach grid-based web layouts, and today we're going to examine an alternative.Read More…
  • Web Design
    Creating a Simple Responsive HTML EmailEmail new rwd thumb
    In this tutorial I will show you how to create a simple responsive HTML email which will work in every email client, including all the new smartphone mail clients and apps. It uses minimal media queries and a fluid width approach to ensure maximum compatibility.Read More…
  • Code
    Theme Development
    Building a Mobile First Responsive WordPress ThemeBuilding a mobile first responsive wordpress theme
    Theme building is at the heart of WordPress. It's the technique you use to build bespoke websites for yourself or your clients and it's a vital skill for anyone wanting to design and develop with WordPress. More and more WordPress themes now are responsive - they use CSS media queries to adapt to different screen widths, adjusting the layout and making design and interface changes to make any site created using the theme easier to read and interact with on a range of devices and screen sizes. In this tutorial I'm going to show you how to build a Mobile First WordPress theme, which starts with the styling for the smallest screens and works upwards.Read More…