Mozilla Hacksの「The CSS 3 Flexible Box Model」は、まだFlexboxが現在のdisplay: flex構文になる前、display: boxやbox-flexで説明されていた時代の記事です。2010年の記事なので、そのまま今の実装ガイドとして読むものではありません。ただし、CSSレイアウトがfloatやtable的な発想から抜け出していく過程を読む資料としてはかなり面白い内容です。
記事では、Flexible Box Modelを「子要素を親ボックスの中でどう並べ、余った空間をどう分配するか」を決める新しいボックスモデルとして紹介しています。XUL、XAML、GladeXMLのようなUI記述で使われる考え方に近く、ブラウザウィンドウやフォントサイズに合わせて変化する流動的なレイアウトに向いている、という位置づけでした。
記事の要点
- 当時の構文は
display: boxから始まる。 現在のdisplay: flexではなく、親要素にdisplay: boxまたはinline-boxを指定して、子要素をFlexible Box Modelで扱う説明になっています。
box-orientで縦横の軸を決める。 子要素を縦に並べるか横に並べるかを指定し、現在のflex-directionにつながるような役割を持っていました。
box-directionやbox-ordinal-groupで視覚的な順序を変えられる。 HTML上の順番と表示順を分けられることが、当時から大きな利点として扱われています。
box-flexで余白を比率配分する。 子要素に柔軟性を持たせ、固定幅の要素と可変幅の要素を混ぜながら残りスペースを分ける発想が説明されています。
box-packとbox-alignで余った空間の寄せ方を制御する。 中央寄せ、端寄せ、均等配置、stretchなど、今のFlexboxでよく使う配置の原型が見えます。
リンク先も読むと見える変化
記事内のW3C仕様リンクは、現在はCSS Flexible Box Layout Module Level 1へリダイレクトされます。現行仕様では、display: flex/inline-flex、flex-direction、flex-wrap、justify-content、align-itemsなど、今のWeb開発で見慣れた名前に整理されています。2025年10月14日のCandidate Recommendation Draftとして公開されているページも確認しました。
記事のデモリンク(http://hacks.mozilla.org/wp-content/uploads/2010/04/exemple-blog.html)は、確認時点では404でした。Shawn J. Goff氏の記事リンク(http://shawnjgoff.com/blog/css3-flexible-box-layout-module)も現在は名前解決できませんでした。一方で、CSS3.infoの紹介記事は参照でき、当時からGecko/WebKit実装の差やデモの見え方の違いが話題になっていたことがわかります。
この古い記事と現行仕様を並べると、概念はかなり残りつつ、プロパティ名とモデルが整理されてきたことが見えます。たとえばbox-flexで比率を指定する考え方は、現在のflexやflex-growを理解する入口になります。box-pack/box-alignは、現在のjustify-content/align-itemsのような役割へつながっています。
気づき
この記事の価値は、古い構文を学べることではなく、CSSが「文書を上から下へ流す」だけのモデルから、「利用可能な空間を部品同士で交渉して分ける」モデルへ移っていく瞬間が見えることだと思います。今ではFlexboxは当たり前の道具ですが、2010年の記事では、中央寄せ、順序変更、sticky footer、流動レイアウトがまだ長年の悩みとして語られています。
つまりFlexboxは、単に便利なプロパティ群ではなく、CSSにUIレイアウトの語彙を足した転換点でした。古いdisplay: boxの説明を読むと、現在のFlexboxがなぜmain axis、cross axis、flex、alignmentという構成になっているのかも少し見えやすくなります。
参照した記事