Skip to content

Learning HTML & CSS

This section contains resources for learning HTML & CSS. The two languages are so interrelated it only makes sense to learn them in parallel.

Note this is a living document and is constantly being updated. Some things may come and go over time.

Beginner

A beginning HTML and CSS programmer is someone that is new to both languages and possibly programming. This set of resources spans learning what each language is, how they work together, and the basics of more front-end design oriented topics such as fluid design, responsive design, and mobile design.

HTML

There is no shortcut to learning HTML or CSS. The best teacher is practice and application. Make things, break things, and analyze why certain HTML tags or CSS selectors work (or don't). Make use of a live server type environment to speed up your development workflow.

Language

Document Meta Data

Tutorials

Tools

CSS

Language

Tutorials

Tools


Intermediate

An intermediate HTML and CSS programmer is someone that is familiar with both languages and can build simple pages and functional websites based off mockups or wireframes.

CSS Units

Resets & Boilerplates

CSS Normalize & Resets

Boilerplates

Positioning & Layout

Box Model

Positioning

Layouts, Grids, Flexbox

  • Relationship of grid layout to other layout methods
  • A simple question to ask yourself when deciding between grid or flexbox is:
    • do I only need to control the layout by row or column – use a flexbox
    • do I need to control the layout by row and column – use a grid

Grid Layout

Flexbox Layout

Media Queries

Tools

Preprocessors

  • SASS (SCSS)
  • LESS - Less (aka Leaner Style Sheets) is a dynamic preprocessor style sheet language that can be compiled into Cascading Style Sheets and run on the client side or server side.
  • Intro to CSS Preprocessors

Organization


Advanced

An advanced HTML and CSS programmer is someone that is an expert with both languages and can architect nearly any possible website for any possible platform.

CSS

CSS Specificity Hierarchy

CSS Ninja

CSS Methologies

BEM – meaning block, element, modifier – is a front-end naming methodology thought up by the guys at Yandex. It is a smart way of naming your CSS classes to give them more transparency and meaning to other developers.


Other

Handbooks, Guides, Interview Questions


Front-End Frameworks

Back to top