Removing the user agent (default) CSS from most elements is usually a good idea. This has long been done by "universal" resets or things like the Eric Meyer Reset. I think the best option today is Normalize.css.

One way to explain it is that Normalize does both more and less than a reset. It does more in that it covers more browsers than old school resets did, fixing modern issues as well as legacy issues. It does less in that it leaves styling alone that is already consistent across browsers. For example, it leaves header tags bold because that's already consistant across browsers and is likely something you want to have anyway.


  1. Nelson Hereveri
    Permalink to comment#

    Have you test Alexander Farkas JS to enable use of HTML5 sectioning elements in legacy Internet Explorer?
    Someone who can comment on that? Thanks in advance!

    • Chris Coyier
      Permalink to comment#

      That’s a great thing. I might actually need to think about using it, but I’m not quite sure. The big thing it enables is for you to style HTML5 elements. e.g. section { background: red; }. Honestly I try and stay away from that as much as I can (styling generic blocks), using more specific classes instead. I bet there are some edge cases of me doing direct element styling though, I’d have to do a CSS audit and find them.

  2. Paul Ciccone
    Permalink to comment#

    I’m really enjoying this series so far Chris. It’s nice to follow a pro step by step through the entire process. Keep up the good work!

  3. Ryan Martin
    Permalink to comment#

    I just got started with Sublime Text 2, but notice your SCSS file is able to use the SCSS extension.

    I don’t have SCSS option from my Current Extension? How/where do I add this?


  4. Amit
    Permalink to comment#

    I was wondering Chris – if I am about to use a starter theme like underscores (_s) for example would you still recommend using normalize or better using the CSS that the starter theme comes with ? thanks

  5. Amit
    Permalink to comment#

    Ah. Just realize normalize is actually part of _S ;-)

Leave a Comment

Posting Code

We highly encourage you to post problematic HTML/CSS/JavaScript over on CodePen and include the link in your post. It's much easier to see, understand, and help with when you do that.

Markdown is supported, so you can write inline code like `<div>this</div>` or multiline blocks of code in triple backtick fences like this:

  function example() {
    element.innerHTML = "<div>code</div>";

We have a pretty good* newsletter.