Why should we not place block elements inside inline elements

html, validation

Solution

If I place a div element inside an anchor element, it invalidates my HTML.

This is not true as of HTML5.

What is the reason of not placing block level elements inside inline elements?

The HTML specification describes which elements may contain other elements. "Flow content" can often contain "Flow Content", or "Phrasing Content", but even this is not always the case. For example, a `p` element is a block level element, but it may only contain "Phrasing Content".

Problem

If I place a div element inside an anchor element, it invalidates my HTML. What is the reason of not placing block level elements inside inline elements ?

Original source

Related problems