HTML Cheat Sheet
A searchable, printable HTML5 reference — document skeleton, semantic tags, links, media, tables, forms, attributes and entities. Free.
Document skeleton & metadata
13<!DOCTYPE html>
<html lang="en">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Page title</title>
<meta name="description" content="...">
<link rel="stylesheet" href="app.css">
<script src="app.js" defer></script>
<link rel="icon" href="favicon.svg">
<link rel="canonical" href="https://ex.com/page">
<meta property="og:title" content="...">
<meta property="og:image" content="...">
<meta name="robots" content="noindex">
Text content
14<h1>...</h1> to <h6>
<p>...</p>
<br> / <hr>
<strong> vs <b>
<em> vs <i>
<mark>highlight</mark>
<small> / <s>
<blockquote cite="url">
<q>inline quote</q>
<pre><code>...</code></pre>
<abbr title="HyperText...">HTML</abbr>
<time datetime="2026-07-27">
<sub> / <sup>
<kbd>Ctrl+C</kbd>
Semantic layout
12<header>
<nav>
<main>
<article>
<section>
<aside>
<footer>
<figure><figcaption>
<address>
<article><h2>...</h2></article>
<div>
<span>
Links & navigation
11<a href="https://example.com">
<a href="#pricing">
<a href="mailto:hi@example.com">
<a href="tel:+1234567890">
target="_blank"
rel="noopener noreferrer"
rel="nofollow"
<a href="file.pdf" download>
download="report-2026.pdf"
<nav><ul><li><a>...</a></li></ul></nav>
<a href="#main" class="skip-link">
Images & media
12<img src="cat.jpg" alt="A sleeping cat">
<img ... width="800" height="600">
loading="lazy"
decoding="async"
srcset="s.jpg 480w, l.jpg 1024w" sizes="100vw"
<picture><source type="image/webp" ...><img ...></picture>
<video src="clip.mp4" controls poster="cover.jpg">
<video autoplay muted loop playsinline>
<audio src="talk.mp3" controls>
<source src="v.webm" type="video/webm">
<track kind="captions" src="en.vtt" srclang="en">
<figure><img ...><figcaption>...</figcaption></figure>
Lists & tables
11<ul><li>...</li></ul>
<ol><li>...</li></ol>
<ol start="5" reversed>
<ol type="a">
<dl><dt>Term</dt><dd>Definition</dd></dl>
<table><thead><tbody><tfoot>
<caption>Sales 2026</caption>
<th scope="col"> / scope="row"
<td colspan="2"> / rowspan="2">
<colgroup><col span="2" class="wide">
Nested list: <li>...<ul>...</ul></li>
Forms — input types
14<input type="text">
<input type="email">
<input type="password">
<input type="number" min="0" step="1">
<input type="tel"> / type="url">
<input type="search">
<input type="date"> / "time" / "datetime-local"
<input type="color">
<input type="range" min="0" max="100">
<input type="file" accept="image/*" multiple>
<input type="checkbox" checked>
<input type="radio" name="plan">
<input type="hidden" name="token">
<input type="submit"> / <button>
Forms — structure & validation
15<form action="/save" method="post">
<label for="email">
<label>Email <input ...></label>
name="email"
required
pattern="[0-9]{4}"
minlength / maxlength
min / max / step
placeholder="you@example.com"
autocomplete="email"
<select><optgroup><option>
<textarea rows="4" name="msg">
<fieldset><legend>Shipping</legend>
<input list="fruits"><datalist id="fruits">
<form novalidate>
Interactive elements
13<details><summary>More</summary>...</details>
<details open>
<details name="faq">
<dialog id="dlg">...</dialog>
dlg.showModal() / dlg.close()
<form method="dialog">
::backdrop
<div popover id="tip">...</div>
<button popovertarget="tip">
<progress value="70" max="100">
<meter value="0.6" low="0.3" high="0.8">
<output for="a b">
<button type="button">
Embedded content
11<iframe src="https://ex.com" title="Map">
<iframe sandbox="allow-scripts">
<iframe allow="fullscreen; autoplay">
<iframe loading="lazy">
<canvas id="chart" width="600" height="300">
canvas.getContext('2d')
<svg viewBox="0 0 100 100">...</svg>
<svg><use href="#icon-x"/></svg>
<object data="doc.pdf" type="application/pdf">
<embed src="file.svg">
<noscript>...</noscript>
Global attributes
14id="unique-name"
class="card featured"
data-user-id="42"
title="Tooltip text"
hidden
tabindex="0" / "-1"
contenteditable="true"
spellcheck="false"
lang="fr" / dir="rtl"
draggable="true"
inert
aria-label="Close"
aria-hidden="true"
role="alert"
Entities & special characters
12&
< / >
" / '
© / ® / ™
— / –
…
→ / ←
× / ÷
€ / £ / ¥
👍
<meta charset="utf-8"> first
No entry matches “:q”.
About HTML Cheat Sheet
This HTML cheat sheet puts the whole tag vocabulary on one searchable page: the document skeleton and metadata, text content, semantic layout, links and navigation, images and media, lists and tables, form input types, form structure and validation, interactive elements, embedded content, global attributes, and entities and special characters.
It is as useful for the details as for the tags — which input type to use for a date or a colour, the required and pattern validation attributes, the semantic difference between article, section and aside, or the entity code for a non-breaking space and a curly quote.
The sheet is free and client-side: filter rows live with the search box, hop between sections with the sticky table of contents, copy any snippet with one click and print the page as a reference for your desk.
How to use HTML Cheat Sheet
- Skim the sections, from Document skeleton & metadata and Semantic layout through Forms to Entities.
- Search for a tag or attribute such as picture, aria-label or required to filter every row live.
- Jump to Forms — input types when you need the right control for a field.
- Click a snippet or its copy icon to copy the HTML to your clipboard.
- Print the sheet for an offline HTML reference.