Himanshu SharmaSoftware engineer
Let’s talk

Background

The history of HTML, CSS and MySQL

Where three of the web's most widely used technologies came from, how each one changed, and what that history explains about the way you write them today.

HTML, CSS and MySQL were created by different people for different problems. HTML and CSS both started at CERN, the European physics laboratory, in the early 1990s. MySQL started a few years later in Sweden and Finland. Yet they ended up forming the foundation of a huge part of the web. Knowing a little of their history makes many oddities easier to understand: why HTML has both <b> and <strong>, why CSS is “cascading”, and why MySQL has more than one storage engine.

The dates below are for official publications and releases. Dates for when browsers supported a feature can differ by a few months between browsers, so they are given as years.

HTML: from a physics lab to a living standard

HTML is the markup language of the web. It began as a small set of tags for linking scientific documents and has been extended, standardised, stretched and simplified ever since.

  1. 1989

    A proposal at CERN

    Tim Berners-Lee writes a memo proposing an Internet-based hypertext system, so that researchers at CERN can link documents to each other instead of searching through separate systems.

  2. Late 1990

    HTML and the first browser

    Berners-Lee specifies HTML, the HyperText Markup Language, and writes the first browser and server software.

  3. Late 1991

    The first public description

    A short document later known as “HTML Tags” is mentioned on the Internet. It describes a small set of elements, such as headings, paragraphs, lists and the anchor element that makes links.

  4. 24 Nov 1995

    HTML 2.0 (RFC 1866)

    The first formal HTML standard, published as an IETF document, writes down what browsers of the day had in common. Forms arrive here, which is what lets a page send information back.

  5. 14 Jan 1997

    HTML 3.2

    The W3C, the standards body Berners-Lee founded, publishes HTML 3.2 as a Recommendation. It records widespread features such as tables and image alignment.

  6. 18 Dec 1997

    HTML 4.0

    HTML 4.0 pushes a separation that later became standard practice: HTML should describe structure and meaning, and style sheets should handle appearance. Version 4.01, a bug-fix release, follows on 24 December 1999.

  7. 26 Jan 2000

    XHTML 1.0

    HTML is recast in the stricter syntax of XML, with every tag closed and lower-case names. Strict rules appealed to some developers but browsers kept accepting sloppy HTML, and the web mostly stayed with it.

  8. 2004

    The WHATWG starts HTML5

    Browser makers, frustrated with the direction of XHTML, form the WHATWG and begin the work that becomes HTML5. Their focus is backward compatibility and the web applications people were actually building.

  9. 28 Oct 2014

    HTML5 becomes a W3C Recommendation

    HTML5 brings the semantic elements (header, nav, main, article, footer), native audio and video, canvas, and many new form controls, which removes much of the need for plug-ins.

  10. 28 May 2019

    One living standard

    The W3C and the WHATWG agree that the WHATWG is the sole publisher of the HTML and DOM standards. HTML is now a “living standard” that is updated continuously instead of in numbered versions.

What it explains: HTML is very forgiving, because it grew by recording what browsers already did. That is why a page with a missing closing tag still displays. It also explains the push to semantic elements: once style moved to CSS, HTML could concentrate on meaning. Learn the modern approach in the Semantic HTML lesson, or start from the beginning with What HTML is and how a browser reads it.

CSS: separating content from appearance

Before CSS, appearance was written into HTML with presentational tags and attributes. CSS moved it into style sheets that can be shared by every page of a site, and “cascading” describes how rules from several sources are combined into one result.

  1. 10 Oct 1994

    A proposal for style sheets

    Håkon Wium Lie, working at CERN with Tim Berners-Lee, proposes “Cascading HTML Style Sheets”. Early web pages mixed content and appearance in the same tags, and styling had no shared language.

  2. Soon after

    Bert Bos joins and the name changes

    Bert Bos joins the effort. The word “HTML” is dropped from the name because the same style sheets could style other markup languages too, and the idea becomes simply Cascading Style Sheets.

  3. 17 Dec 1996

    CSS level 1

    The first CSS specification becomes a W3C Recommendation. It covers fonts, colours, margins, spacing and text, the vocabulary that the first lessons of any CSS course still teach.

  4. 12 May 1998

    CSS level 2

    CSS2 adds positioning (relative, absolute and fixed), z-index and media types, so one document can be styled differently for a screen and a printer.

  5. 1998 to 1999

    CSS3 and the move to modules

    Work on level 3 starts in 1998, with the earliest drafts published in June 1999. Instead of one giant specification, CSS is split into independent modules that can progress at different speeds. That is why there is no single “CSS3 release”.

  6. 7 Jun 2011

    CSS 2.1 is finished

    CSS 2.1, which fixes errors in CSS2 and describes what browsers actually implement, finally becomes a Recommendation after years in review.

  7. 2012 to 2015

    Flexbox arrives

    The Flexible Box layout lets developers align and distribute items in one direction without floats or tricks. It becomes stable in all major browsers by about 2015.

  8. 2017

    Grid and custom properties

    CSS Grid, a true two-dimensional layout system, ships in the major browsers, and custom properties (CSS variables) become available everywhere. Layouts that once needed frameworks become a few lines of CSS.

  9. 2022 to 2023

    Cascade layers, nesting, container queries and :has()

    Cascade layers give teams explicit control over which rules win. Nesting lets rules sit inside each other as in preprocessors. Container queries let a component respond to the size of its container, not just the screen, and :has() finally allows selecting a parent based on its children.

What it explains: The cascade exists because a page can have styles from the browser, from an author and from a visitor, and something has to decide which wins. That is the topic of the Cascade and specificity lesson. The modern layout tools arrived late, which is why older tutorials still use floats. Today you reach for Flexbox and Grid.

MySQL: the open-source database behind the web

SQL, the language, predates MySQL. IBM researchers developed it in the 1970s on the basis of Edgar Codd's relational model, and it was standardised in the 1980s. MySQL is one implementation of it, and it was designed to be fast and simple to run. That combination made it a favourite of web hosts.

  1. 1994

    Development begins

    Michael “Monty” Widenius and David Axmark begin building a fast database server, based on the SQL query language that already existed for relational databases.

  2. 23 May 1995

    The first version

    The first version of MySQL appears. The name combines “My”, the name of Widenius's daughter, with SQL.

  3. 1995

    MySQL AB

    The Swedish company MySQL AB is founded by Widenius, Axmark and Allan Larsson to develop and support the database. MySQL is open source and becomes the “M” in the LAMP stack (Linux, Apache, MySQL, PHP) that powered much of the early dynamic web.

  4. Oct 2005

    MySQL 5.0

    Stored procedures, triggers, views and cursors arrive. This is the release that turns MySQL from a fast data store for websites into a database that can hold business logic as well.

  5. Jan to Feb 2008

    Sun buys MySQL AB

    Sun Microsystems announces on 16 January 2008 that it will acquire MySQL AB, in a deal reported at about one billion US dollars. It completes the purchase on 26 February 2008.

  6. 2009

    MariaDB begins

    When Oracle announces it will buy Sun, MySQL's original author starts MariaDB, a community fork that stays largely compatible. Today MariaDB and MySQL are separate projects that have drifted apart in some features.

  7. 27 Jan 2010

    Oracle owns MySQL

    Oracle completes its acquisition of Sun Microsystems and becomes the steward of MySQL.

  8. 3 Dec 2010

    MySQL 5.5 and InnoDB

    MySQL 5.5 reaches general availability and makes InnoDB the default storage engine. Transactions, foreign keys and crash recovery become the norm instead of an option.

  9. 21 Oct 2015

    MySQL 5.7

    MySQL 5.7 becomes generally available with, among other things, a native JSON data type.

  10. 19 Apr 2018

    MySQL 8.0

    A major release: window functions, common table expressions, roles, atomic DDL and utf8mb4 as the default character set bring MySQL much closer to the other big relational databases.

  11. 30 Apr 2024

    MySQL 8.4, the first long-term support release

    MySQL 8.4 is released as a long-term support (LTS) version that receives fixes for years. A July 2024 release, MySQL 9.0, begins a separate line of “innovation” releases for newer features.

  12. Apr 2026

    End of support for 8.0

    Oracle's support period for the 8.0 series ends, which makes 8.4 the sensible version to learn and run today. It is the one used in the MySQL course on this site.

What it explains: The long road from a fast, simple store to a full relational database is why MySQL has such a rich set of features today, and why older MySQL tutorials sometimes describe things, such as MyISAM tables and the old utf8 character set, that you should avoid. The Storage engines and character sets lesson covers both, and What MySQL is and how it works is the place to begin.

How the three fit together

The classic LAMP stack paired MySQL with PHP and a server: PHP read rows from MySQL, built HTML and sent it to the browser, where CSS made it look right. Modern sites use many languages and frameworks, and many more databases, but the roles are the same. HTML is the structure, CSS is the presentation, and a database like MySQL is the memory.

The three also share a pattern. Each one began simple, was extended in ways the first designers had not planned, and then needed careful standardisation so that different programs would agree. And each one chose to stay backward compatible, which is why code written decades ago can still run today. That is a strength for learners too: what you learn now will stay useful for a long time.

Sources

Dates were checked against these pages. Where they disagree on small details, such as the exact year of the MariaDB fork, the wording above stays general.

Want to learn them in a good order? Follow the roadmap for HTML, CSS and MySQL.

Or jump straight in: HTML, CSS, MySQL.