This web site is about Cascading Style Sheets as a means to separate the presentation from the structural markup of a web site, and it will help you answer some of those frequently asked Questions, explains some of the Basics of CSS, gives you tips and tricks for tackling the problems with Netscape 4, offers you a tutorial about Positioning with CSS (CSS-P, web design without tables). There is also a page with interesting Links.
The most important point about elements is the distinction between Block Level Elements and Inline Elements.
HTML Blocklevel Elements like <P>, <DIV>, <H1> or Lists start and end on a line of their own. Block level elements can be children only of other blocklevel elements.
Inline Elements like <A>, <SPAN>, <STRONG> do not force a line break before or after the element. Inline elements can be children of block, inline or list elements.
Then there are List-Item Elements (<LI>) that are block elements but have the presentational marker or number.
And we have Replaced Elements, like images and form elements. The replaced elements are inline elements, but can be blocklevel elements.
All those HTML elements can be redefined and styled (for looks and/or position) with CSS properties (CSS elements) and values.
Certain CSS properties are valid only for Blocklevel elements (text-indent, for example), others for inline elements (vertical-align, f.e.), but most are for both types of elements.
If you do not have an HTML element to which you can apply the CSS styling, then you can use DIV or SPAN, because they have no inherent properties of their own.
Here is the official W3C list of CSS1 elements:
And these are the CSS2 elements
A very useful resource is Eric Meyer's 'Mastergrid' at
Here is a list that shows the browser support for CSS1 and CSS2 properties:
Blooberry has a wonderful list with all CSS properties, values and browser support at: http://www.blooberry.com/indexdot/css/propindex/all.htm