The majority of web pages are written using HTML (Hypertext Markup Language). HTML was invented by The European Laboratory for Particle Physics (CERN, Switzerland) to allow researchers to exchange structured documents through a network of computers. By structured documents, we mean organising a text document with different levels of headings, paragraphs and lists, or creating tables to handle tabular data (a bit like in Excel), and linking it to other documents in a non-linear manner (Hyperlinks). HTML is cross-platform : because HTML pages are text only files (have a look at the source code in your favourite web browser to see what I mean), any computer can read it, whatever system the user is using (for example Unix, Windows or Mac).
However, in the 1990’s and the very rapid development of the world wide web, a problem began to appear.
HTML was primarily designed to handle rather simple documents. But with the arrival of graphical browsers and a large public accessing the web, designers became more and more demanding, and although it is a language which was essentially created to organise content and structure, it was being used more and more to control presentation : one very well known example is the use of tables to control the presentation. Tables were first created to handle tabular data, full stop. But, as web sites started to pop up all over the place, designers started demanding more complex pages, for example, a layout organised in several columns, something that HTML couldn’t do and was never meant to do. So they found a way to work around this limitation : why not use tables to achieve this presentation ?
Also, at the same time, a browser war between Netscape Navigator and Internet Explorer reached its peak: this led to the development by these two firms of numerous proprietary extensions (ie Marquee or Netscape blink elements), which means they didn’t work in the competitor’s browsers.
While HTML was supposed to be a universal way of organising and exchanging documents in a simple way, it was becoming increasingly fragmented; in addition, designing web pages using tables didn’t work as consistently as designers were expecting : some layout could even be broken if using the “wrong” browser. This was the era of those logos proudly claiming “best viewed with Netscape” or “best viewed with Internet Explorer ?”. Finally, the size of the markup, compared to the actual content, was cluttered and unnecessarily heavy.
And then came CSS …
This fragmentation of the world wide web and the own limitations of HTML language first led to the standardisation of the most useful proprietary extensions and the rejection of the others (blinking text and so on). This was The World Wide Web Consortium’s (the main international standards organization for the World Wide Web) important task with html 3.2. The second idea was to stop HTML being misused for presentational purposes. By using a separate style sheet to control the presentation, HTML would keep its original use, that of structuring the documents.
CSS level 1 were developed and finally adopted in 1996 by the W3C, even though a near-full implementation of the specification wasn’t reached for all browsers before the end of the century. Finally, there was a way of separating the structure from the presentation itself, which meant the code was reduced in size and complexity. It also allowed designers to create style sheets depending on the use (better accessibiliity with large text alternative for visually-impaired users, for example, or layout optimised for printers, PDA, etc). CSS level 2 was launched in 1998 with new capabilities, and though still being a work in progress, current versions of CSS, combined with the rapid development of the XML language, allow the creation of websites in a much more efficient way.