search | site map

Scott Granneman

panorama-090.jpg
  • Writing
    • Books
    • SecurityFocus
    • Linux Magazine
    • Others
    • Swings & Misses
  • Presentations
    • Interviews
    • Ladue Chapel
  • Teaching
    • Current Courses
    • Student Evaluations
    • Washington University
    • Webster University
    • St. Louis Community College
    • Archives
  • Web Development
    • Becoming a Web Developer
    • Coding
    • Programming
    • Editors
    • Web Browsers
    • Domains
    • Hosting
    • Graphics & Multimedia
    • Content
  • Tech Info
    • Background
    • Tools
    • Intellectual Property
    • Security
    • Email
    • Networking
    • Blogs, Podcasts, RSS
    • Search
    • Linux
    • Windows
    • Education
  • Personal
    • Work
    • Movies
    • Music
    • Reading
    • Poetry
    • Prose
    • Photos
    • Journals
    • Commonplace Book
    • Our Home
    • Opinions & Editorials
Home > Web Development > Coding > CSS Tips & Tricks > CSS Reset

CSS Reset

On this page…

    The Code Behind the Curtain

    As you know, browsers automatically format HTML in certain ways. For instance, all browsers insert a certain amount of space before & after a paragraph. But how much? And why that particular amount?

    The answers to these questions can be found in two articles, both by Eric Meyer:

    • Really Undoing html.css ~ Eric Meyer explains how & why your Web browsers display HTML markup the way they do.
    • Fractionally Restoring html.css ~ After removing the built-in styles used by your web browser, Eric Meyer tells you how to restore the ones you need.

    The Problem & How to Fix It

    As you've just seen, each Web browser set margins & padding & other styles in its own way. Obviously, many things are similar—every browser I know of renders <em> with italics, for instance—but many things in the HTML & CSS specs are, well, unspecified.

    So how do you fix this?

    Reset your CSS to make sure everything will be the same on all browsers.

    Considerations

    So, should you reset your CSS or not? Let’s look at both sides.

    Reasons You Should Not Reset CSS

    As with everything in life, there are caveats.

    More Work. if you reset your CSS, you will now have to set every HTML element explicitly. For example, the spec for <strong> doesn’t say that text contained within it should appear bold when a browser renders it, but 99.99% of web browsers display text inside <strong> that way. But if you reset your CSS, you’ll now have to explicitly state that text inside strong must be bold, like this:

    strong {
        font-weight: bold;
    }
    

    The same thing applies to all the other HTML elements you reset. The more HTML elements you reset, the more work you’re going to have to do in your CSS.

    You Don’t Care. This is actually a valid argument.

    That said, there are good arguments in favor of resetting your CSS.

    Reasons to Reset CSS

    So why reset CSS? Here are a few reasons you should consider it.

    Consistency.

    Control.

    Solutions

    Method 1: The Original

    * {
        margin: 0;
        padding: 0;
    }
    

    Method 2: Yahoo

    Part of the Yahoo User Interface Library. YUI2: Reset CSS

    blockquote, body, dd, div, dl, dt, fieldset, form, 
    h1, h2, h3, h4, h5, h6, input, li, ol, p, pre, 
    td, textarea, th, ul {
        margin: 0;
        padding: 0;
    }
    table {
        border-collapse: collapse;
        border-spacing: 0;
    }
    fieldset, img {
        border: 0;
    }
    address, caption, cite, code, dfn, em, strong, th, var {
        font-style: normal;
        font-weight: normal;
    }
    ol, ul {
        list-style: none;
    }
    caption, th {
        text-align: left;
    }
    h1, h2, h3, h4, h5, h6 {
        font-size: 100%;
        font-weight: normal;
    }
    abbr, acronym {
        border: 0;
    }
    q: before, q: after {
        content: '';
    }
    

    An easier way is to simply link to Yahoo's CSS:

    <!-- CSS Reset -->
    <link rel="stylesheet" type="text/css" 
    href="http://yui.yahooapis.com/2.8.0r4/build/reset/reset-min.css">
    

    (Of course, check YUI2: Reset CSS often to see if the URL has changed.)

    Method 3: Eric Meyer

    Eric Meyer's CSS Tools: Reset CSS

    /*  http://meyerweb.com/eric/tools/css/reset/ 
        v2.0 | 20110126
        License: none (public domain)
    */
    
    html, body, div, span, applet, object, iframe,
    h1, h2, h3, h4, h5, h6, p, blockquote, pre,
    a, abbr, acronym, address, big, cite, code,
    del, dfn, em, img, ins, kbd, q, s, samp,
    small, strike, strong, sub, sup, tt, var,
    b, u, i, center,
    dl, dt, dd, ol, ul, li,
    fieldset, form, label, legend,
    table, caption, tbody, tfoot, thead, tr, th, td,
    article, aside, canvas, details, embed, 
    figure, figcaption, footer, header, hgroup, 
    menu, nav, output, ruby, section, summary,
    time, mark, audio, video {
        margin: 0;
        padding: 0;
        border: 0;
        font-size: 100%;
        font: inherit;
        vertical-align: baseline;
    }
    /* HTML5 display-role reset for older browsers */
    article, aside, details, figcaption, figure, 
    footer, header, hgroup, menu, nav, section {
        display: block;
    }
    body {
        line-height: 1;
    }
    ol, ul {
        list-style: none;
    }
    blockquote, q {
        quotes: none;
    }
    blockquote:before, blockquote:after,
    q:before, q:after {
        content: '';
        content: none;
    }
    table {
        border-collapse: collapse;
        border-spacing: 0;
    }
    

    An easier way is to simply link to Eric's CSS:

    <!-- CSS Reset -->
    <link rel="stylesheet" type="text/css" 
    href="http://meyerweb.com/eric/tools/css/reset/reset.css">
    

    Really, though, you should download reset.css & use it on your server, so that you’re not beating on Eric’s machine & costing him money for bandwidth usage.


    Contact

    Email scott@granneman.com
    Voice 314-780-0489
    Address
    39 Summit Place
    St. Louis, MO 63119
    United States

    Work

    For work info, see WebSanity.

    All content, unless under a Creative Commons license, is © 1997-2011 Scott Granneman.

    (Take a look around—a lot of content is licensed under a Creative Commons license, which gives YOU a lot of freedom to reuse my work.)

    facebook_32.png Facebook   twitter_32.png Twitter
    linkedin_32.png LinkedIn   friendfeed_32.png FriendFeed
    flickr_32.png Flickr   lastfm_32.png Last.fm
    youtube_32.png YouTube   rss_32.png RSS