本文へ移動
技術を、自社の仕事に。
判断と実行を助けるメディア

記事を検索

CSSのgrid-lanesでメイソンリー 対応状況と@supportsの備え

目次 · 8項目

実績紹介やブログの一覧で、高さの違うカードを並べると、行ごとに一番高いカードに揃って下に隙間ができます。この隙間を詰める「メイソンリー(石積み)配置」は、これまでJavaScriptのライブラリか、段組み(columns)で近い見た目を作るのが一般的でした。段組みは上から下へ流し込むため、新しい記事が左の列の下に入ってしまい、「左上から新しい順」に並べたい一覧には向きません。

CSSではこの配置を display: grid-lanes で書く仕様が進んでいます。ただし、2026年11月11日時点で既定で使えるのはSafariだけです。本記事では、各ブラウザのリリースノートやソースコード、MDNの互換性データで対応状況を確かめ、Chromiumで実際に表示を比べた結果から、今の時点での使い方を整理します。

grid-lanesは何を変えるのか

MDNのガイド「Grid lanes layout」は、CSSグリッドレイアウト仕様のレベル3が、display の値 grid-lanes と inline-grid-lanes で使う配置方法を定義していると説明しています。一方の軸は通常のグリッドと同じ厳密なトラック、もう一方の軸は詰めて積み上げる配置です。各アイテムは、空きが最も大きいレーン(列)に置かれます。

書き方は、普段のグリッドとほぼ同じです。

.works {
  display: grid-lanes;
  gap: 10px;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
}

列の幅は grid-template-columns で決め、行の高さは決めません。span で2列にまたがるカードを作ることも、grid-column で列を指定して置くこともできます。列を指定したアイテムは、詰める処理より先に配置されます。

なお、以前に試験的に実装されていた grid-template-rows: masonry という書き方は、仕様では grid-lanes に置き換えられました。MDNのFirefox 159(2026年10月27日リリース)の開発者向けリリースノートには、この旧構文(grid-template-columns と grid-template-rows の masonry の値、masonry-auto-flow プロパティ)を削除したとあります。この旧構文は、もともとFirefoxのNightlyでしか既定で有効ではありませんでした。古い記事のコード例をそのまま使わないようにします。

2026年11月時点の対応状況

対応状況は、MDNの互換性データ(mdn/browser-compat-data)と、各ブラウザのソースコードにある機能の有効化の設定で確かめました。Safariは、Appleの「Safari 26.4 Release Notes」(2026年3月24日リリース)にも「Added support for CSS display: grid-lanes.」とあります。

ブラウザ互換性データソースコードの設定
Safari(macOS・iOS)26.4で対応WebKitの GridLanesEnabled は status: stable、既定値 true
Chrome・Edge未対応Chromiumの CSSGridLanesLayout は status: experimental
Firefoxプレビューlayout.css.display-grid-lanes.enabled の値はNightlyのビルドのときだけ true

Chromiumの設定ファイルの説明では、experimental の機能は安定版では既定で無効で、chrome://flags の「Experimental Web Platform features」を有効にすると使えます。つまり、一般の利用者の大半が使うChromeとEdgeでは、まだ grid-lanes は効きません。互換性データの区分も「experimental(試験的)」のままです。

Chromeの機能の予定をまとめた「Chrome Platform Status」では、Chrome 140から開発者がフラグで試せる段階(Dev trial)として登録されており、正式に出す時期は書かれていません。実装状況の欄は「No active development」となっていますが、同じページの注記は「まだ実装中」としており、10月にも、後で触れる名前の変更がChromiumに入っています。どちらにしても、Chromeで既定で使える時期は、まだ見通せません。

Chromiumで表示を比べた

ドラフトを書いた2026年11月9日に、編集部が使ったLinuxのクラウド環境で、Playwrightに同梱されたChromium(153.0.8010.12、ヘッドレス)を使い、同じHTMLを2通りの起動方法で開きました。テスト用のページは、幅200pxの3列のグリッドに、高さ100・200・60・80・120・90pxの6枚のカードを置いたものです。@supports (display: grid-lanes) が真のときだけ display: grid-lanes に切り替えます。

.works {
  display: grid;
  grid-template-columns: repeat(3, 200px);
  gap: 10px;
}
@supports (display: grid-lanes) {
  .works { display: grid-lanes; }
}

結果は次のとおりです。

  • 既定の起動: CSS.supports('display', 'grid-lanes') は false。display の計算値は grid のままで、カードは2行に揃い、1行目の高いカードの下に隙間が残りました。コンテナの高さは330px
  • Experimental Web Platform featuresを有効にした起動(--enable-experimental-web-platform-features): CSS.supports は true、計算値は grid-lanes。カードが空いている列に詰められ、コンテナの高さは290pxになりました

@supports で分けておけば、対応していないブラウザでは普段のグリッドの表示になり、崩れはしません。対応しているブラウザでだけ隙間が詰まる、という段階的な強化として使えます。

Chromium 153で同じページを開いた比較。既定の起動では通常のグリッドに戻り、カードが2行に揃って隙間が残る。Experimental Web Platform featuresを有効にするとgrid-lanesが効いて隙間が詰まる。さらに許容差を0にすると、4枚目のカードが最も空いている3列目に入る

配置の順番は「一番空いた列」とは限らない

検証の途中で、文字の大きさを変えただけで、カードの入る列が変わりました。4枚目のカードは、1列目(上から110pxの位置が空いている)と3列目(70pxの位置が空いている)のどちらに入るかが分かれ目でした。文字サイズが40pxのページでは1列目に入り、フラグを有効にしたまま許容差を0にすると、最も空いている3列目に入りました。

理由は、仕様の fit-tolerance プロパティにあります。CSSWGの編集者草案(css-grid-3)では、列の空きの差がこの値以内なら「同じくらい空いている」とみなし、前の列から順に埋めると定義しています。初期値の normal は、grid-lanesでは 1em として扱われます。40pxの文字サイズでは1emが40pxなので、110pxと70pxの差の40pxは「同じくらい」に入り、先にある1列目が選ばれた、というわけです。

もう一つの注意は、プロパティの名前です。CSSWGは2026年10月に、仕様の flow-tolerance を fit-tolerance に改名しました。各ブラウザの対応は次のとおりで、版によって受け付ける名前が違います。

  • Safari: 26.4は flow-tolerance で対応しました(26.4のリリースノートと互換性データ)。2026年10月26日の Safari 27.2 で fit-tolerance に改め、flow-tolerance は非推奨の別名として当面は使えます(27.2のリリースノートとWebKitのブログ)。互換性データには、11月11日時点でこの改名がまだ反映されていません
  • Chromium: 試したChromium 153が受け付けたのは古い flow-tolerance だけでした(CSS.supports('fit-tolerance', '0') は false)。Chromiumでは10月14日に fit-tolerance への改名が入り、Chrome 158(安定版の予定は11月17日)から含まれます。現在のプロパティの定義には flow-tolerance の別名が残っていません(158での表示は試していません)
  • Firefox: Nightlyで、grid-lanesと同じ設定の裏に fit-tolerance が加わりました

古い版と新しい版のどちらでも効くようにするなら、両方の名前を並べて書くことになります。

@supports (display: grid-lanes) {
  .works {
    display: grid-lanes;
    flow-tolerance: 0; /* 旧名(Safari 26.4〜27.1、Chrome 157まで) */
    fit-tolerance: 0;  /* 仕様の名前(Safari 27.2以降、Chrome 158以降) */
  }
}

見た目の順番とキーボードの順番がずれる

仕様草案には「Reordering and Accessibility」という節があり、grid-lanesの自動配置では、読む順番に対して前後に行き来するような配置が起きうると書かれています。とくに、列をまたぐカードや列を指定したカードを混ぜると、後のカードが前のカードより上に入ることがあります。草案は、こうした行き来が少ない作りにすること、項目に順番の意味がない場合は reading-flow プロパティでブラウザに読む順番を並べ替えさせることを挙げています。

ここからは編集部の整理です。実績やお知らせの一覧のように「新しい順」に意味がある場合、HTMLの順番(スクリーンリーダーやTabキーで移動する順番)と、目で見て追う順番がずれると、利用者が迷います。次の3点を目安にすると、ずれを抑えやすくなります。

  • 列をまたぐカード(span)と高さの大きく違うカードを、同じ一覧で混ぜない
  • 許容差を大きめにして、近い高さの列は左から順に埋める(WebKitのブログも、Tabキーで移動する利用者のために、ほとんどの場合は値をかなり大きくするよう勧めています)
  • カードの中のリンクをTabキーで順にたどり、移動の順番が見た目と大きく食い違わないか確かめる

一覧のレイアウトをCSSの新しい機能で組み直すときは、Web Platform Baselineで設計を考える記事のように、どのブラウザで効かなくても困らない作りにしておくのが基本です。グリッドの隙間に線を引く新しい仕様は、CSSのgap decorationsの記事で扱いました。

今の時点でどう使うか

既定で有効なのがSafariだけである以上、grid-lanes を前提にしたデザインは、まだ組めません。使うとすれば、次のような形です。

  1. 通常の display: grid で、隙間が残っても見栄えが崩れない一覧を作る
  2. @supports (display: grid-lanes) の中でだけ grid-lanes に切り替える
  3. Safari(実機)と、フラグを有効にしたChromeで表示とTabキーの順番を確かめる
  4. 許容差を調整する場合は、flow-tolerance と fit-tolerance の両方を書く

JavaScriptのメイソンリーのライブラリを使っているサイトを、すぐにCSSへ置き換える段階ではありません。新しく一覧を作るときに、将来の置き換えの余地を残しておく、という使い方が現実的です。

確認した範囲

2026年11月9日に、MDNのガイド「Grid lanes layout」とFirefox 159の開発者向けリリースノート(mdn/content、d560306)、MDNの互換性データ(mdn/browser-compat-data、82daeeb)、WebKitの UnifiedWebPreferences.yaml、Chromiumの runtime_enabled_features.json5、Firefoxの StaticPrefList.yaml(いずれも同日のmainブランチ)、CSSWGの編集者草案css-grid-3のソース(w3c/csswg-drafts、b6771fb)を確認しました(資料調査)。公開前の2026年11月11日に、公開中のMDN・CSSWGの編集者草案(10月21日版)・互換性データ(c98444a)・各ブラウザのソースの設定を確かめ直し、AppleのSafari 26.4と27.2のリリースノート、WebKitのブログ「WebKit Features for Safari 27.2」、Chrome Platform Status、Chromiumの改名のコミット(957a2cc)も確認しました。表示の比較は、Linuxのクラウド環境でPlaywright同梱のChromium 153.0.8010.12(ヘッドレス)を使い、各条件1回ずつ行いました(実機検証)。Safari、Firefox Nightly、Chrome 158以降、Windows・macOS・スマートフォンでの表示は確認していません。

コーポレートサイトの一覧ページの作り直しや、新しいCSSの取り入れ方は、HP制作・リニューアル相談で承っています。対応するブラウザの範囲によって作り方が変わるため、お問い合わせからご相談ください。

参考資料

この記事を共有XFacebook
鈴木 翔

技術の可能性に魅了され、学生時代からプログラミングとデジタルアートの分野に深い関心を持つ

この記事のテーマを、自社の次の一歩へ

Webサイトで、実現したいことから。

使う人の目的、必要な機能、更新の体制を整理し、制作・改善で最初に取り組むことを考えます。

  • サイトの目的
  • 機能と使いやすさ
  • 公開後の運用
Web制作・改善を相談する

構想段階からご相談いただけます。この記事の情報を相談フォームに引き継ぎます。

最新記事をメールで受け取る・Web制作ガイドを読む
無料ダウンロード

Web制作 費用・発注・集客 完全ガイド【2026年版】

費用相場・制作会社の選び方・集客戦略をPDFにまとめました。

The PDF and newsletter emails are currently in Japanese.

メルマガにも登録されます。いつでも解除可能です。