Skip to content

Håkon Wium Lie and Bert Bos

Abstract

Håkon Wium Lie (born 1965), a Norwegian working beside Tim Berners-Lee at CERN, posted “Cascading HTML Style Sheets” to the www-talk mailing list on October 10, 1994, three days before Netscape announced a browser that solved the same problem by adding tags. Bert Bos (born 1963), a Dutch mathematician who had built a browser with its own style language, joined him in 1995, and the two of them wrote CSS1, which the W3C adopted on December 17, 1996. The idea was that the author’s wishes and the reader’s wishes had to be combined, or cascaded, rather than one side winning. It took browsers until about 2000 to implement it properly and designers until about 2003 to trust it. Lie went on to run technology at Opera and to shame Microsoft with the Acid2 test; Bos stayed at the W3C and has been the staff contact of the CSS working group for most of its existence.

Hakon Wium Lie
Håkon Wium Lie, 2009. Image: Kmosman, CC BY-SA 3.0, via Wikimedia Commons.

Sorry, You’re Screwed

The web of 1993 gave an author no say in how a page looked. HTML marked what a thing was, a heading or a list, and the browser decided the rest, which was the design: the reader, not the author, controlled presentation. Authors hated it. Requests on the www-talk list for a way to set fonts and colours drew, in Marc Andreessen’s summary, the standard reply “Sorry, you’re screwed.” Two answers were on the table. Netscape’s was to add presentational tags to HTML, <font> and <center> and the rest, which put the author in charge and turned HTML into a page-description language. The other was a style sheet, a separate description of presentation that could be attached to a document; Robert Raisch of O’Reilly had proposed one in June 1993 and Pei Wei’s Viola browser had another.

October 10, 1994

Lie was born in Halden, Norway, on July 26, 1965, studied at Østfold University College and West Georgia, and took a master’s in visual studies at the MIT Media Lab in 1991, then worked in Norwegian Telecom’s research laboratory before going to CERN in 1994 to work with Tim Berners-Lee and Robert Cailliau. On October 10, 1994, encouraged by Dave Raggett, who was determined that HTML should not become a page-description language, he posted the first draft of Cascading HTML Style Sheets to www-talk. Andreessen announced the first beta of Mozilla, with its formatting tags, on October 13.

What distinguished Lie’s proposal from earlier style languages was the cascade. It assumed that on the web neither the author nor the reader could have the last word, and it gave the reader’s stylesheet and the author’s stylesheet each a say, with rules for combining them and for what won when they conflicted. The first draft even had a slider, with the author at one end and the reader at the other, to set the balance. That was the reason the language was called cascading; the name stuck after the slider was dropped.

Argo and Arena

Bert Bos was born in The Hague on November 10, 1963, studied mathematics at Groningen, and took his doctorate there in 1993 with a thesis on rapid user-interface development in a scripting language called Gist. At Groningen he was building Argo, a browser designed to be customised by the user through style sheets, and had a style-sheet proposal of his own. In 1995 the two met and agreed to merge their designs. At the third World Wide Web conference in Darmstadt in April 1995 they both showed running code: Bos’s Argo, and Arena, the W3C’s testbed browser, which Lie had modified to support the draft. The www-style mailing list opened the next month.

Both joined the newly formed W3C, and both were posted to its European base at INRIA in Sophia Antipolis. A W3C workshop on style sheets in Paris in late 1995 produced the commitment that mattered: Thomas Reardon of Microsoft said Internet Explorer would support CSS. The W3C’s HTML Editorial Review Board took the draft through the process, and CSS level 1 became a Recommendation on December 17, 1996. A CSS working group under Chris Lilley followed in February 1997, and CSS2, with positioning, media types and the beginnings of paged output, on May 12, 1998. Lie and Bos wrote the standard textbook, Cascading Style Sheets: Designing for the Web, in 1997; it has been through three editions.

The Browsers

Internet Explorer 3 shipped in August 1996 as the first commercial browser with CSS, supporting the colour, font and text properties reliably and the box model only in part. Netscape Navigator 4 implemented CSS by translating each rule into JavaScript and running it, and promoted its own JavaScript Style Sheets in the hope of avoiding CSS entirely; JSSS went nowhere. Between the two, a stylesheet that laid out correctly in one browser could produce an unreadable page in the other, and professional designers stayed with table layouts and spacer images for another six years. The consequences for the craft of web design, the Web Standards Project’s campaign, and Dave Shea’s CSS Zen Garden (2003), which finally demonstrated that a table-free page could look like anything, are told in The History of Web Design and The Browser Wars.

Opera 3.5, from the Norwegian company, shipped in November 1998 with most of CSS1 and a test suite behind it. Lie joined Opera as chief technology officer in April 1999 and stayed until 2016, through the company’s mobile browsers and its small-screen rendering work.

Acid2

Bert Bos
Bert Bos speaking on “CSS: 10 years and counting”, Fundamentos Web, October 2007. Image: Martin Alvarez Espinar, CC BY 2.0, via Wikimedia Commons.

By 2005 Internet Explorer 6 held most of the browser market and had not had a major release since 2001, and its CSS bugs were the ceiling on what anyone could build. Lie’s response was public. In a CNET article on March 16, 2005, he challenged Microsoft to make Internet Explorer 7 pass a test that did not yet exist, and the Web Standards Project published Acid2 on April 13: a page, coded mainly by Ian Hickson, that rendered as a smiling face only if the browser handled CSS 2.1 positioning and generated content, PNG alpha transparency, data URIs and error handling correctly, and as a mess otherwise. Safari passed first, in a private build within two weeks and in a public release that October; Opera 9 passed in June 2006, Firefox 3 in June 2008, and Internet Explorer 8 on March 19, 2009. Acid3, on JavaScript and DOM, followed in 2008. Lie’s other campaigns from Opera were for downloadable web fonts, from 2006, and for a <video> element in HTML5, from 2007, both of which happened; and against Microsoft’s OOXML document format in the ISO standardisation fight of 2007–08, which did not.

He took a doctorate at the University of Oslo in 2006 with a thesis on the origins and design of CSS, typeset from HTML and CSS with Prince, the CSS-to-PDF formatter from YesLogic, the Australian company he chairs. He co-founded the Norwegian Pirate Party in 2012 and keeps a woodworking shop and an organic farm outside Oslo.

Bos at the W3C

Bos never left. He chaired the CSS working group and has been its W3C staff contact for most of its life, the person who keeps the specifications consistent while the browser vendors argue about them. His name is on CSS1, CSS2, the CSS3 module for backgrounds and borders, and “Frame-based layout via Style Sheets”, a 1996 draft with Lie and Dave Raggett that described grid-like page layout. It was shelved; the idea returned as a 2005 layout module, and grid layout reached browsers only after Microsoft shipped its own version in Internet Explorer 10 in 2011, which became CSS Grid. At the W3C he has also worked on mathematical markup and privacy.

📚 Sources