Web Style Sheets
What are style sheets?
Style sheets describe how documents are presented on screens, in print, or perhaps how they are pronounced. W3C has actively promoted the use of style sheets on the Web since the Consortium was founded in 1994. The Style Activity has produced several W3C Recommendations (CSS1, CSS2, XPath, XSLT). CSS especially is widely implemented in browsers.
By attaching style sheets to structured documents on the Web (e.g. HTML), authors and readers can influence the presentation of documents without sacrificing device-independence or adding new HTML tags.
The easiest way to start experimenting with style sheets is to find a browser that supports CSS. Discussions about style sheets are carried out on the [email protected] mailing list and on comp.infosystems.www.authoring.stylesheets.
The W3C Style Activity is also developing XSL, which consists of a combination of XSLT and “Formatting Objects” (XSL-FO).
Why two Style Sheet languages?
The fact that W3C has developed XSL in addition to CSS has caused some confusion. Why develop a second style sheet language when implementors haven’t even finished the first one? The answer can be found in the table below:
|Can be used with HTML?||yes||no|
|Can be used with XML?||yes||yes|
The unique features are that CSS can be used to style HTML & XML documents. XSL, on the other hand, is able to transform documents. For example, XSL can be used to transform XML data into HTML/CSS documents on the Web server. This way, the two languages complement each other and can be used together.
Both languages can be used to style XML documents.
CSS and XSL use the same underlying formatting model and designers therefore have access to the same formatting features in both languages. W3C will work hard to ensure that interoperable implementations of the formatting model are available.
A W3C Note on “Using XSL and CSS together” is available.
If you are new to the subject, you may want to start by reading some press clippings on style sheets:
See the CSS and XSL pages for more (and more recent) articles.
Cascading Style Sheets (CSS) is a style sheet mechanism that has been specifically developed to meet the needs of Web designers and users.
W3C’s XSL Working Group developed the eXtensible Style Language. (As of 2016, the Working Group is not active.) XSL builds on DSSSL and CSS and is primarily targeted for highly structured XML data which, e.g., needs element reordering before presentation. For more information on XSL see the W3C XSL resource page.
DSSSL is a document tree transformation and style language in with many adherents in the SGML community. DSSSL resources on the Web:
CSS-DOM & SAC
A CSS file can be created and edited “by hand,” i.e., with a text editor, but you can also write a program in ECMAscript, Java or some other language, that manipulates a style sheet. This is in fact so common, that there are software libraries of useful functions available. To help in porting such program & libraries to different computer platforms, W3C has developed a specification called CSS-DOM, that defines a set of functions that all such libraries must provide.
The CSS Document Object Model is an API (Abstract Programming Interface) for manipulating CSS (and to a certain extent also other style languages) from within a program. An API is the specification of a software library. You can see it as a manual: it describes the functions and their parameters, but doesn’t contain the actual code.
There are several CSS-DOM libraries available, for different platforms. Many of them are free. Many browsers have a CSS-DOM library built-in, for use by ECMAScript programs.
SAC (Simple API for CSS) is a complement to the CSS-DOM. The CSS-DOM contains functions to manipulate a style sheet after it has been loaded into memory; the functions defined by SAC help in parsing a style sheet, i.e., in transferring a style sheet from a file into memory.
The CSS-DOM is a W3C Recommendation. SAC is a project under development. Some software (other than browsers) is listed on the CSS overview page.
Conferences, workshops, research
The W3C team and representatives of W3C members often give presentations.