レイアウト
コンテナの最大幅
Container / Max-width
コンテナの最大幅とは、画面がどれだけ広くなってもコンテンツが一定の幅を超えて横に伸びないよう上限をかけ、読みやすさを保つルールです。
コンテンツには読みやすい最大幅があります。画面がどれだけ大きくなってもこの幅を超えないように制限すると、一行が長くなりすぎて次の行の先頭を目で追いにくくなる問題を防げます。
定義
コンテナの最大幅とは、画面がどれだけ広くなってもコンテンツが一定の幅より横に伸びないように まとめておくルールです。大きなモニターで本文が画面の端まで目一杯広がると、一行が長くなりすぎて、 読み終えた目が次の行の先頭を見つけにくくなります。max-width で上限をかけておけば、画面が大きくなっても コンテンツは読みやすい幅を保ち、余ったスペースは左右の余白として自然に流れていきます。さらに左右の マージンを auto にすれば、コンテンツが画面の中央にそろいます。画面いっぱいに広げることと、読みやすくする ことは別の目的なのだと理解することが、この概念の核心です。
なぜ重要か
人の目は一行が長すぎると簡単に疲れてしまいます。行の終わりまで読んだあと、次の行の先頭へ視線を 正確に戻すのが難しくなるからです。そのため本文の幅を適切に制限すると、読む速さも集中力も目に見えて 良くなります。逆に幅の制限がないと、画面が大きいほどかえって読みにくくなるという逆転が起こります。 コンテナの幅を決めておけば、どんな画面サイズでもコンテンツが一定のリズムで見え、左右の余白が自然な ゆとりを生んで、画面全体が整った印象になります。特に今のように画面サイズがバラバラな環境では、幅を 自分でコントロールするこのルール一つが、安定したレイアウトの土台になります。
よくある間違い
- 本文にもページ全体と同じ広い幅をそのまま適用してしまうケースです。背景やヘッダーは画面全体を 使ってかまいませんが、読ませたい文章は必ず狭い幅の中に収める必要があります。領域ごとに必要な幅が 違うことを区別しないと、大きな画面で文章が読みにくくなります。
- 最大幅だけかけて左右の余白を忘れてしまうことです。幅を制限しても、画面がコンテナより狭くなると 文字が端にぴったり張り付いて窮屈に見えるので、左右に最低限の内側の余白も一緒に入れておくと、 どんな画面でも安定して見えます。
- 固定のピクセル値を一つだけ使い、画面サイズによる変化を考えないことです。とても小さな画面では 最大幅より画面の幅のほうが狭くなるので、幅が画面をはみ出さないように一緒に扱う必要があります。
実務のヒント
- 本文の一行はだいたい 45〜75 文字が読みやすいとされていて、max-width を 640〜760px 程度 (およそ 60〜75ch)に設定することが多いです。文字幅の単位である ch を使うと、フォントサイズが 変わっても一行に収まる文字数が安定して保たれるので便利です。
- 本文用の狭いコンテナと、ヘッダーやバナー用の広いコンテナを、あらかじめ何種類か決めておきましょう。 場面ごとに幅を考え直さなくて済みますし、画面全体の幅のリズムも一貫して保たれます。
- 幅は max-width で上限だけを決め、基本の幅は 100% にしておきましょう。そうすれば大きな画面では 上限で止まり、小さな画面では画面に合わせて縮むので、特別な処理なしでいろいろな画面サイズに 自然に対応できます。
AIに頼む
下に貼り付けるCSS/JSXから、実際に読む本文の領域を見つけて、広い画面で1行が長くなりすぎないように max-width を 640〜760px(約60〜75ch、1行45〜75文字)に設定して、margin: 0 auto で画面の中央に揃えて。背景やヘッダーのように画面全体を使う領域はそのままにして、本文だけを狭いカラムの中に入れて。変更したセレクターと適用した値を表にまとめて、px の代わりに ch 単位で書いたバージョンも一緒に見せて。
このサービスは[サービスの性格 — 例: 文章中心のブログ]なんだ。これに合ったコンテナ幅の体系を設計して。本文を読むための狭いコンテナは max-width 640〜760px(約60〜75ch)に、ヘッダー・バナー・ヒーロー用の広いコンテナは別の値で2〜3段階決めて、各コンテナは基本 width: 100% に左右の内側 padding 16〜24px も一緒に入れて。--container-narrow のような CSS 変数のセットにまとめて、どこで使うコンテナなのかコメントで付けて。
下に貼り付けるコードは、小さい画面でコンテナが画面の外にはみ出したり、文字が端にぴったりくっついてしまう問題があるんだ。width を固定の px で決め打ちにしないで、基本 width: 100% + max-width の上限だけ残す方式で直して、大きい画面は上限で止まり、小さい画面は自動で縮むようにして。左右に最低 16px の内側 padding を入れて端にくっつかないようにして、どんな幅でも画面をはみ出さないか確認して、直したコードをちょうだい。