цитата из стандарта HTML 4:
The P element represents a paragraph. It cannot contain block-level elements (including P itself).
А поскольку абазац
не может содержать в себе блочные элементы, то он автоматически перед ними закрывается, невзирая на то, что именно вы имели в виду, когда писали
abc
def
ghj
В результате h5 не
внутри, а
после. И перенос строки, с которым вы боролись, принадлежит не h5, а p. Вот с этой стороны и надо подходить...
P.S. а вообще сходите на w3c.org и скачайте там полное описание CSS2 и HTML 4. От них обычно больше пользы, чем от форумов.
И еще вот что - поставьте Мозиллу. В ней есть DOM Inspector, который умеет показывать границы элементов, их CSS-описание, и прочее, что может понадобиться веб-разработчику.