朗報! CSS Flexboxの8年越しのバグがようやく修正されます

CSS Flexboxのこのバグに悩んだ人もいると思います。
リスト要素をFlexboxで複数列に配置し、ulborderを適用したのに、ボーダーが全体を囲まないバグが8年越しにようやく修正されます。

CSS Flexboxの8年越しのバグがようやく修正されます

左: バグ、右: 期待する表示

まずは、そのバグが確認できるデモをご覧ください。
すべてのアイテムはul内のliで実装されており、CSSでulborder: 1px solid red;を設定しています。

しかし、ボーダーはリスト全体ではなく左端の1列のみに適用されます。このバグは現在、Chrome, Safari, Firefoxで確認できます。
参考: Issue 507397
※上記ではEdge(non chromium version)は期待通りに表示されるとあり、Edge 115(chromium version)ではバグで表示されます。

See the Pen
"flex-flow: column wrap" Bug
by coliss (@coliss)
on CodePen.

HTMLは、下記の通り。

CSSは、下記の通り。
ulborder: 1px solid red;を設定して、全体にボーダーを適用していますが、Chrome, Safari, Firefoxでは期待通りに表示されません。

原因は、Flexコンテナの幅と高さがflex-flow: column wrap;に対して誤って計算されるからです。この場合、左端のみに適用されます。
flex-flowについて詳しくは、CSS Flexbox 各プロパティの使い方を詳しく解説をご覧ください。

Chrome 116(8/9リリース予定)でこのバグが修正される予定です。

各ブラウザの表示をご覧ください。

サイトのキャプチャ

Chrome 115での表示

サイトのキャプチャ

Safari 16.6での表示

Chrome Canaryではすでに期待通りに表示されます。

サイトのキャプチャ

Chrome Canaryでの表示

元ネタは、下記ツイ、、、ポスト?より。

sponsors

top of page

©2024 coliss