What elements can be contained within a <a> tag?
What are the valid html elements, if any, that can be contained within a <a>
tag?
As of HTML 5, <a>
may contain not only (valid) inline elements, but also block elements, etc.
W3: http://dev.w3.org/html5/markup/a.html
Inline elements ( a, span, strong, em
among others ) can contain other inline elements and text nodes. An anchor can contain a span, which can contain a text node.
Generally, block-level elements may contain inline elements and other block-level elements. Generally, inline elements may contain only data and other inline elements. Inherent in this structural distinction is the idea that block elements create "larger" structures than inline elements.
From http://www.w3.org/TR/html401/struct/global.html
As noted in other answers, you can't nest an a
in an a
.
An <a>
tag can contain any Inline Element besides another <a>
tag.
See the anchor section of the specification.
<!ELEMENT A - - (%inline;)* -(A) -- anchor -->
The relevant section is (%inline;)* -(A)
, which means "Anything in the group %inline excluding A elements". %inline is hyperlinked to make it easier for you to expand it.
It can contain plain text and inline elements. Inline elements are following:
TT | I | B | BIG | SMALL | EM | STRONG | DFN | CODE | SAMP |
KBD | VAR | CITE | ABBR | ACRONYM | A | IMG | OBJECT | BR |
SCRIPT | MAP | Q | SUB | SUP | SPAN | BDO
But A
can not be nested in another A
and nesting SCRIPT
doesn't make senese.