table要素が小さくなってスクロールで中身を確認できるようにしたかった。悩んだ挙句実はflexboxが原因だったみたいなそんな話

カテゴリ: 2025 技術

結論

FlexBox要素にmin-width: 0を指定する!!

お話の流れ

Hugoのテーマを作っていて、コードブロックの箇所を「Code blocksのrender hook」を利用していい感じに表示したかった。

記事のページが下のような感じで、左側に記事の内容、右側にプロフィールとか関連記事をとかを表示する形で作っていて、左右に並べるためにFlexboxを利用している。

alt text

で、記事の内容部分に「コードブロック」を表示したいのだけど、なんか右側のFlexbox領域が狭まって表示されれているし、ウィンドウサイズが小さくなったときにはみ出るんですよね・・・

で!、ChatGPT先生やClaude教授との会話をほぼ一日中繰り返すことによって得られた結論が「FlexBox要素にmin-width: 0を指定する!!」でした!!

ずーっと「なんでうまくいかないんだろう・・・」と一日中眺めている内に、「テーブルの要素の長さまでしかFlexbox要素が小さくならない」ということに気づき、Claude教授に確認したところ、

alt text

問題の核心: Flexboxの初期値 min-width: auto により、Flexアイテムは子要素(テーブル)の内在的な幅より小さくなることを拒否します。しかしflex-direction: columnになると、この制約が横幅には適用されなくなるため、突然スクロールが効くようになります。

との回答を頂きました・・・

長い戦いだった・・・

何より、気づけて良かった・・・

他の要素が入っている場合だといい感じに縮んでくれている感じだったのに・・・テーブルは特別な要素だったのでしょうか??

flexboxを利用して「なんかはみ出るんだけど!」という方はもしかするとこれで治るかも・・・?治るといいな・・・自分と同じ悩みを抱え続ける人が出ないように・・・!!

これはと別の話でコードブロックのシンタックスハイライトを入れようとしたらこれまで設定していたCSS設定が全部反映されなくなっちゃったりっていう問題もあるんだけどね~~トホホ~~!!

頑張りつつ(諦めつつ)いい感じにブログを作れるといいな・・・・

プロフィール
プロフィール画像
間接的に増える気がしないこともないのでメモ・・・増えたとしても申し訳なさしかないのだけどね・・・…
🕒 2025-07-30 / via Pleroma
名前
かもしか
わたしです。
AboutMe