Do you remember when HTML elements were classified into some broad categories like “block-level”, “inline” and “replaced” elements?
There were always issues with these categories as many elements did not fit neatly into any category.
In HTML5, a new set of content categories was introduced. These categories are used when defining the content models for each element.
Read the article.