HTML element

Source: Wikipedia, the free encyclopedia.

This is an old revision of this page, as edited by 62.252.0.4 (talk) at 23:27, 4 April 2004 (content migrated from HTML tag). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

In computing, an HTML element (instance) in terms of SGML is the complete sequence of a start tag (with attributes and their values), any embedded HTML content, and the end tag. A special case is empty elements that don't have contents and end tags. Due to the constraints of the DTDs, various parts, including start and end tag, may be omitted in HTML, but not XHTML.

The entire element is sometimes called a "tag", to the consternation of some purists. This is an example of synecdoche.

"Nesting"

Most but not all HTML elements can be "nested": <p><em>You</em>rock!</p> has an EM elemenent nested inside a P element. This can become more complex, for example <h1>Children that <em>do <font color="red">not</font> clean up<em> their rooms</h1>. Nesting may be arbitrarily deep.

It is important to remember that a so-called 'block-level' element cannot be nested inside another block-level element, and that tags must be closed in the reverse order that they've been opened.

Wrong: <p><font face="Tahoma">Lucy kissed <em>Jimmy</p></font></em>

Right: <p><font face="Tahoma">Lucy kissed <em>Jimmy</em></font></p>

Basic tags

All HTML documents must start with the Document Type Definition or DTD. This is one of the following:

  • <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
           "http://www.w3.org/TR/html4/strict.dtd">
Use for documents which completely follow the standard. This triggers standards-compliant rendering in modern web browsers.
  • <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
           "http://www.w3.org/TR/html4/loose.dtd">
Use if you use deprecated tags (such as <B>). This typically triggers a bugwards-compatible rendering mode in modern web browsers, which breaks some parts of the standard.
  • <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
           "http://www.w3.org/TR/html4/frameset.dtd">
Use only if your page is a frameset.
<html>, </html>

Delimit a HTML document (i.e. instead of an XML or another class document).

<head>, </head>

Delimit the header section of the document, which contains information about the page.

<body>, </body>

Delimit the body section of the document, which contains the displayed content of the page.

Header tags

<title>, </title>

Delimit the page title. Depending on the user agent and the operating system it is rendered in various ways: in web browsers it is usually displayed in the browser's title bar; in the task bar when the window has been minimized; it can be taken as default for the name of the file when saving the page, etc.. The title element is special in that it cannot contain any other tags: all tags in the title must be rendered as if they are text. So <title>My <b>first</b> webpage</title> will render as "My <b>first</b> webpage", and not "My first webpage". Keep this in mind.

<meta>, </meta>

This tag has many uses: it can be used to specify a page description, keywords, and the special form <meta http-equiv="foo"> is used to specify commands which should be sent as HTTP headers.

<link>, </link>

Specifies any link types for the document, such as previous and next links, or alternate versions. Its most common use is to link an external stylesheet to the page.

<base> (XHTML: <base />) DEPRECATED

Specifies base values for links, such as location or target.

<isindex> (XHTML: n/a) DEPRECATED

Used to create a primitive search on specially configured servers. Do not use this tag.

<script>, </script>

Used to include Javascript or other scripts in the document.

<style>, </style>

Used to associate inline stylesheets with the document.

Body tags

The following are block level elements:

Headings

<h1></h1>, <h2></h2>, <h3></h3>, <h4></h4>, <h5></h5>, <h6></h6>

Section headings at different levels. Use H1 for a high-level heading (for example the document title), H2 for a lower-level heading (a major section), H3 for a level below that (for example a subsection), etc.. The lowest level heading is H6. Most webbrowsers will show H1 as large text in a different font, and H6 as small boldfaced text, but this can be overridden with CSS. Do not use Hn to get big text.

Text containers

<p>, </p>

Create a paragraph.

<blockquote>, </blockquote>

Create a block quotation; conventionally displayed indented, but not to be misused to indent text. May have automatically generated quotes. The "cite" attribute may give the source, and must be a fully qualified URL.

<pre>, </pre>

Preformatted text. (Text will be displayed in a non-proportional font exactly as it is laid out in the file). See : ASCII art. With CSS: {white-space: pre;}

<address>, <address>

Use to markup address information.

Lists

<dl>, </dl>

Creates a definition list (consisting of definition terms paired with definitions). Can also be used to specify speakers and quoted text.

<dt>, </dt>
Creates a definition term.
<dd>, </dd>
Creates a definition.
<ol>, </ol>

Creates an ordered (numerated) list. The 'type' attribute can be used to specify the kind of ordering, but CSS gives more control. {list-style-type: foo;}. Default is Arabic numbering.

<ul>, </ul>

Creates an unordered list. CSS can be used to specify the list marker: { list-style-type: foo}. Default is a disc.

<li>, </li>
Creates a list item in ordered and unordered lists.
<dir>, </dir> DEPRECATED

Delimits a directory listing. Don't use, use <ul> instead.

<menu>, </menu> DEPRECATED

Creates a menu listing. Should be more compact than an <ul> list, but badly supported. Use <ul> instead.

Tables

<table>, </table>

Creates a table

<tr>, </tr>
Creates a row in the table.
<th>, </th>
Creates a table header cell within a row; contents are conventionally displayed bold and centered. An aural user agent may use a louder voice for these items.
<td>, </td>
Creates a table content cell within a row.
<colgroup>, </colgroup>
Specifies a column group in a table.
<col> (<col /> in XHTML)
Specifies attributes for an entire column in a table.
<caption>, </caption>
Specifies a caption for the entire table.
<thead>, </thead>
Specifies the header part of a table. This section may be repeated by the user agent if the table is split across pages (in printing or other paged media).
<tbody>, </tbody>
Specifies the main part of a table.
<tfoot>, </tfoot>
Specifies the footer part of a table. Like <thead>, this section may be repeated by the user agent if the table is split across pages (in printing or other paged media)

Forms

Note: HTML can only specify the form appearance; processing of the user's input must be done with a server-side script.

<form>, </form>

Creates a form.

<select name="foo">, </select>
Create a menu list, from which the user can select a single option. May be rendered as a dropdown menu.
<option>, </option>
Creates a menu item in a menu list.
<input type="checkbox">
Creates a checkbox.
<input type="radio">
Creates a radio button; if multiple radio buttons are given the same name, the user will only be able to select one of them.
<input type="submit" value="NAME">
Creates a send button.
<input type="image" border=0 name="NAME" src="name.gif">
Creates a send button using a image.
<input type="reset">
Creates a reset button (that resets the form to its default values).
<input type="text">
Creates a one-line text area. Size sets the long dimension in character-widths. Maxlength sets the maximum number of characters the user can enter (which may be greater than size).
<textarea>, </textarea>
Create a multiple-line text area specified by "cols" and "rows" attributes. Text in between the tags appears in the text area when the page is loaded.

Other containers

<div>, </div>

Creates a logical page division. Mainly for use with CSS.

<center>, </center> DEPRECATED

Creates a centered division. May also center-align all text. Don't use, use <div align="center"> instead.

<hr> (<hr /> in XHTML)

Inserts a horizontal rule.

<object>, </object>

Includes an object in the page of the type specified by the type attribute. This may be any MIME Type the webbrowser understands, such as an embedded page (see <iframe>), a plug-in such as Flash, or a soundfile.

<param> (XHTML: <param />)
This tag may only appear inside Object, and sets parameters for the object. For example width, height, or the URL of the content.
<embed>, </embed> UNOFFICIAL

Calls a plug-in handler for the type specified by the type attribute. Used for embedding Flash files, soundfiles etc.. Use <object> instead.

<noembed>, </noembed> UNOFFICIAL
Specifies alternative content, if the embed cannot be rendered.
<applet>, </applet< UNOFFICIAL

Includes a Java applet in the page. Use <object> insstead.

<param> (XHTML: <param />)
See above.


The following are inline elements:

Logical markup

<em>, </em>; <strong>, </strong>

Emphasis (conventionally displayed in italics) and strong emphasis (conventionally displayed bold). An aural user agent may use different voices for emphasis.

<q>, </q>

A short inline quotation. This should be rendered with generated quote marks. Quotes may be nested, in which case quote marks should be correct for the document language. The "cite" attribute gives the source, and must be a fully qualified URL.

<code>, </code>

A code snippet. This may be rendered centered and with a monospace font.

<del>, </del>

Deleted text. Typically rendered with a line through the text.

<ins>, </ins>

Inserted text. Often used to markup replacement text for <del>'d text. Typically rendered underlined.

<dfn>, </dfn>; <samp>, </samp>; <kbd>, </kbd>; <var>, </var> DEPRECATED

Definition, Sample Text, Keyboard Input, Variable: do not use any of these tags, but use <code> instead.

Presentational markup

All presentational tags are deprecated, Cascading Style Sheets (CSS) should be used instead. Both are shown below, use CSS!

<font>, </font>

Sets font sizes in seven intervals using the "size" attribute from 1 to 7. Can also be used to set the text color using the "color" attribute, and to change the font used by the "face" attribute. Preferred usage is through CSS.

  • <font size="N"> corresponds to {font-size: Ypx;} (there is no set mapping of N to Y values);
  • <font color="foo"> corresponds to {color: foo;};
  • <font face="foobar"> corresponds to {font-family: foobar;}
<b>, </b>

Use boldface type. Preferred usage is through CSS: {font-weight: bold;}

<i>, </i>

Use italic type. With CSS: {font-style: italic;}

<tt>, </tt>

Use a typewriter-like (fixed-width) font. With CSS: {font-family: monospace;}

<s>, </s>; <strike>, </strike>

Create strike-through text. With CSS: {text-decoration: line-through;}

<big>, </big>; <small>, </small>

Creates bigger/smaller text. With CSS: {font-size: foo;}

<sub>, </sub>; <sup>, </sup>

Create subscript or superscript text. With CSS: {vertical-align: sub;} or {vertical-align: super;}

Links and anchors

<a>, </a>

Creates an element that becomes a hyperlink with the "href" attribute set to a URL and becomes an anchor with the "name" attribute set, which preceded by a hash sign acts as a link target. Any element can be made into an anchor by using the 'id' attribute, so using <a name="foo"> is not necessary.

Images

<img> (<img /> in XHTML)

Includes an image with the "src" attribute, the required "alt" provides alternative text in case the image cannot be displayed. Alt is NOT a tooltip, use the "title" attribute for that.

Example: <img src="http://en.wikipedia.org/upload/wiki.png">

Others

<br> (<br /> in XHTML)

Specifies a line-break. Can also be done with CSS: {break: left|right|all}

<map>, </map>

Specifies a client-side image map.

<area> (<area /> in XHTML)
Specifies an area in the map.
<blink>, </blink> UNOFFICIAL

Causes text to blink. One of the two most hated tags in HTML. Can be done with CSS: {text-decoration: blink;}

<marquee>, </marquee> UNOFFICIAL

Creates scrolling text. The other most hated tag in HTML. No equivalent with CSS, use scripting instead.

<!--, -->

Creates a comment. This is an SGML tag and not limited to HTML, and as such it may appear anywhere in the document, even before the DTD or after </html>. Its contents and any tags inside it should not be rendered and will remain invisible. Do not forget to close your comments, or a large part of your page may disappear. For historic reasons (compatibility with some pre-1995 browsers) SGML comments are sometimes used inside <style> or <script> tags, but this is not necessary and may in fact cause undesired effects.

Frames

Note: a HTML document may contain a header and a body or a header and a frameset, but not both. For frames the Frames DTD must be used.

<frameset>, </frameset>

Delimit the frameset. The frames layout is giving by comma separated lists in the "rows" and "cols" attributes.

<frame>, </frame>
Delimit a single frame - or region - within the frameset. A different document linked with the "src" attribute appears inside.
<noframes>, </noframes>
Contains a normal <body> element with children what will appear in web browsers that don't support frames.

See also Framing#Websites.

External links