Semantic elements give the page meaning.
Hypertext Markup Language consists of tags that make up elements. Elements can be broken into categories based on purpose:
| Element | Description |
|---|---|
| <a> | creates a link (hyperlink) to another page |
| <abbr> | abbreviation or acronym |
| <address> | contact information |
| <area> | map area for an image |
| <article> | container for independent and self-contained text |
| <aside> | content area that is related to the primary content on a page |
| <audio> | player for sound |
| <b> | bold text |
| <base> | sets the base URL for all relative URLs on a page |
| <blockquote> | quote from an outside source |
| <body> | container for the page's content with text, links, images, etc. |
| <br> | line break |
| <button> | clickable button that can contain text or an image |
| <canvas> | graphics container where Javascript can draw |
| <caption> | caption of a table |
| <cite> | title of a work |
| <code> | used to display computer code |
| <col> | column properties for a table |
| <colgroup> | one or more columns for table formatting |
| <data> | links content to a machine-readable set of related data |
| <datalist> | list of options for a textfield (<input>) element |
| <dd> | description of a term or name to a <dl> element |
| <del> | deleted text |
| <details> | a control that can show and hide additional details |
| <div> | division or section |
| <dl> | description list |
| <dt> | term or name to a <dl> element |
| <em> | text that shows emphasis |
| <embed> | container for an external resource or plug-in |
| <fieldset> | related form elements and displays a box with a legend around |
| <figcaption> | caption to a <figure> |
| <figure> | self-contained content |
| <footer> | footer section on a page or a section of a page |
| <form> | data entry area that contains input elements |
| <h1>-<h6> | headers 1-6 |
| <head> | holds metadata elements |
| <header> | header section on a page or a section of a page |
| <hr> | horizontal rule representing a thematic change in content |
| <html> | root container for an HTML document |
| <i> | italic text |
| <iframe> | a frame in which another web page can be embedded |
| <img> | image |
| <input> | input field in which data can be entered |
| <ins> | inserted text |
| <kbd> | keyboard input often with CTRL SHIFT or ALT |
| <label> | label or brief description before input elements |
| <legend> | caption for <fieldset> |
| <li> | list item used in <ol><ul> |
| <link> | link to an external source |
| <main> | a container for the main content of the page |
| <map> | a client-side image map |
| <mark> | marks or highlights text |
| <meta> | metadata about the web page |
| <meter> | measurement control like a gauge |
| <nav> | container for navigation links |
| <object> | Embeds external objects in a page such as audio, video, image, or PDF |
| <ol> | numerically or alphabetically ordered list of items |
| <optgroup> | related options in a <select> |
| <option> | adds item to a <select> |
| <output> | output results of a calculation |
| <p> | paragraph or body text |
| <picture> | Adds images with a bit more flexibility than the <img> |
| <pre> | preformatted text in fixed-width font -- usually computer code |
| <progress> | control that displays progress of a task |
| <q> | short quotation in with quotation marks |
| <ruby> | Represents a small annotation with pronunciation of text |
| <samp> | displays sample output from computer code |
| <script> | adds JavaScript to a page server-side or client-side |
| <section> | piece of content that can stand on its own |
| <select> | dropdown control |
| <source> | adds a media source for a <video> <audio><picture> |
| <span> | container for one or more inline text elements |
| <strong> | important text |
| <style> | adds CSS style elements to a page |
| <sub> | subscript text; characters display lower and in smaller font |
| <summary> | heading that toggles <details> |
| <sup> | superscript text; characters display higher and in smaller font |
| <svg> | vector image |
| <table> | used to display tabular data with rows and columns |
| <tbody> | table body |
| <td> | table cell of data |
| <template> | hidden content holder that can be copied by JavaScript |
| <textarea> | multi-line text input |
| <tfoot> | table footer |
| <th> | table header cell |
| <thead> | header rows in a table |
| <time> | human-readable date/time item |
| <title> | page title that will display in the browser's tab |
| <tr> | table row with <th> or <td> elements |
| <track> | adds a text track such as subtitles or captions for media |
| <u> | underlined text |
| <ul> | unordered bulleted list of list items |
| <var> | defines its contents as a variable |
| <video> | video player |
| <wbr> | line-breaking |
| <!DOCTYPE> | defines the version of HTML; first line of an HTML document |
Block elements start on a new line and span across the width of the page
<address>
<article>
<blockquote>
<canvas>
<dd>
<div>
<dl>
<dt>
<fieldset>
<figcaption>
<figure>
<footer>
<form>
<h1-h6>
<hr>
<header>
<li>
<main>
<nav>
<noscript>
<ol>
<output>
<p>
<pre>
<section>
<table>
<tfoot>
<ul>
<video>
Inline elements start anywhere on a line and can share the width with other elements.
<a>
<abbr>
<b>
<bdo>
<big>
<br>
<button>
<cite>
<code>
<dfn>
<em>
<i>
<img>
<input>
<kbd>
<label>
<map>
<object>
<q>
<samp>
<script>
<select>
<small>
<span>
<sub>
<sup>
<strong>
<textarea>
<time>
<var>
Semantic elements give the page meaning.