www.w3.org/TR/html401/struct/text.html#h-9.3.1
The P element represents a paragraph. It cannot contain block-level elements (including P itself).
Ужас. Вот что значит век живи век учись))))
А ведь по рунету кругом ходят тексты:
Блочные элементы могут содержать строчные элементы и другие блочные элементы, для которых их родитель будет являться контейнером.
(itchief.ru)
Блочные элементы могут содержать внутри себя элементы любого типа. Нельзя размещать блочные элементы внутри строчных, за исключением элемента img.
(html5book.ru)
HTML с CSS изучал на русском, JS и PHP - на английском. Видимо, придётся html с css переучивать :D