As with all CSS specifications the Flexbox specification went through a large number of changes before it became the Candidate Recommendation that we have today. As a Candidate Recommendation we should not see large changes at this point to the spec, however this has not been the case with past flexbox iterations.
Flexbox was implemented in an experimental way in several web browsers. At the time the method of creating experimental implementations was to use a vendor prefix. The idea of these prefixes was to allow implementations of the spec to be tested and explored by browser engineers and web developers alike without clashing with other implementations. The idea was not to use the experimental implementations in production code. However, prefixes ultimately were used in production code, and changes to the experimental specification caused people to need to update their sites to keep up.
In 2009, the specification looked quite different. To create a flex container you would use display: box
and there were a number of box-*
properties, which did things that you will recognize from flexbox today.
There was an update to the spec that updated the syntax to display: flexbox
— this was again vendor-prefixed.
Ultimately the specification was updated to define display: flex
as the way to create a flex container. Browser support for the up-to-date version of the specification is excellent from this point forward.
There are a few old articles in existence that refer to the older versions of flexbox, which are pretty easy to identify due to the change in the way that a flex container is created. If you find something referring to display: box
or display: flexbox
this is outdated information.