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.
- 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.
- Late 1990
HTML and the first browser
Berners-Lee specifies HTML, the HyperText Markup Language, and writes the first browser and server software.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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”.
- 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.
- 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.
- 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.
- 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.
- 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.
- 23 May 1995
The first version
The first version of MySQL appears. The name combines “My”, the name of Widenius's daughter, with SQL.
- 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.
- 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.
- 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.
- 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.
- 27 Jan 2010
Oracle owns MySQL
Oracle completes its acquisition of Sun Microsystems and becomes the steward of MySQL.
- 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.
- 21 Oct 2015
MySQL 5.7
MySQL 5.7 becomes generally available with, among other things, a native JSON data type.
- 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.
- 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.
- 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.
- HTML: Wikipedia overview and release table
- RFC 1866: HyperText Markup Language 2.0 (IETF)
- HTML5, W3C Recommendation of 28 October 2014
- HTML Living Standard (WHATWG)
- CSS: Wikipedia overview and history
- Cascading Style Sheets, level 1 (W3C)
- Cascading Style Sheets Level 2 Revision 1 (W3C)
- A timeline of when modern CSS features shipped (modern-css.com)
- MySQL: Wikipedia overview and release history
- MySQL AB: Wikipedia
- MySQL 8.4 Reference Manual (Oracle)
Want to learn them in a good order? Follow the roadmap for HTML, CSS and MySQL.