New problems in web publishing

Cascading Style Sheets (CSS) emerged as the World Wide Web moved from exchanging research information toward mass publishing. Hypertext Markup Language (HTML) could identify headings, paragraphs and links, but was poorly suited to fine control of page layout. Publishers wanted to specify fonts, colors and spacing, while readers might need larger text, high contrast or presentation adapted to different devices. These requirements did not always coincide.

In 1994, Håkon Wium Lie, then working at CERN, proposed a style sheet that could be transmitted over a network. He pointed out that browser display settings often depended on a particular platform and that authors had difficulty supplying their own presentation suggestions. The new approach would therefore give both parties a shared means of expression and reconcile their influence when conflicts arose, rather than fixing a web page into a printed layout that could only be viewed exactly as supplied.

References: [1] [3]

From proposal to collaborative design

Lie publicly released version 0.92 of his proposal, Cascading HTML style sheets, on 10 October 1994. The document explicitly acknowledged that it was not yet sufficiently developed to guide implementation directly; its purpose was to set out principles and invite comments. Early versions even experimented with percentages to express each party's influence over properties such as font size. What later became the cascade thus did not possess its final syntax from the outset.

Bert Bos, who was developing the Argo browser, joined the discussion, and the two gradually combined their ideas. Bos emphasized that the style mechanism could also apply to markup languages other than HTML, and “HTML” was subsequently dropped from the name. In April 1995 they demonstrated Argo and a modified Arena browser at the World Wide Web conference in Darmstadt, Germany. Conceptual discussion now had observable implementations, although the question of whether users or authors should exercise ultimate control remained contentious.

References: [1] [3]

Explaining the method through a rule

The basic unit of the CSS Level 1 specification is a rule, consisting of a selector and a declaration. For example, “h1 { color: blue }” tells the browser to make the text of matching first-level headings blue: h1 identifies the target, color is the property, and blue is its value. HTML continues to express “this is a heading,” while CSS proposes “how the heading should appear.” Emphasized text within a heading can also inherit its color unless another color is specified.

Styles can be embedded in a document or placed in an external file referenced by multiple pages. If one rule makes all headings blue and another, more specific rule targets a particular class of heading, the browser cannot simply apply both conflicting instructions at once. The specification establishes criteria including importance, origin, selector specificity and order of appearance to determine which declaration takes effect. The cascade is therefore a mechanism for resolving rules from multiple parties, not merely the order of files.

References: [2]

The 1996 standard and browser implementations

After the work entered the World Wide Web Consortium (W3C) deliberation process, a style-sheet workshop, public mailing lists and the HTML Editorial Review Board helped bring the specification into agreement. On 17 December 1996, CSS Level 1, bearing Lie's and Bos's names, became a W3C Recommendation. The significance of 1996 is therefore the creation of the first formal recommended specification, not the first appearance of style-sheet ideas or a CSS draft.

Software support did not wait until the standard was finalized. Microsoft's Internet Explorer 3, released in August 1996, already supported CSS, chiefly for colors, backgrounds, fonts and text, while its box-model implementation remained limited. W3C also listed experimental implementations such as Arena and Emacs-W3 at the time. Early browsers helped test the proposals and exposed compatibility gaps; publication of the standard did not immediately give every user an identical page appearance.

References: [3] [2]

Changes in maintenance and their limits

CSS's most immediate benefit was centralized management of repeated presentation decisions. A website could link many pages to the same style sheet and change their shared appearance by editing that sheet, without modifying heading tags page by page. Text remained text, reducing the need to convert it into images to obtain attractive typography and aiding search, reading aloud and content reuse. These benefits depended on authors preserving meaningful document structure.

CSS Level 1 established shared syntax and basic visual styles without solving every publishing problem at once. More complex layouts, printing, speech and web fonts were still identified as future work when it was released. Its central arrangement allowed content structure, style suggestions and actual browser rendering to work together. Subsequent versions and testing built on this foundation; features that matured later should not be projected backward as capabilities already widely available in 1996.

References: [3] [2]