[Mirrored from: http://www.sgmlopen.org/sgml/docs/slide027.htm] -- See the entire document on the SGML Open server
The problem with CSS
CSS is appropriately designed for attaching simple formatting
attributes to isolated HTML tags. But it is inherently incapable
of handling generic SGML applications like the two just shown.
CSS lacks the concept of a parse tree and therefore cannot
address the SGML document structure. In particular:
It cannot grab an item (such as a chapter title) from one
place and use it again in another place (such as a page header).
Aside from the degenerate case of being able to recognize the
first letter of a line or the first line of a paragraph, it has no
concept of sibling relationships. For example, it is impossible to
write a CSS stylesheet that will render every other paragraph in
bold, or autonumber the chapters in a book.
level of context specification
(this is still under discussion). The formatting of generic SGML
documents typically requires the ability to specify context at any
level (for example, generating figure numbers differently
depending on whether they are in a chapter or an appendix).
CSS is not a programming language; it does not support
decision structures and cannot be extended by the stylesheet designer.
CSS cannot calculate quantities or store variables. This
means, at the very least, that it cannot store commonly used
parameters in one location that is easy to update.
CSS cannot generate text (page numbers, etc.)
CSS uses a simple box-oriented formatting model that works for
current Web browsers but will not extend to more advanced
applications of the markup, such as the generation of printed pages.
CSS is oriented toward Western languages and assumes a
horizontal left-to-right writing direction.