Can <span> tags have any type of tags inside them?
HtmlXhtmlHtml Problem Overview
Are tags such as <div>
, <form>
, <pre>
etc.. allowed inside a <span>
?
Html Solutions
Solution 1 - Html
The span
element is an inline element, which should contain only other inline elements and no block elements.
From the spec:
> 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.
The generic block-level grouping element is the div
. The generic inline-level grouping element is the span
.
Again, from the spec:
> The DIV and SPAN elements, in > conjunction with the id and class > attributes, offer a generic mechanism > for adding structure to documents. > These elements define content to be > inline (SPAN) or block-level (DIV) but > impose no other presentational idioms > on the content.
Solution 2 - Html
According to the HTML Living Standard, the content model for SPAN elements is "Phrasing content".
Read about the SPAN element here.
Read about phrasing content here. This second link contains a full list of all the elements that can be put inside a SPAN element.