The main intent of SGML (and the derivative HTML language) is to be a
device independent language for describing the content of documents. To
accomplish this, it tries to divorce presentation rules from document
content. Simple Block Formatting elements all introduce line-breaking
behavior to their display while also assigning a semantic purpose
to the content.
Block Formatting in HTML provides the means to render content in sections
that are distinct both physically and often visually from other
surrounding sections and content. Browsers should render Block Formatted
sections with an implied line break before and after the content block in
addition to any other styles applied. Character
Formatting (the other main content formatting class of elements), on
the other hand, will render content changes in-place.
Other HTML element groupings also exhibit "Block" nature
similar to that of the Block Formatting elements. All
lists, table and
form structures have the basic linebreaking
behavior that is characteristic of Block Formatting in order to produce
distinct regions of content. Discussion of these topics is best separated
from Block Formatting concepts because these other element groupings are not
meant to assign a simple semantic style to the content.
The introduction of Style Sheets has added two new HTML elements to
allow for generic situations where no specific HTML markup would
be appropriate. The DIV element (and its companion
Character Formatting element SPAN) carry no
inherent semantic meaning assigned to its structure - the author can
assign Style Sheet presentation properties as needed. Of course there is
one inherent property given to DIV - the implied linebreak
before and after its content.
I only recently decided to place these elements in this section,
having moved them from the 'miscellaneous' section. These elements were
created by the browser companies and are not supported in any HTML standard
(nor are they ever likely to be), but they do exhibit the requirements
necessary to be called Block Formatting elements. They define blocks of
content, usually have some semantic meaning, and have an implied line break
before and after the block.