HTML: Markup language
CSS: Styling language
JavaScript: Scripting language
Web APIs: Programming interfaces
All web technology
Learn web development
Discover our tools
Get to know MDN better
HTML (HyperText Markup Language) is the most basic building block of the Web. It defines the meaning and structure of web content. Other technologies besides HTML are generally used to describe a web page's appearance/presentation (CSS) or functionality/behavior (JavaScript).
"Hypertext" refers to links that connect web pages to one another, either within a single website or between websites. Links are a fundamental aspect of the Web. By uploading content to the Internet and linking it to pages created by other people, you become an active participant in the World Wide Web.
HTML uses "markup" to annotate text, images, and other content for display in a Web browser. HTML markup includes special "elements" such as <head>, <title>, <body>, <header>, <footer>, <article>, <section>, <p>, <div>, <span>, <img>, <aside>, <audio>, <canvas>, <datalist>, <details>, <embed>, <nav>, <search>, <output>, <progress>, <video>, <ul>, <ol>, <li> and many others.
<head>
<title>
<body>
<header>
<footer>
<article>
<section>
<p>
<div>
<span>
<img>
<aside>
<audio>
<canvas>
<datalist>
<details>
<embed>
<nav>
<search>
<output>
<progress>
<video>
<ul>
<ol>
<li>
An HTML element is set off from other text in a document by "tags", which consist of the element name surrounded by < and >. The name of an element inside a tag is case-insensitive. That is, it can be written in uppercase, lowercase, or a mixture. For example, the <title> tag can be written as <Title>, <TITLE>, or in any other way. However, the convention and recommended practice is to write tags in lowercase.
<
>
<Title>
<TITLE>
The articles below can help you learn more about HTML.
Our learn web development core modules contain modern, up-to-date tutorials covering HTML fundamentals.
This article provides a brief tour of what HTML is and how to use it, aimed at people who are completely new to web development.
This module covers the basics of the HTML language, before looking at key areas such as document structure, links, lists, images, forms, and more.
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/front-end parts of forms.
The HTML guides help you build with HTML on the web. They cover topics such as forms, CORS, content preloading, and responsive images.
Quick reference for common HTML syntax and tasks.
<!-- … -->
HTML comments are used to add explanatory notes to the markup or to prevent the browser from interpreting specific parts of the document.
HTML5 introduced constraint validation to ease form validation on the client side. Basic constraints can be checked without JavaScript by setting attributes on form elements.
HTML is comprised of several kinds of content, each of which is allowed to be used in certain contexts and is disallowed in others. Similarly, each context has a set of other content categories it can contain and elements that can or can't be used in them. This is a guide to these categories.
Certain HTML elements use date and/or time values. This guide describes the formats of the strings that specify these values.
Microdata is used to nest metadata within existing content on web pages. Search engines and web crawlers can extract and process microdata to provide a richer browsing experience.
Microformats are standards used to embed semantics and structured data in HTML for use by social web applications, search engines, aggregators, and other tools.
Historical information on quirks mode and standards mode.
Learn about responsive images that work well on devices with widely differing screen sizes, resolutions, and other features, improving performance across different devices.
The <audio> and <video> elements allow you to play audio and video media natively within your content without the need for external software support.
HTML provides several ways to convey description semantics, whether inline or as structured glossaries. This article shows how to properly mark up keywords when defining them.
HTML5 is designed with extensibility in mind for data that should be associated with a particular element but need not have any defined meaning. data-* attributes allow us to store extra information on standard, semantic HTML elements.
data-*
Some HTML elements that provide support for CORS, such as <img> or <video>, have a crossorigin attribute (crossOrigin property), which lets you configure the CORS requests for the element's fetched data.
crossorigin
crossOrigin
Image maps allow hyperlinks to be associated with different parts of an image. This article shows how to create and implement them.
These tips are based on common knowledge and experimentation. An optimized web page not only provides for a more responsive site for your visitors but also reduces the load on your web servers and internet connection.
This article explains how to add JavaScript code to an HTML file.
HTML consists of elements, each of which may be modified by some number of attributes. HTML documents are connected to each other with links. Browse the complete HTML reference documentation.
Reference for all HTML elements.
Reference for all HTML attributes. Attributes are additional values that configure elements or adjust their behavior in various ways.
Reference for global attributes that may be specified on all HTML elements, even those not specified in the standard. This means that any non-standard elements must still permit these attributes, even though those elements make the document HTML5-noncompliant.
Used to create interactive controls for web-based forms.
Indicates the type of script represented by the element.
Provides metadata in name-value pairs for the whole page.
Defines the relationship between a linked resource and the current document.
This article covers most of the ways you use CSS to add color to HTML content, listing what parts of HTML documents can be colored and what CSS properties to use when doing so.