Andy Dingley wrote:
There are no "block tags" in HTML. There are elements that can (or
cannot) contain "block" elements, and there are elements that may (or
may not) behave as "block" elements. However the "inside and outside"
behaviour is independent. For some elements like <spanor <div>
they're the same - they both can contain the same thing as they
themselves are. For <pthough it behaves like a "block" element when
you're using it, but it can't itself _contain_ other "block" elements.
You can nest <div>s and you can nest <span>s, but you can't nesst <p>s.
Is not the OP's problem was with:
....
<li><p>structured network components</p></li>
....
? I did not go to the Validator, so not sure at all, but that seems the
only anyhow questionnable construct.
In application to P tag it is a fancy matter, because originally the
Man did it as *paragraph break*, so there were line break BR and
paragraph break P (without closing tag in both cases). I said "there
were" but actually they still are. This did not prevent the Man to
become Sir :-) but W3C had a very hard time later to describe P in
terms of a block element with closing tag and at the same time to make
sure that a standard-compliant UA will not break on legacy pages where
P is nothing but "big BR". That is why by the amount of notes, mentions
and clarifications P has all times leadership among HTML tags in W3C
papers.
The final compromise was that P is a block element with closing tag but
it automatically ends up (closes up) before any other block element.
That is of course a weird behavior but seems as an overall smart
decision given that they had to incorporate cases like
Paragraph 1
<p>
Paragraph 2
<p>
Paragraph 3
(a legacy page with "paragraph breaks")
and
<p>Paragraph 1</p>
<p>Paragraph 2</p>
<p>Paragraph 3</p>
(current style)