FAQ・Q&A向けセレクトボックスの作り方【HTML/CSS/JavaScript・サンプルコード付き】

セレクトボックス

FAQ・Q&A向けセレクトボックスの作り方

FAQ・Q&A向けセレクトボックスの作り方を紹介します。このサンプルでは、セレクトボックスに質問を選択肢として表示し、選んだ質問に対応する回答をJavaScriptで表示します。複数の質問と回答を縦に並べる方法とは異なり、必要な質問を選んで回答を確認できるため、限られたスペースへFAQを設置したい場合に利用できます。

サービスについての質問、料金や利用方法に関する案内、お問い合わせ前のよくある質問など、複数のQ&Aから必要な内容を選んで確認する場面に適しています。セレクトボックスから質問を変更すると、その質問に対応する回答へ表示が切り替わるため、ページ内へ多くの回答を常時表示せずに情報をまとめられます。

質問の選択肢と回答内容はHTMLから変更でき、CSSでは横幅、余白、背景色、枠線、角丸、文字サイズなどを用途に合わせて調整できます。JavaScriptでは選択された質問に合わせて回答を切り替えます。レスポンシブにも対応し、スマートフォン・タブレット・PCで利用できるFAQ・Q&A向けセレクトボックスです。

コードについて 本記事のコードはサンプルコードです。ご利用前に必ず動作確認を行ってください。
免責事項 本コードの利用により発生した損害について、当サイトは一切の責任を負いません。

デモ

よくある質問

確認したい質問を選択してください。

A. FAQページ、料金ページ、サービス説明ページ、お問い合わせ前の案内などに使えます。

コードをコピーして使おう!

<!DOCTYPE html>
<html lang="ja">
<head>

  <!-- 文字コード -->
  <meta charset="UTF-8">

  <!-- スマートフォン表示対応 -->
  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <!-- ページタイトル -->
  <title>FAQ・Q&A向けセレクトボックス</title>

  <!-- CSSファイルを読み込み -->
  <link rel="stylesheet" href="style.css">

</head>
<body>

  <!-- FAQ・Q&A全体 -->
  <div class="faq-select-box_demo">

    <!-- タイトル -->
    <div class="faq-select-box_demo_title">
      よくある質問
    </div>

    <!-- 説明文 -->
    <p class="faq-select-box_demo_text">
      確認したい質問を選択してください。
    </p>

    <!-- ラベル -->
    <label class="faq-select-box_demo_label" for="faq">
      質問
    </label>

    <!-- セレクトボックス -->
    <div class="faq-select-box_demo_select_wrap">

      <select class="faq-select-box_demo_select" id="faq">

        <option value="use">
          どんなページに使えますか?
        </option>

        <option value="javascript">
          JavaScriptは必要ですか?
        </option>

        <option value="price">
          利用料金はかかりますか?
        </option>

      </select>

    </div>

    <!-- 回答表示エリア -->
    <div class="faq-select-box_demo_answer" id="faq-answer">
      <span class="faq-select-box_demo_answer_mark">A.</span>
      <span>
        FAQページ、料金ページ、サービス説明ページ、お問い合わせ前の案内などに使えます。
      </span>
    </div>

  </div>

  <!-- JavaScriptファイルを読み込み -->
  <script src="script.js"></script>

</body>
</html>
コードをコピーする場合 使用するコードのタブを選び、「このタブをコピー」をクリックすると、現在表示中のコードをコピーできます。
サンプル一式を取得する場合 HTML・CSSなどすべてのファイルが必要な場合は、「サンプル一式をダウンロード」をクリックしてください。

ファイル構成と設置方法

このサンプルはHTML・CSS・JavaScriptの3ファイルで構成されています。HTMLではFAQ・Q&Aの質問を選択するセレクトボックスと回答表示エリアを作成し、CSSでは全体の横幅、余白、背景色、枠線、角丸、セレクトボックスや回答エリアの見た目を設定します。JavaScriptでは選択された質問に対応する回答を切り替えて表示します。

sample/
├── index.html
├── style.css
└── script.js

各ファイルの役割
index.htmlはFAQ・Q&A向けセレクトボックス全体を構成するファイルです。「よくある質問」のタイトル、説明文、セレクトボックスに表示する質問、初期状態で表示する回答を変更できます。各option要素のvalueは、JavaScriptで対応する回答を判別するために使用します。

style.cssはFAQ・Q&A全体、セレクトボックス、回答表示エリアのデザインを設定するファイルです。全体の最大横幅、余白、背景色、枠線、角丸、タイトルの文字サイズ、セレクトボックスの内側余白、矢印、回答エリアの余白や文字サイズなどを変更できます。

script.jsは質問を変更したときに回答を切り替えるファイルです。faqAnswersに質問ごとの回答を登録し、セレクトボックスのvalueに対応する文章を回答表示エリアへ反映します。「A.」の表示もJavaScriptで生成して回答文と一緒に表示します。

設置方法・使い方
sampleフォルダへindex.html、style.css、script.jsを同じ階層で配置します。3つのファイルを保存したあと、sample/index.htmlをブラウザで開いてください。

セレクトボックスから確認したい質問を選択すると、下の回答表示エリアがその質問に対応した内容へ切り替わります。初期状態では「どんなページに使えますか?」が選択され、その回答が表示されます。

カスタマイズできる内容
index.htmlでは「よくある質問」のタイトル、説明文、質問の選択肢、初期表示する回答を変更できます。質問を追加する場合はoption要素を追加し、ほかの質問と重複しないvalueを設定します。

script.jsではfaqAnswersへ新しいvalueと回答文を追加します。index.htmlに追加したoptionのvalueと、script.js内のキー名を一致させることで、新しい質問と回答を追加できます。

style.cssではFAQ全体の横幅、余白、背景色、枠線、角丸、タイトルの文字サイズ、セレクトボックスの枠線や内側余白、回答エリアの背景色、文字色、行間、「A.」の色や文字サイズなどを変更できます。

数値調整
style.css
max-width:680px;
FAQ全体の最大横幅です。値を大きくすると横に広がり、小さくするとコンパクトになります。

margin:40px auto;
FAQ全体の上下余白です。40pxを大きくすると上下の間隔が広がり、小さくすると狭くなります。

padding:36px;
FAQ全体の内側余白です。値を大きくすると内容と外枠の間隔が広がります。

border-radius:18px;
FAQ全体の角丸です。値を大きくすると丸みが強くなり、0にすると四角になります。

font-size:30px;
タイトルの文字サイズです。値を大きくするとタイトルが大きく表示されます。

margin:0 0 28px;
説明文の下側余白です。28pxを大きくすると説明文とラベルとの間隔が広がります。

margin-bottom:10px;
ラベルとセレクトボックスの間隔です。値を大きくすると両者の間隔が広がります。

padding:16px 52px 16px 16px;
セレクトボックスの内側余白です。上下16pxで高さ、右52pxで矢印用の余白、左16pxで文字と枠線の間隔を調整できます。

border:2px solid #2563eb;
セレクトボックスの枠線です。2pxを大きくすると枠線が太くなります。

border-radius:12px;
セレクトボックスと回答表示エリアの角丸です。値を大きくすると丸みが強くなります。

right:20px;
セレクトボックス右側に表示する矢印の位置です。値を大きくすると矢印が左へ移動し、小さくすると右端へ近づきます。

width:10px;height:10px;
セレクトボックスの矢印の大きさです。値を大きくすると矢印も大きく表示されます。

outline:3px solid rgba(37,99,235,.18);
セレクトボックスを選択したときの外側の強調表示です。3pxを大きくすると強調範囲が広がります。

margin:24px 0 0;
回答表示エリアの上側余白です。24pxを大きくするとセレクトボックスとの間隔が広がります。

padding:24px 22px;
回答表示エリアの内側余白です。24pxは上下、22pxは左右の余白です。値を大きくすると文章と枠線の間隔が広がります。

font-size:16px;
回答文の文字サイズです。値を大きくすると回答文が大きく表示されます。

line-height:1.8;
回答文の行間です。値を大きくすると行間が広がり、小さくすると詰まった表示になります。

font-size:22px;
「A.」の文字サイズです。値を大きくすると「A.」が大きく表示されます。

レスポンシブ対応
このサンプルはレスポンシブ対応です。style.cssではFAQ全体へwidth:100%max-width:680pxを指定しているため、画面幅に合わせて縮小されます。

また、画面幅640px以下ではFAQ全体の内側余白を24px 18px、タイトルの文字サイズを24px、セレクトボックスの内側余白を14px 50px 14px 14px、回答表示エリアの内側余白を20px 18pxへ変更しています。スマートフォン・タブレット・PCで利用できます。


こちらもおすすめ


コメント