Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

第22章 ブラウザの幅を変えると、画面の続きが見える

Web サイトのデザインは、完成した一枚の画像ではありません。同じページでも、ブラウザの幅、文字の大きさ、文章の長さ、読み込みの状態が変わると、要素の並び方や必要な広さも変わります。

PC 表示とモバイル表示の二枚だけを作っても、その間にある幅で文字がぶつかることがあります。短い商品名では整っていても、本番の長い名前を入れるとカードが伸びます。通信中には、完成後にはない案内も必要です。

ブラウザの幅をゆっくり変えると、静止画の外側にある変化が見えてきます。この章では、変化が起きる五つの場面を一つずつ見ます。

22.1 「PC 幅」と「モバイル幅」の間でも、画面は変化する

横幅に余裕があるとき、見出しとボタンを横に並べられます。

幅 768px のカード。見出しと予約ボタンが横に収まる。
図 22-3A 幅 768px では、見出しと予約ボタンが横に収まる

図 22-3A では、左の見出しと右の予約ボタンの間に余裕があります。この一枚だけなら、横並びで問題ないように見えます。

ブラウザを少し狭くすると、見出しが折り返します。しかし、ボタンは同じ場所に残るため、二つが重なりました。

幅 642px で重なるカード。見出しと予約ボタンが重なる。
図 22-3B 幅 642px では、長い見出しと予約ボタンが重なる

図 22-3B の 642px は、どのサイトでも使える特別な数字ではありません。この見出し、この文字の大きさ、このボタンを組み合わせたとき、重なりが現れた幅です。文章や書体が変われば、重なり始める幅も変わります。

さらに狭い画面では、見出しとボタンを縦に並べます。

幅 375px の縦配置。重なりがなくなる。
図 22-3C 幅 375px では縦配置へ切り替わり、重なりがなくなる

大切なのは、最初に「何 px で切り替える」と決めることではありません。ブラウザを狭め、見出しとボタンの関係が苦しくなる場所を見つけ、その少し手前で並び方を変えることです。

画面の高さも変わります。小さなノート PC では、横幅が十分でも下のボタンが見えないことがあります。スマートフォンでは、文字入力中だけキーボードが画面の一部を覆います。横幅だけでなく、縦に何が見えているかも考えます。

22.2 拡大すると、文字だけでなく配置も変わる

Web ページを拡大して読む人もいます。まず、通常の大きさでは、住所と確定ボタンが一つの枠に収まっています。

100%表示の配送確認画面。
図 22-4A 100%表示では、住所と確定ボタンが枠内に収まっている

ブラウザでページ全体を 200%に拡大すると、一度に見える横幅が狭くなります。文字も入力欄も大きくなり、ブラウザは内容を縦へ組み直します。

200%ブラウザズームで全体が再配置された配送確認画面。
図 22-4B 画面全体が拡大され、内容が再配置される

文字だけを大きくする設定もあります。図 22-4C では、ボタンの高さを固定したまま文字だけが大きくなり、文言が枠からはみ出しました。

文字だけを拡大し、固定高のボタンから文言がはみ出した配送確認画面。
図 22-4C 固定高のボタンから長い文言がはみ出す

この問題は、ボタンを少しだけ高くして終わりではありません。別の言葉なら二行になるかもしれないからです。上下の余白で高さが決まるようにし、文字が増えたときはボタンも一緒に伸びる設計にします。

22.3 本番の文章は、見本より長くなる

短い商品名は、ほとんどのカードにきれいに収まります。

短い商品名を入れた商品カード。
図 22-5A 短い名前が問題なく収まる基準状態

ところが、実際の商品名には、素材、用途、個数などが含まれます。

長い日本語の商品名を入れた商品カード。
図 22-5B 長い商品名がカード内で折り返され、全文が表示されている

図 22-5B では、カードの高さを文字に合わせて伸ばし、商品名を最後まで表示しています。最初から二行や三行になる場合を考えていれば、長い名前を無理に小さくしたり、途中で隠したりせずに済みます。

URL や長い英数字は、日本語と同じ場所では折り返せません。

空白のない長い URL を入れた商品カード。
図 22-5C 空白のない長い URL がカードの右端へ達している

長い URL が枠を押し広げないよう、途中で折り返せる指定が必要です。人名、金額、大きな数字、翻訳された文章も、見本より長くなることがあります。意味のない仮の文章だけでなく、そのサイトに本当に入りそうな長い内容を使って画面を見ます。

22.4 同じ一覧にも、表示する商品がない時間がある

商品一覧は、いつも完成したカードが並んでいるとは限りません。まだ商品が一件もないときは、空白だけを見せず、次にできることを伝えます。

商品が 0 件なら、最初の商品を追加する方法を示す。
図 22-6A 商品が 0 件なら、最初の商品を追加する方法を示す

通信中には、商品がないと決めつけず、読み込みが続いていることを伝えます。

読込中なら、まだ処理が続いていることを示す。
図 22-6C 読込中なら、まだ処理が続いていることを示す

一部だけ届いた場合は、届いた商品を隠す必要はありません。表示できた二件を見せながら、残り一件だけをもう一度読み込めるようにします。

二件を表示し、取得できなかった一件だけ再試行できる。
図 22-6D 二件を表示し、取得できなかった一件だけ再試行できる

権限がない場合は、待っていても商品は現れません。必要な権限と、誰へ連絡すればよいかを伝えます。

権限がなければ、待たせず次の相談先を示す。
図 22-6E 権限がなければ、待たせず次の相談先を示す

0 件、読込中、部分的な失敗、権限不足は、すべて見た目が空きやすい状態です。しかし、起きていることも次の行動も違います。完成した状態だけでなく、その前後にある時間までデザインします。

22.5 同じカードでも、置かれる場所の幅が違う

一つの商品カードを、サイトのいろいろな場所で再利用することがあります。広いメイン部分なら、画像と説明を横に並べられます。

広い場所では、画像と説明を横に並べる。
図 22-7A 広い場所では、画像と説明を横に並べる

同じカードを細いサイドバーへ置くと、横並びでは窮屈になります。

細い場所では、画像の下へ説明を積む。
図 22-7B 細い場所では、画像の下へ説明を積む

この変化を、画面全体の幅だけで決めると困ることがあります。同じ大きな PC 画面の中でも、メイン部分は広く、サイドバーは細いからです。

部品が置かれた場所の幅を見て並び方を変える CSS の仕組みを、コンテナクエリと呼びます。難しそうな名前ですが、考え方は単純です。「画面が PC かスマートフォンか」ではなく、「このカードが今使える幅はどれくらいか」を見る方法です。

コンテナクエリだけが正解ではありません。Flexbox で自然に折り返す方法や、画面全体の幅を見るメディアクエリもあります。守りたいのは技法ではなく、文字と画像が無理なく読める関係です。

22.6 ブラウザを動かすと、切り替える理由が見つかる

レスポンシブデザインは、PC 版とモバイル版の二枚を作ることではありません。その間の幅、短い高さ、拡大された文字、長い内容、通信中などにも、同じページが続いています。

最初に端末名や決まりきった数字を選ぶのではなく、ブラウザを少しずつ動かします。文字がぶつかる。ボタンが押し出される。カードの内容が窮屈になる。そうした変化が現れる場所に、並び方を変える理由があります。

数字は、その理由を CSS へ伝えるために使います。数字そのものを覚えるのではなく、どの関係を守るための数字なのかを考えることが、Web らしい画面設計につながります。

参考

  • 第7章「人間は、押せそうなものを押してしまう」— ボタンの見た目と、押せる範囲を扱います。
  • 第17章「人間は、反応がないと不安になる」— 読込中や失敗時に、現在の状態を伝える理由を扱います。
  • W3C, WCAG 2.2「Resize Text」「Reflow」— 文字の拡大と狭い表示で、内容を失わないための基準です。