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.
Creating a Simple Web Page with HTML
An HTML guide for beginners that includes explanations of common tags, including HTML5 tags. Also includes a step-by-step guide to creating a basic web page with code examples.
HTML Challenges
Use these challenges to hone your HTML skills (for example, "Should I use an <h2> element or a <strong> element?"), focusing on meaningful markup.

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 websites, 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?
CSS first steps
CSS (Cascading Style Sheets) is used to style and lay out web pages — for example, to alter the font, color, size, and spacing of your content, split it into multiple columns, or add animations and other decorative features. This module provides a gentle beginning to your path towards CSS mastery with the basics of how it works, what the syntax looks like, and how you can start using it to add styling to HTML.
CSS building blocks

This module carries on where CSS first steps left off — now you've gained familiarity with the language and its syntax, and got some basic experience with using it, its time to dive a bit deeper. This module looks at the cascade and inheritance, all the selector types we have available, units, sizing, styling backgrounds and borders, debugging, and lots more.

The aim here is to provide you with a toolkit for writing competent CSS and help you understand all the essential theory, before moving on to more specific disciplines like text styling and CSS layout.

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
Design layouts that fluidly resize with the browser window, while still using a typographic grid.
CSS Challenges
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)
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
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 is an easy way to learn how to code JavaScript. It's interactive and you can do it with your friends.
freeCodeCamp
freeCodeCamp teaches a variety of languages and frameworks for web development. It also has a forum, an internet radio station, and a blog.

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 websites 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 websites 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
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
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
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
Reliable and in-depth information on ECMAScript 2015.
JavaScript 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
A collection of JavaScript videos to watch.