2019年 春期 応用情報技術者試験 問8
Webサイトの開発
J社は、コーヒー店をチェーン展開する外食事業者である。J社が運営するコーヒー店のWebサイトは開設後数年が経過し、デザインが古くなっていることから、Webサイトのリニューアルを実施することになった。
J社のシステム部門に所属するK君は、Webサイトの担当として、リニューアルに当たってのデザイン及び開発方針を整理することになった。
[リニューアルにおけるWebサイトデザインの要件]
リニューアルに当たり、システム部門のL部長から"スマートフォンやタブレットからのアクセスが大きな割合を占めることから、Webサイトにアクセスする手段に応じて、Webサイトの表示を切り替え、利用者が見やすいWebサイトにすること"との要件が示された。
[実現案の検討]
K君は、スマートフォン、タブレット及びPCをWebサイトにアクセスするデバイスとして想定し、この要件に対する実現方法として、次の2案を比較検討した。
案1: Webサイトにアクセスする Webブラウザやデバイスのスクリーンサイズ(画面幅)を基準に、表示を切り替える方法
案2: Webサイトにアクセスする Webブラウザやデバイスのユーザエージェント情報によって、表示を切り替える方法
案1は、aと呼ばれる手法である。
K君が調査した両案の特徴を表1に示す。
項目 | 案1 | 案2 |
---|---|---|
Webサイト表示の切替え方法 | 様々なデバイスに対して単一のbファイルを使用する。Webブラウザのウィンドウ幅を基準にCSS文で表示を切り替える。 | デバイスごとに最適化した複数のbファイルを準備しておく。Webサーバへのアクセス時に通知されるユーザエージェント情報(Webブラウザのcやdの情報)に応じて、適切なbファイルにリダイレクトを行うことで表示を切り替える。 |
表示速度 | リダイレクトを行わないので、表示の案1と比較した場合、リダイレクトを行う遅延は発生しない。ただし、PCの高解像度ディスプレイ用の画像をスマートフォンでも共通して使用する場合には、表示の遅延が発生する。 | 案1と比較した場合、リダイレクトを行う分、表示の遅延が発生する。 |
デザインの自由度 | どのデバイスでも同じbファイルを表示するので、基本的なデザインは共通となる。そのため、デバイスごとに大幅にデザインを変更することは難しい。 | デバイスごとに異なるbファイルを表示するので、デバイスごとに自由にデザインすることが可能である。 |
K君は表1の両案の特徴を比較し、次の理由から案1を採用する方針とした。
- J社が運営するコーヒー店のWebサイトでは、デバイスごとに大きくデザインを変更する必要がない。
- ①案2は初期開発や将来のデザイン変更において、開発コストが大きくなると考えられる。
[デザインイメージの作成]
K君は、スマートフォン、タブレット及びPCの3種類のデバイスに対して、それぞれのウィンドウ幅に適したデザインイメージを作成した。
K君が作成したデバイスごとのデザインイメージを図1に示す。
スマートフォンとタブレットはシングルカラムのレイアウトとし、PCは2カラムのレイアウトとした。また、見出しや画像の水平方向のレイアウトは、スマートフォンではセンタリング、タブレットとPCでは左寄せとし、上下方向のレイアウトはデバイスにかかわらず上寄せとした。画像はデバイスごとのWebブラウザに合わせたサイズ、縦横比の画像を表示することとし、縦返し表示は行わないこととした。

[ブレークポイントの決定]
案1の実現方法では、デバイスの解像度、ウィンドウの幅・向きなどの指定条件に合わせて別々のCSSを適用する"メディアクエリ"の機能によってCSSを切り替える。Webブラウザのウィンドウ幅でCSSを切り替える条件を"ブレークポイント"という。ブレークポイントはピクセルで指定し、単位はpxで表す。
K君は、図1のデザインイメージに合わせて、スマートフォンとタブレットのブレークポイントを768px、タブレットとPCのブレークポイントを1,024pxとし、表2のように対象デバイスごとのWebブラウザで想定されるウィンドウ幅の範囲を決定した。
対象デバイス | ウィンドウ幅の範囲 |
---|---|
スマートフォン | 320~767px |
タブレット | 768~1,023px |
PC | 1,024px以上 |
また、表1に示す案1の特徴から、②非機能要件を考慮して、デバイスごとにサイズの異なる画像を用意し、表2のウィンドウ幅の範囲に合わせて、表示する画像を切り替える方針とした。
[CSSの作成]
K君は、表2で決定したウィンドウ幅の範囲に合わせてCSSを作成した。CSSで使用する書式及びデータの一部を表3に示す。また、K君が作成したCSSのうち、タブレット用のブレークポイントの指定と画像表示に関する部分の抜粋を図2に示す。ここで、図1中で"タイトル1"の下に表示する画像は、backgroundプロパティを用いて表示することにした。
名称 | 内容 |
---|---|
@media screen and() | ブレークポイントを指定する。指弧内の条件に合致する場合、以降のCSSを適用する。条件は複数設定することができる。 |
min-width | ウィンドウ幅の最小値を表す。 |
max-width | ウィンドウ幅の最大値を表す。 |
keyvisual | 画像のclass名を表す。 |
/images/topimage_w320.jpg | スマートフォン用の画像ファイルのURLを表す。 |
/images/topimage_w768.jpg | タブレット用の画像ファイルのURLを表す。 |
/images/topimage_w1024.jpg | PC用の画像ファイルのURLを表す。 |
height | 高さを指定する。 |
background | 色、背景画像、原点と寸法、繰返し方法などを設定するプロパティである。 |
background-image | 背景画像を指定する。 url() : 括弧内に背景画像のファイルのURLを指定する。 none : 背景画像を指定しない。 |
background-position | 背景画像を表示する水平・垂直位置を指定する。 位置は水平方向、垂直方向、それぞれに指定可能である。 top : 上寄せで表示することを示す。 bottom : 下寄せで表示することを示す。 left : 左寄せで表示することを示す。 right : 右寄せで表示することを示す。 center : 中央に表示することを示す。 |
background-repeat | 背景画像の表示の繰返しを指定する。 repeat : 繰り返して表示し、領域からはみ出す部分は切り取られる。 space : 繰り返して表示し、領域からはみ出ないよう間隔を調整する。 round : 繰り返して表示し、領域内に収まるよう拡大・縮小する。 repeat-x : 水平方向に繰り返して表示する。 repeat-y : 垂直方向に繰り返して表示する。 no-repeat : 繰り返して表示しない。 |
⋮ @media screen and (min-width: e) and (max-width: f){ /* タブレット用のCSSを記述 */ .keyvisual{ height: 300px; background-image: url("g"); background-position: top left; background-repeat: h; } } ⋮