Reasonable.html

Reasonable.html is a single HTML document that contains a reasonably complete set of example HTML elements. It includes most commonly used HTML elements and attempts to use them in common and expected ways.

Why does this exist?

Reasonable.html was purpose-built to test the classless CSS rules defined in reasonable.css.

Can I use this?

Reasonable.html is free software. The full source code is available and released here under the MIT License.

How might I use this?

Reasonable.html has two obvious uses:

  1. Testing browser default rendering of HTML elements
  2. Testing classless CSS rules for styling those HTML elements

Additionally, it might be useful when:

Who made this?

Reasonable.html was created by Matthew Howell, a human, trying his best.

Like everything in life, it couldn't exist without the help and generosity of others, find a full list of acknowledgements here.


Example HTML Elements

Reasonable.html includes examples of most HTML elments listed in Mozilla's HTML Element Reference, which mirrors the W3C HTML 5.2 specification. Each is presented below, ordered alphabetically.

There are also a handful of ommitted HTML elements, which are detailed here.




<a>

The HTML <a> element (or anchor element), with its href attribute, creates a hyperlink to web pages, files, email addresses, locations in the same page, or anything else a URL can address.
More at MDN →

Example

A paragraph of text which contains an anchor element.


<abbr>

The HTML Abbreviation element <abbr> represents an abbreviation or acronym; the optional title attribute can provide an expansion or description for the abbreviation.
More at MDN →

Example

A paragraph of text which contains an abbreviation element for the acronym laser.


<address>

The HTML <address> element indicates that the enclosed HTML provides contact information for a person or people, or for an organization.
More at MDN →

Example
123 Address St
Example Town, CA 12345
USA

<article>

The HTML <article> element represents a self-contained composition in a document, page, application, or site, which is intended to be independently distributable or reusable (e.g., in syndication).

Example
A Reasonable Article

A Reasonable Article is a tiny example <article> element that contains a reasonable set of other example elements. It was purpose-built for appearing within the example <article> element (hello!) in reasonable.html, which was purpose-built to test a set of classless CSS rules (reasonable.css).


<aside>

The HTML <aside> element represents a portion of a document whose content is only indirectly related to the document's main content.
More at MDN →

Example

Here is a paragraph that is primarily about dogs. There are more than 400 breeds of dogs.

Returning to the topic of dogs: to be considered a pack, three or more adult dogs are required.


<audio>

The HTML <audio> element is used to embed sound content in documents. It may contain one or more audio sources, represented using the src attribute or the element: the browser will choose the most suitable one. It can also be the destination for streamed media, using a MediaStream.
More at MDN →

Example
Kimiko Ishizaka playing J.S. Bach's BWV 988 (Piano) - 20 Variatio 19 a 1 Clav

<b>

The HTML Bring Attention To element <b> is used to draw the reader's attention to the element's contents, which are not otherwise granted special importance.
More at MDN →

Example

A paragraph of text which contains a bring attention to element.


<bdi>

The HTML Bidirectional Isolate element <bdi> tells the browser's bidirectional algorithm to treat the text it contains in isolation from its surrounding text.
More at MDN →

Example

A paragraph of text which contains a bidirectional isolate element

The Arabic word for Internet is الإنترنت.


<bdo>

The HTML Bidirectional Text Override element <bdo> overrides the current directionality of text, so that the text within is rendered in a different direction.
More at MDN →

Example

A paragraph of text which contains a left-to-right bidirectional text override element.

A paragraph of text which contains a right-to-left bidirectional text override element.


<blockquote>

The HTML <blockquote> Element (or HTML Block Quotation Element) indicates that the enclosed text is an extended quotation. Usually, this is rendered visually by indentation (see Notes for how to change it). A URL for the source of the quotation may be given using the cite attribute, while a text representation of the source can be given using the <cite> element.
More at MDN →

Example

Books aren’t just commodities; the profit motive is often in conflict with the aims of art. We live in capitalism, its power seems inescapable – but then, so did the divine right of kings. Any human power can be resisted and changed by human beings. Resistance and change often begin in art. Very often in our art, the art of words.


<button>

The HTML <button> element represents a clickable button, used to submit forms or anywhere in a document for accessible, standard button functionality.
More at MDN →

Example

<cite>

The HTML Citation element <cite> is used to describe a reference to a cited creative work, and must include the title of that work.
More at MDN →

Example

What I had to say to you, moreover, would not take long, to wit: Practice any art, music, singing, dancing, acting, drawing, painting, sculpting, poetry, fiction, essays, reportage, no matter how well or badly, not to get money and fame, but to experience becoming, to find out what’s inside you, to make your soul grow.

Seriously! I mean starting right now, do art and do it for the rest of your lives. Draw a funny or nice picture of Ms. Lockwood, and give it to her. Dance home after school, and sing in the shower and on and on. Make a face in your mashed potatoes. Pretend you’re Count Dracula.


<code>

The HTML <code> element displays its contents styled in a fashion intended to indicate that the text is a short fragment of computer code. By default, the content text is displayed using the user agent's default monospace font.
More at MDN →

Example

A paragraph of text which contains a code element.


<data>

The HTML <data> element links a given content with a machine-readable translation. If the content is time- or date-related, the

Example
WNBA Career Assist Leaders
  1. Sue Bird (2831)
  2. Ticha Penicheiro (2599)
  3. Lindsay Whalen (2345)
  4. Diana Taurasi (1867)
  5. Becky Hammon (1708)

<datalist>

The HTML <datalist> element contains a set of <option> elements that represent the permissible or recommended options available to choose from within other controls.
More at MDN →

Example

<del>

The HTML <del> element represents a range of text that has been deleted from a document.
More at MDN →

Example

A paragraph of text preceeding an <del> element.

A paragraph of text within a <del> element.

A paragraph of text following an <del> element.


<details>

Also: <summary>

The HTML Details Element <details> creates a disclosure widget in which information is visible only when the widget is toggled into an "open" state.
More at MDN →

Example
A summary element contained within a details element.
The contents of the details element.

<dfn>

The HTML Definition element (<dfn>) is used to indicate the term being defined within the context of a definition phrase or sentence. The <p> element, the <dt>/<dd> pairing, or the <section> element which is the nearest ancestor of the <dfn> is considered to be the definition of the term.
More at MDN →

Example

A human is a person; a human being, distinct from animals, aliens, and especially charming, life-like, humanoid robots.


<div>

The HTML Content Division element (<div>) is the generic container for flow content. It has no effect on the content or layout until styled using CSS.
More at MDN →

Example

A paragraph of text preceeding a div element.

A paragraph of text within a div element.

A paragraph of text following a div element.


<dl>

Also: <dd>, <dt>

The HTML <dl> element represents a description list. The element encloses a list of groups of terms (specified using the <dt> element) and descriptions (provided by <dd> elements). Common uses for this element are to implement a glossary or to display metadata (a list of key-value pairs).
More at MDN →

Example
Count to 10 in Esperanto
zero
nul
one
unu
two
du
three
tri
four
kvar
five
kvin
six
ses
seven
sep
eight
ok
nine
naŭ
ten
dek

<em>

The HTML <em> element marks text that has stress emphasis. The <em> element can be nested, with each level of nesting indicating a greater degree of emphasis.
More at MDN →

Example

A stressful paragraph of text which contains a stress emphasis element, which contains a nested stress emphasis element.


<fieldset>

Also: <label>, <legend>

The HTML <fieldset> element is used to group several controls as well as labels (<label>) within a web form.
More at MDN →

Example
Favorite moon phase






Favorite nocturnal animal

<figure>

Also: <figcaption>, <img>

The HTML <figure> (Figure With Optional Caption) element represents self-contained content, potentially with an optional caption, which is specified using the (<figcaption>) element.
More at MDN →

Example
A wooden bench, sitting on green grass, overlooking the Hudson River in Croton Point Park, NY under a bright, pale, blue sky.
A figcaption element as the last child of its containing figure element.

<footer>

The HTML <footer> element represents a footer for its nearest sectioning content or sectioning root element. A footer typically contains information about the author of the section, copyright data or links to related documents.
More at MDN →

Example
A footer element within its containing section element.

<form>

Also: <textarea>

The HTML <form> element represents a document section containing interactive controls for submitting information.
More at MDN →

Example
Send a message to a mythical water creature


  1. Mythical water creature




<h1>

The HTML <h1> elements represent six levels of section headings. <h1> is the highest section level and <h6> is the lowest.
More at MDN →

Example

An H1 Element

A paragraph of text following the h1 section heading.


<h2>

The HTML <h2> elements represent six levels of section headings. <h1> is the highest section level and <h6> is the lowest.
More at MDN →

Example

An H2 Element

A paragraph of text following the h2 section heading.


<h3>

The HTML <h3> elements represent six levels of section headings. <h1> is the highest section level and <h6> is the lowest.
More at MDN →

Example

An H3 Element

A paragraph of text following the h3 section heading.


<h4>

The HTML <h4> elements represent six levels of section headings. <h1> is the highest section level and <h6> is the lowest.
More at MDN →

Example

An H4 Element

A paragraph of text following the h4 section heading.


<h5>

The HTML <h5> elements represent six levels of section headings. <h1> is the highest section level and <h6> is the lowest.
More at MDN →

Example
An H5 Element

A paragraph of text following the h5 section heading.


<h6>

The HTML <h6> elements represent six levels of section headings. <h1> is the highest section level and <h6> is the lowest.
More at MDN →

Example
An H6 Element

A paragraph of text following the h6 section heading.


<header>

The HTML <header> element represents introductory content, typically a group of introductory or navigational aids. It may contain some heading elements but also a logo, a search form, an author name, and other elements.
More at MDN →

Example
A header element within its containing section element.

<hgroup>

The HTML <hgroup> element represents a multi-level heading for a section of a document. It groups a set of <h1> - <h6> elements.
More at MDN →

Example

An h1 element

An h2 element

An h3 element

A paragraph of text following an hgroup element.


<hr>

The HTML <hr> element represents a thematic break between paragraph-level elements: for example, a change of scene in a story, or a shift of topic within a section.
More at MDN →

Example

A paragraph of text preceeding an <hr> element.


A paragraph of text following an <hr> element.


<i>

The HTML Interesting Text element <i> represents a range of text that is set off from the normal text for some reason.
More at MDN →

Example

A paragraph of text which contains an interesting text element.


<iframe>

The HTML Inline Frame element (<iframe>) represents a nested browsing context, embedding another HTML page into the current one.
More at MDN →

Example

A paragraph of text preceeding an <iframe> element.

A paragraph of text following an <iframe> element.


HTML Input Element Types

The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.

<input[type=button]>

<input[type=button]> is a push button with no default behavior displaying the value of the value attribute, empty by default.
More at MDN →

Example


<input[type=checkbox]>

<input[type=checkbox]> is a check box allowing single values to be selected/deselected.
More at MDN →

Example

<input[type=color]>

<input[type=color]> is a control for specifying a color; opening a color picker when active in supporting browsers.
More at MDN →

Example

<input[type=date]>

<input[type=date]> is a control for entering a date (year, month, and day, with no time). Opens a date picker or numeric wheels for year, month, day when active in supporting browsers.
More at MDN →

Example

<input[type=datetime-local]>

<input[type=datetime-local]> is a control for entering a date and time, with no time zone. Opens a date picker or numeric wheels for date- and time-components when active in supporting browsers.
More at MDN →

Example

<input[type=email]>

<input[type=email]> is a field for editing an email address. Looks like a text input, but has validation parameters and relevant keyboard in supporting browsers and devices with dynamic keyboards.
More at MDN →

Example

<input[type=file]>

<input[type=file]> is a control that lets the user select a file. Use the accept attribute to define the types of files that the control can select.
More at MDN →

Example

<input[type=image]>

<input[type=image]> is a graphical submit button. Displays an image defined by the src attribute. The alt attribute displays if the image src is missing.
More at MDN →

Example

<input[type=month]>

<input[type=month]> is a control for entering a month and year, with no time zone.
More at MDN →

Example

<input[type=number]>

<input[type=number]> is a control for entering a number. Displays a spinner and adds default validation when supported. Displays a numeric keypad in some devices with dynamic keypads.
More at MDN →

Example

<input[type=password]>

<input[type=password]> is a control for entering a password. Displays a spinner and adds default validation when supported. Displays a numeric keypad in some devices with dynamic keypads.

Example

<input[type=radio]>

<input[type=radio]> is a radio button, allowing a single value to be selected out of multiple choices with the same name value.

Example




<input[type=range]>

<input[type=range]> is a control for entering a range. Displays a spinner and adds default validation when supported. Displays a numeric keypad in some devices with dynamic keypads.

Example

<input[type=search]>

<input[type=search]> is a single-line text field for entering search strings. Line-breaks are automatically removed from the input value. May include a delete icon in supporting browsers that can be used to clear the field. Displays a search icon instead of enter key on some devices with dynamic keypads.

Example


<input[type=submit]>

<input[type=submit]> is a button that submits the form.

Example

<input[type=tel]>

<input[type=tel]> is acontrol for entering a telephone number. Displays a telephone keypad in some devices with dynamic keypads.

Example

<input[type=text]>

<input[type=text]> is the default value. A single-line text field. Line-breaks are automatically removed from the input value.

Example

<input[type=time]>

<input[type=time]> is a control for entering a time value with no time zone.

Example

<input[type=url]>

<input[type=url]> is a field for entering a URL. Looks like a text input, but has validation parameters and relevant keyboard in supporting browsers and devices with dynamic keyboards.

Example

<input[type=week]>

<input[type=week]> is a control for entering a date consisting of a week-year number and a week number with no time zone.

Example

<ins>

The HTML <ins> element represents a range of text that has been added to a document.

Example

A paragraph of text preceeding an <ins> element.

A paragraph of text within an <ins> element.

A paragraph of text following an <ins> element.


<kbd>

The HTML Keyboard Input element <kbd> represents a span of inline text denoting textual user input from a keyboard, voice input, or any other text entry device. By convention, the user agent defaults to rendering the contents of a <kbd> element using its default monospace font, although this is not mandated by the HTML standard.

Example

Please press Cmd + R to re-render this page.

The previous paragraph contains two kbd elements, one representing the Command key and one representing the R key.


<li>

The HTML <li> element is used to represent an item in a list.

More at MDN →

Example
  1. Ordered
  2. List
  3. Items
  4. Including
    1. A Nested
    2. Ordered
    3. List
  5. And
    • A Nested
    • Unordered
    • List

<main>

The HTML <main> element represents the dominant content of the <body> of a document. The main content area consists of content that is directly related to or expands upon the central topic of a document, or the central functionality of an application.

More at MDN →

Example

A main element


<map>

Also: <area>

The HTML <map> element is used with <area> elements to define an image map (a clickable link area).

Example
Bird 1 Bird 2 Bird 3 Bench Through the Park
Illustration by Katerina Limpitsouni on unDraw.

<mark>

The HTML Mark Text element <mark> represents text which is marked or highlighted for reference or notation purposes, due to the marked passage's relevance or importance in the enclosing context.

Example

Some paragraph of text that includes a mark element to highlight some of the text.


<meter>

The HTML <meter> element represents either a scalar value within a known range or a fractional value.

More at MDN →

Example
Orion III
at 87/100
at 64/100

<nav>

The HTML <nav> element represents a section of a page whose purpose is to provide navigation links, either within the current document or to other documents. Common examples of navigation sections are menus, tables of contents, and indexes.

More at MDN →

Example

<ol>

The HTML <ol> element represents an ordered list of items — typically rendered as a numbered list.

More at MDN →

Example
All-Time Best Chess Elo Ratings
  1. Magnus Carlsen (2882)
  2. Garry Kasparov (2851)
  3. Fabiano Caruana (2844)
  4. Levon Aronian (2830)
  5. Wesley So (2822)
  6. Shakhriyar Mamedyarov (2820)
  7. Maxime Vachier-Lagrave (2819)
  8. Viswanathan Anand (2817)
  9. Vladimir Kramnik (2817)
  10. Veselin Topalov (2816)
  11. Hikaru Nakamura (2816)
  12. Ding Liren (2816)

<optgroup>

The HTML <optgroup> element creates a grouping of options within a <select> element.

More at MDN →

Example

<option>

The HTML <option> element is used to define an item contained in a <select>, an <optgroup>, or a <datalist> element. As such, <option> can represent menu items in popups and other lists of items in an HTML document.

More at MDN →

Example

<output>

The HTML Output element <output> is a container element into which a site or app can inject the results of a calculation or the outcome of a user action.

More at MDN →

Example
Word counter

You have typed 0 words.

<p>

The HTML <p> element represents a paragraph.

More at MDN →

Example

<p> element within <section> element.

Followed by a second <p> element.


<picture>

Also: <source>

The HTML <picture> element contains zero or more <source> elements and one <img> element to offer alternative versions of an image for different display/device scenarios.

Example
A wave crashing on the shore in Cape Henlopen State Park, DE.
This example uses the picture element to display a higher resolution image to wider viewports (> 600 pixels).

<pre>

The HTML <pre> element represents preformatted text which is to be presented exactly as written in the HTML file.

Example
A pre element for preformatted text
	With an indented second line

<progress>

The HTML <progress> element displays an indicator showing the completion progress of a task, typically displayed as a progress bar.

More at MDN →

Example
70%

<q>

The HTML <q> element indicates that the enclosed text is a short inline quotation. Most modern browsers implement this by surrounding the text in quotation marks.

Example

Eugene Debs, on September 18, 1918, was sentenced to 10 years in prison and disenfranchised. Speaking to the federal judge at his trial: Your Honor, years ago I recognized my kinship with all living beings, and I made up my mind then that I was not one bit better than the meanest on earth. I said then, and I say now, that while there is a lower class, I am in it; and while there is a criminal element, I am of it; and while there is a soul in prison, I am not free.


<ruby>

Also: <rp>, <rt>,

The HTML <ruby> element represents a ruby annotation. Ruby annotations are for showing pronunciation of East Asian characters.

Example
花より団子 (Dumplings rather than flowers)

<s>

The HTML <s> element renders text with a strikethrough, or a line through it. Use the <s> element to represent things that are no longer relevant or no longer accurate. However, <s> is not appropriate when indicating document edits; for that, use the <del> and <ins> elements, as appropriate.

Example

Here is strikethrough element rendered within an enclosing paragraph


<samp>

The HTML Sample Element <samp> is used to enclose inline text which represents sample (or quoted) output from a computer program.

Example

A preceeding paragraph of text:

Some text within the samp element


<section>

The HTML <section> element represents a standalone section — which doesn't have a more specific semantic element to represent it — contained within an HTML document.
More at MDN →

Example

A section element


<select>

The HTML <select> element represents a control that provides a menu of options.
More at MDN →

Example

<small>

The HTML <small> element represents side-comments and small print, like copyright and legal text, independent of its styled presentation. By default, it renders text within it one font-size smaller, such as from small to x-small.
More at MDN →

Example

A preceeding paragraph of text and then some text within the small element followed by some additional text.


<span>

The HTML element is a generic inline container for phrasing content, which does not inherently represent anything. It can be used to group elements for styling purposes (using the class or id attributes), or because they share attribute values, such as lang.
More at MDN →

Example

A preceeding paragraph of text and then some text within the span element followed by some additional text.


<strong>

The HTML Strong Importance Element <strong> indicates that its contents have strong importance, seriousness, or urgency. Browsers typically render the contents in bold type.
More at MDN →

Example

Some paragraph of text that includes a strong importance element.


<sub>

The HTML Subscript element () specifies inline text which should be displayed as subscript for solely typographical reasons.
More at MDN →

Example

A preceeding paragraph of text and then some text within the sub element followed by some additional text.


<sup>

The HTML Superscript element (<sup>) specifies inline text which is to be displayed as superscript for solely typographical reasons.
More at MDN →

Example

A preceeding paragraph of text and then some text within the sup element followed by some additional text.


<table>

Also: <caption>, <col>, <colgroup>, <tbody>, <td>, <tfoot>, <th>, <thead>, <tr>

The HTML <table> element represents tabular data — that is, information presented in a two-dimensional table comprised of rows and columns of cells containing data.
More at MDN →

Example
A table caption element
th 1 th2 th3 th2 th2
  Batman Robin The Flash Kid Flash
Skill Smarts Dex, acrobat Super speed Super speed
Footer content 1 Footer content 2

<time>

The HTML <time> element represents a specific period in time.
More at MDN →

Example

At on 64-bit Unix timestamps will no longer work. We have a little more than thirteen billion years to solve the problem.


<u>

The HTML Unarticulated Annotation Element (<u>) represents a span of inline text which should be rendered in a way that indicates that it has a non-textual annotation.
More at MDN →

Example

A paragraph of text which contains an unarticulated annotation element.


<ul>

The HTML <ul> element represents an unordered list of items, typically rendered as a bulleted list.
More at MDN →

Example
Crewed Spacecraft
  • Vostok (1961–1963)
  • Mercury (1961–1963)
  • X-15 (1962–1968)
  • Voskhod (1964–1965)
  • Gemini (1965–1966)
  • Soyuz (1967)
  • Apollo (1968–1975)
  • Space Shuttle (1981–2011)
  • Shenzhou (2003)
  • SpaceShipOne (2004)
  • SpaceShipTwo (2018)
  • Crew Dragon (2020)

<var>

The HTML Variable element (<var>) represents the name of a variable in a mathematical expression or a programming context.
More at MDN →

Example

Euler's identity: eiπ + 1 = 0


<video>

The HTML Video element <video> embeds a media player which supports video playback into the document. You can use <video> for audio content as well, but the <audio> element may provide a more appropriate user experience.
More at MDN →

Example
An video element with controls

<wbr>

The HTML <wbr> element represents a word break opportunity—a position within text where the browser may optionally break a line, though its line-breaking rules would not otherwise create a break at that location.
More at MDN →

Example

A paragraph of text which contains a very, very long word: Lopadotemachoselachogaleokranioleipsanodrimhypotrimmatosilphioparaomelitokatakechymenokichlepikossyphophattoperisteralektryonoptekephalliokigklopeleiolagoiosiraiobaphetraganopterygon

A paragraph of text which contains the same very, very long word, with word break opportunity elements after each p: Lopadotemachoselachogaleokranioleipsanodrimhypotrimmatosilphioparaomelitokatakechymenokichlepikossyphophattoperisteralektryonoptekephalliokigklopeleiolagoiosiraiobaphetraganopterygon


Omitted Elements

Reasonable.html omits a handful of HTML elements, the reason for each omission is stated here. Mostly though, since it was built to test CSS rules, elements which need no styling were not included.

If you disagree with any of the omissions, please file an issue and make your case.


👏 Acknowledgements, Credits, and Thanks

MDN Web Docs

The HTML element descriptions and a few of the examples on this page are all from the essential MDN HTML Elements Reference. They are licensed here under Attribution-ShareAlike 2.5 Generic (CC BY-SA 2.5). The original work by Mozilla Contributors is licensed under the same CC-BY-SA 2.5.

Anyone can donate to Mozilla here.

Katerina Limpitsouni and Undraw

The SVG illustration used in the <map> element is from the contagiously generous Katerina Limpitsouni, available for use, for free at unDraw.

Kimiko Ishizaka and Open Goldberg Variations

The music file used in the <audio> element example is a performance by Kimiko Ishizaka for the Open Goldberg Variations. The project's stated and accomplished goal was to create a public domain recording and score of J.S. Bach's masterpiece, Die Goldberg Variationen.

Anyone can download or purchase the album here.

Eadweard Muybridge and Wikipedia

The moving image used in the <video> element was created in June of 1877 by Eadweard Muybridge using 12 cameras, the shutters tripped by wire, in Palo Alto, California. You can read more about it on on Wikipedia or download the video file here.

Anyone can donate to Wikipedia here.

Other works

All photographs are from Matthew Howell, available for use, for free at Unsplash.