Template:Short description Template:For Template:Redirect Template:Redirect Template:Use American English

Template:Html series

An HTML element is a type of HTML (HyperText Markup Language) document component, one of several types of HTML nodes (there are also text nodes, comment nodes and others).Template:Vague The first used version of HTML was written by Tim Berners-Lee in 1993 and there have since been many versions of HTML. The current de facto standard is governed by the industry group WHATWG and is known as the HTML Living Standard.

An HTML document is composed of a tree of simple HTML nodes, such as text nodes, and HTML elements, which add semantics and formatting to parts of a document (e.g., make text bold, organize it into paragraphs, lists and tables, or embed hyperlinks and images). Each element can have HTML attributes specified. Elements can also have content, including other elements and text.

ConceptsEdit

File:HTML element content categories.svg
HTML element content categories

Elements vs. tagsEdit

As is generally understood, the position of an element is indicated as spanning from a start tag and is terminated by an end tag.<ref name="HTML401_Elements">{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> This is the case for many, but not all, elements within an HTML document. The distinction is explicitly emphasised in HTML 4.01 Specification: Template:Quote Similarly the W3C Recommendation HTML 5.1 2nd Edition explicitly says: Template:Quote and: Template:Quote


As HTML (before HTML5) is based on SGML,<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> its parsing also depends on the Document Type Definition (DTD), specifically an HTML DTD (e.g. HTML 4.01<ref name="W3C, HTML 401 DTD" >{{#invoke:citation/CS1|citation |CitationClass=web

}}</ref>Template:Refn). The DTD specifies which element types are possible (i.e. it defines the set of element types) and also the valid combinations in which they may appear in a document. It is part of general SGML behavior that, where only one valid structure is Template:Em (per the DTD), its explicit statement in any given document is not generally required. As a simple example, the <syntaxhighlight lang="html" class="" style="" inline="1">

</syntaxhighlight> tag indicating the start of a paragraph element should be complemented by a <syntaxhighlight lang="html" class="" style="" inline="1">

</syntaxhighlight> tag indicating its end. But since the DTD states that paragraph elements cannot be nested, an HTML document fragment <syntaxhighlight lang="html" class="" style="" inline="1">

Para 1

Para 2

Para 3</syntaxhighlight> is thus inferred to be equivalent to <syntaxhighlight lang="html" class="" style="" inline="1">

Para 1

Para 2

Para 3</syntaxhighlight>. (If one paragraph element cannot contain another, any currently open paragraph must be closed before starting another.) Because this implication is based on the combination of the DTD and the individual document, it is not usually possible to infer elements from document tags Template:Em but only by using an SGML—or HTML—aware parser with knowledge of the DTD. HTML5 creates a similar result by defining what tags can be omitted.<ref name=whatwg-syntax-tag-omission>{{#invoke:citation/CS1|citation

|CitationClass=web }}</ref>

SGML vs. XMLEdit

SGML is complex, which has limited its widespread understanding and adoption. XML was developed as a simpler alternative. Although both can use the DTD to specify the supported elements and their permitted combinations as document structure, XML parsing is simpler. The relation from tags to elements is always that of parsing the actual tags included in the document, without the implied closures that are part of SGML.Template:Refn

HTML as used on the current web is likely to be either treated as XML, by being XHTML, or as HTML5; in either case the parsing of document tags into Document Object Model (DOM) elements is simplified compared to legacy HTML systems. Once the DOM of elements is obtained, behavior at higher levels of interface (example: screen rendering) is identical or nearly so.Template:Refn

%block; vs. boxEdit

Part of this CSS presentation behavior is the notion of the "box model". This is applied to those elements that CSS considers to be "block" elements, set through the CSS <syntaxhighlight lang="css" class="" style="" inline="1">display: block;</syntaxhighlight> declaration.

HTML also has a similar concept, although different, and the two are very frequently confused. %block; and %inline; are groups within the HTML DTD that group elements as being either "block-level" or "inline".<ref name="W3C, HTML 4.01, block and inline" >{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> This is used to define their nesting behavior: block-level elements cannot be placed into an inline context.Template:Refn This behavior cannot be changed; it is fixed in the DTD. Block and inline elements have the appropriate and different CSS behaviors attached to them by default,<ref name="W3C, HTML 4.01, block and inline" /> including the relevance of the box model for particular element types.

Note though that this CSS behavior can, and frequently is, changed from the default. Lists with <syntaxhighlight lang="html" class="" style="" inline="1">