Tutorials

The links on this page lead to a variety of tutorials and training materials. Whether you are just starting out, learning the basics, or are an old hand at web development, you can find helpful resources here for best practices. These resources are created by forward-thinking companies and web developers who have embraced open standards and best practices for web development and that provide or allow translations, through an open content license such as Creative Commons.

For complete beginners to the Web

Getting started with the Web
Getting started with the Web is a concise series introducing you to the practicalities of web development. You'll set up the tools you need to construct a simple webpage and publish your own simple code.

HTML Tutorials

Introductory level

Introduction to HTML
This module sets the stage, getting you used to important concepts and syntax, looking at applying HTML to text, how to create hyperlinks, and how to use HTML to structure a webpage.
 
MDN HTML Element Reference
A comprehensive reference for HTML elements, and how the different browsers support them.
HTML Challenges (Wikiversity)
Use these challenges to hone your HTML skills (for example, "Should I use an <h2> element or a <strong> element?"), focusing on meaningful mark-up.

Intermediate level

Multimedia and embedding
This module explores how to use HTML to include multimedia in your web pages, including the different ways that images can be included, and how to embed video, audio, and even entire other webpages.
 
HTML Tables
Representing tabular data on a webpage in an understandable, accessible way can be a challenge. This module covers basic table markup, along with more complex features such as implementing captions and summaries.

Advanced level

HTML Forms
Forms are a very important part of the Web — these provide much of the functionality you need for interacting with web sites, e.g. registering and logging in, sending feedback, buying products, and more. This module gets you started with creating the client-side parts of forms.
Tips for Authoring Fast-Loading HTML Pages
Optimize web pages to provide a more responsive site for visitors and reduce the load on your web server and Internet connection.

CSS Tutorials

Introductory level

CSS basics
CSS (Cascading Style Sheets) is the code you use to style your webpage. CSS Basics takes you through what you need to get started. We'll answer questions like: How do I make my text black or red? How do I make my content show up in such-and-such a place on the screen? How do I decorate my webpage with background images and colors?
Introduction to CSS
This module goes in depth with how CSS works, including selectors and properties, writing CSS rules, applying CSS to HTML, how to specify length, color, and other units in CSS, cascade and inheritance, box model basics, and debugging CSS.
Styling boxes
Next up, we look at styling boxes, one of the fundamental steps towards laying out a web page. In this module we recap the box model then look at controlling box layouts by setting padding, borders and margins, setting custom background colors, images and other features, and fancy features such as drop shadows and filters on boxes.
Styling text
Here we look at text styling fundamentals, including setting font, boldness, and italics, line and letter spacing, and drop shadows and other text features. We round off the module by looking at applying custom fonts to your page, and styling lists and links.
Common CSS Questions
Common questions and answers for beginners.

Intermediate level

CSS layout
At this point we've already looked at CSS fundamentals, how to style text, and how to style and manipulate the boxes that your content sits inside. Now it's time to look at how to place your boxes in the right place in relation to the viewport, and one another. We have covered the necessary prerequisites so can now dive deep into CSS layout, looking at different display settings, traditional layout methods involving float and positioning, and new fangled layout tools like flexbox.
CSS Reference
Complete reference to CSS, with details on support by Firefox and other browsers.
Fluid Grids (A List Apart)
Design layouts that fluidly resize with the browser window, while still using a typographic grid.
CSS Challenges (Wikiversity)
Flex your CSS skills, and see where you need more practice.

Advanced level

Using CSS Transforms
Apply rotation, skewing, scaling, and translation using CSS.
CSS Transitions
CSS transitions, part of the draft CSS3 specification, provide a way to animate changes to CSS properties, instead of having the changes take effect instantly.
Quick Guide to Implement Web Fonts with @font-face (HTML5 Rocks)
The @font-face feature from CSS3 allows you to use custom typefaces on the web in an accessible, manipulatable, and scalable way.
Starting to Write CSS (David Walsh)
An introduction to tools and methodologies to write more succinct, maintainable, and scalable CSS.
Canvas Tutorial
Learn how to draw graphics using scripting using the canvas element.
HTML5 Doctor
Articles about using HTML5 right now.

Javascript Tutorials

Introductory level

 
JavaScript first steps
In our first JavaScript module, we first answer some fundamental questions such as "what is JavaScript?", "what does it look like?", and "what can it do?", before moving on to taking you through your first practical experience of writing JavaScript. After that, we discuss some key JavaScript features in detail, such as variables, strings, numbers and arrays.
JavaScript building blocks
In this module, we continue our coverage of all JavaScript's key fundamental features, turning our attention to commonly-encountered types of code block such as conditional statements, loops, functions, and events. You've seen this stuff already in the course, but only in passing — here we'll discuss it all explicitly.
Getting Started with JavaScript
What is JavaScript and how can it help you?
Codecademy (Codecademy)
Codecademy is a easy way to learn how to code JavaScript. It's interactive and you can do it with your friends.

Intermediate level

Introducing JavaScript objects
In JavaScript, most things are objects, from core JavaScript features like strings and arrays to the browser APIs built on top of JavaScript. You can even create your own objects to encapsulate related functions and variables into efficient packages. The object-oriented nature of JavaScript is important to understand if you want to go further with your knowledge of the language and write more efficient code, therefore we've provided this module to help you. Here we teach object theory and syntax in detail, look at how to create your own objects, and explain what JSON data is and how to work with it.
Client-side web APIs
When writing client-side JavaScript for web sites or applications, you won't go very far before you start to use APIs — interfaces for manipulating different aspects of the browser and operating system the site is running on, or even data from other web sites or services. In this module we will explore what APIs are, and how to use some of the most common APIs you'll come across often in your development work. 
A Re-Introduction to JavaScript
A recap of the JavaScript programming language aimed at intermediate-level developers.
Eloquent JavaScript
A comprehensive guide to intermediate and advanced JavaScript methodologies.
Speaking JavaScript (Dr. Axel Rauschmayer)
For programmers who want to learn JavaScript quickly and properly, and for JavaScript programmers who want to deepen their skills and/or look up specific topics.
Essential JavaScript Design Patterns (Addy Osmani)
An introduction to essential JavaScript design patterns.

Advanced level

JavaScript Guide
A comprehensive, regularly updated guide to JavaScript for all levels of learning from beginner to advanced.
You Don't Know JS (Kyle Simpson)
A series of books diving deep into the core mechanisms of the JavaScript language.
JavaScript Garden
Documentation of the most quirky parts of JavaScript.
Exploring ES6 (Dr. Axel Rauschmayer)
Reliable and in-depth information on ECMAScript 2015.
Javascipt Patterns
A JavaScript pattern and antipattern collection that covers function patterns, jQuery patterns, jQuery plugin patterns, design patterns, general patterns, literals and constructor patterns, object creation patterns, code reuse patterns, DOM.
How browsers work
A detailed research article describing different modern browsers, their engines, page rendering etc.
JavaScript Videos (GitHub)
A collection of JavaScript videos to watch.

Extension Development

WebExtensions
WebExtensions is a cross-browser system for developing browser add-ons. To a large extent the system is compatible with the extension API supported by Google Chrome and Opera. Extensions written for these browsers will in most cases run in Firefox or Microsoft Edge with just a few changes. The API is also fully compatible with multiprocess Firefox.