Web Style Sheets (original) (raw)

Web Style Sheets home page

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 www-style@w3.org 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:

| | CSS | XSL | | | ------------------------ | --- | --- | | Can be used with HTML? | yes | no | | Can be used with XML? | yes | yes | | Transformation language? | no | yes | | Syntax | CSS | XML |

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.

XSL

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.

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.

Dynamic HTML

Dynamic HTML is a term used to describe HTML pages with dynamic content. CSS is one of three components in dynamic HTML; the other two are HTML itself and JavaScript (which is being standardized under the nameEcmaScript). The three components are glued together with DOM, the Document Object Model.

Languages

About the translations