Only inline elements may be contained within inline elements. span
is an inline element. So, tags like a
, img
, sup
, etc. can go within a span, but block level elements like div
and p
cannot.
UPDATE
In reality, different elements which default to inline display behave differently. Some "inline" elements may allow block elements (a
for example), while others don't (like span
).
If you're interested in what an HTML tag may contain, your most official source is the WHATWG page on HTML elements. You can check any HTML element and see what content is permitted (see 'Content Model' for each element):
http://www.whatwg.org/specs/web-apps/current-work/multipage/#auto-toc-4
Here's the definition of the span tag, which indicates that only 'phrasing' content is allowed.
http://www.whatwg.org/specs/web-apps/current-work/multipage/text-level-semantics.html#the-span-element
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…