A Cascading Style Sheet (CSS) is simply a file (.css) that controls the layout and style elements of an HTML page. The HTML links to the CSS and the browser uses it when rendering the page. In the past browser support has been dodgey to say the least but with recent browser releases support has increased due in part to Web Standards movements like WaSP. Designers can now use CSS to lay out an entire web page and not just to format the text.
To put it simply, Cascading Style Sheets were designed for page layout. Tables are for tabular data, that is, data where there is a relationship between columns/row headers, and the data in the table cells. This relationship is lost when tables are used for laying out an entire page. CSS, on the other hand, are all about structure. If you have a style called icon and nest that in a style called navigation you have a very definite structure.
The other major difference is that the page style is defined once in a CSS where a table based style is defined on every page. This means a CSS layout can be altered in one place affecting all pages where changes to a table based layout require a rework on all pages (which is both time consuming and frustrating).
Firstly the good stuff:
And now the downers:
Static positioning simply means the position content will appear on the screen without the Cascading Style Sheet turned on. This is quite an important part of the screen design as it provides accessible content for users with CSS turned off and users who are using devices that don't use CSS in general (screen readers, older browsers).
Static positioning can be used to advantage when dealing with Netscape 4 especially. Due to its low level of CSS support it is often best to hide the styles that define the layout of the page and render the content in its static position. This gives users of Netscape 4 access to the content and navigation and is certainly more desirable than seeing badly rendered styles which are likely to make the content illegible.
While use of static positioning is not visually impressive it allows users to choose the device they wish to access the content with and allows designers and developers to use web standards technology. Note: If you are currently using Netscape 4 you will be seeing this statically positioned by default.
CSS is very capable of creating the same complexity of layout that tables offered with one major advantage....layers. Designers can now build elements on top of each other without having to do all that slicing and dicing. It requires a bit of lateral thinking (but designers rock at that anyway) and a slightly different approach to building but CSS layouts, in my mind, offer far more options for laying out a page.
Some good places to start if you are interested in learning CSS are: