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 a 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 visual 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 linebreak before and
after its content.
I only recently decided to place these elements in this section,
having moved them from the 'miscellaneous' section. Marquee and Multicol were
both created by the browser companies and are not supported in any HTML
standard, 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. (Note:
I also place HR in the "miscellaneous" category, but it is a vague element
to define and it exhibits many "block" characteristics, so it seemed to
deserve mention here.)