Difference between tag and element in HTML

Definition of HTML tag and HTML element

(Some links on this page take you to details in the HTML Tag Reference. Bookmark this page in your Favorites so you can come back to it later.)

A tag in HTML is a representation of an element in the serialized form of an HTML document. A start tag or empty tag contains a <, the element name, one or more optional attribute name/value pairs separated from the element name and other attributes by whitespace and ends with either >, or with /> for a self-closing standalone tag such as <br/>, which is the break tag in HTML. An end tag contains just </, the tag name and >, for example </html> which is the </html> end tag.

An element is an object in the hierarchical model of a document. It always has an element name and may also have properties and/or child elements. The difference between an element and a tag is that an "element" is a more abstract representation of a node in the hierarchical structure of an HTML document that encompasses its attributes, child elements and other content such as text and CDATA sections. In an actual document, an element is explicitly represented by either a start tag and an end tag or closing tag enclosing its child elements and other content, if any, or simply by a standalone empty tag if it has no content. In some cases, an element is implied even when the corresponding tag does not appear in the document. A good example of this is the tbody element, which is often an implied element between a <table> tag and a <tr> table row tag.

Therefore, the term tag is normally used when referring to the mark up in the serialized form of an HTML document and the term element typically refers to the internal representation of an HTML object as a node in the document's hierarchical object model, encompassing all of its descendants.

Style of tags and elements on this site

In an HTML document's serialized form, the name of a tag can be easily recognized because it will always be preceded by a left angle bracket ("<"), if it's a start tag or a standalone tag, or the by the characters "</" if it's an end tag. On this site, an element name with these characters and an ending delimiter (">" or "/>") indicates that the serial representation of the element is being discussed. These delimiters will only be used when discussing HTML tags, since they are used to delimit HTML code from other text in the serialized form of HTML documents.

The term element refers to a node, along with any descendants, in the hierarchical object model of the abstract representation of an HTML document, used internally by an HTML parser. On this site, an element name without the angle bracket delimiters ("<", ">", "</" or "/>") indicates that the representation of the element in the abstract object model is being discussed.