更新日: 2023 / 04 / 19

HTMLでセレクトボックスの初期値やデザインのカスタマイズ方法

カテゴリー: HTML&CSS 入門ガイド

HTMLでセレクトボックス(ドロップダウンリスト)の初期値やサイズ、スタイルのカスタマイズ方法を紹介します。

セレクトボックスは比較的CSSでスタイルしやすいですが、矢印や複数選択の場合のデザインが少し難しいかも。

この辺りも含めてサンプルコード付きで解説します。

  1. selectタグの基本的な使い方

    1. セレクトボックスの実装事例
    2. セレクトボックスで初期値を設定する
    3. 初期値に「選択してください」を表示する
    4. セレクトボックスで複数選択できるようにする
  2. selectタグのデザインをおしゃれにカスタマイズする方法

    1. セレクトボックスのサイズや余白を変更する
    2. 選択肢のフォントを変える
    3. セレクトボックスの背景色や枠線を変える
    4. セレクトボックスの矢印をFontAwesomeアイコンに変更する
  3. まとめ

selectタグの基本的な使い方

HTMLのセレクトボックス(ドロップダウンリスト)はフォームパーツの一部でformタグ内に設置します。

セレクトボックスの選択肢はoptionタグを使って必要な分だけ追加すれば選択肢を表示可能です。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>セレクトボックスの例</title>
</head>
<body style="padding: 100px;">
  <h1>セレクトボックスの例</h1>

  <form>
    <select name="options">
      <option value="option1">選択肢 1</option>
      <option value="option2">選択肢 2</option>
      <option value="option3">選択肢 3</option>
    </select><br>

    <input type="submit" value="Submit">
  </form>
</body>
</html>

結果はこちらのようになります。value属性に入力した内容が値としてformに送信されます。

selectタグの基本的な使い方

セレクトボックスの実装事例

HTMLで問い合わせフォームを作ったりECサイトの商品ページでカラーバリエーションを選択する際にセレクトボックスを使用することがあります。

セレクトボックスの実装事例

この画像を見てもらうとわかるように、選択肢が「選択してください」になっていたり、複数選択できる場合もあります。

セレクトボックスで初期値を設定する

最初に選択肢のうちの1つが選択された状態にする場合は、optionタグにselectedを追加すればOK。

先ほどのHTMLコードを使って2つ目が選択された状態にしてみます。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>2つ目を選択した状態にする</title>
</head>
<body>
  <h1>2つ目を選択した状態にする</h1>

  <form>
    <select name="options">
      <option value="option1">選択肢 1</option>
      <option value="option2" selected>選択肢 2</option>
      <option value="option3">選択肢 3</option>
    </select><br>

    <input type="submit" value="Submit">
  </form>
</body>
</html>

結果はこちらのようになります。デフォルトの選択肢を用意しておきたい場合などはこの方法で実装します。

セレクトボックスで初期値を設定する

初期値に「選択してください」を表示する

デフォルトで選択された状態ではなく、「選択してください」のような文言を表示したい場合は、1つ目の選択肢にselecteddisabled属性を設置します。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>「選択してください」を表示する</title>
</head>
<body>
  <h1>「選択してください」を表示する</h1>

  <form>
    <select name="options">
      <option value="" selected disabled>選択してください</option>
      <option value="option1">選択肢 1</option>
      <option value="option2">選択肢 2</option>
      <option value="option3">選択肢 3</option>
    </select><br>

    <input type="submit" value="Submit">
  </form>
</body>
</html>

結果はこちらのようになります。

初期値に「選択してください」を表示する

disabledを入れることで、選択肢には表示されていても選ぶことができないため、別の選択肢を選ぶことを強制できます。

この項目が必須ではない場合など、disabledを入れずに実装する場合もあります。

セレクトボックスで複数選択できるようにする

セレクトボックスを使って複数選択できるようにすることもできます。

複数選択を可能にするには、selectタグにmultiple属性を追加するだけです。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>複数選択できるようにする</title>
</head>
<body>
  <h1>複数選択できるようにする</h1>

  <form>
    <select name="options" multiple>
      <option value="option1">選択肢 1</option>
      <option value="option2">選択肢 2</option>
      <option value="option3">選択肢 3</option>
    </select><br>

    <input type="submit" value="Submit">
  </form>
</body>
</html>

結果はこちらのようになります。

この属性を入れるとセレクトボックスのレイアウトが少し変わり、ShiftキーやCommand(Ctrl)キーを押しならが複数の選択ができるようになります。

セレクトボックスで複数選択できるようにする

selectタグのデザインをおしゃれにカスタマイズする方法

次はセレクトボックスのデザインをカスタマイズする方法をまとめて紹介します。

  • セレクトボックスのサイズや余白を変更する
  • 選択肢のフォントを変える
  • セレクトボックスの背景色や枠線を変える
  • セレクトボックスの矢印をFontAwesomeアイコンに変更する

セレクトボックスのサイズや余白を変更する

セレクトボックスのサイズはCSSコードのwidthheightで横幅と高さを指定することができます。

中身の余白はpaddingで変更することができます。

select {
  width: 200px;
  height: 50px;
  padding: 0 20px;
}

結果はこちらのようになります。

セレクトボックスのサイズを変更する

選択肢のフォントを変える

選択肢のフォントは普通のテキストフォントと同じようにfont-sizecolorなどでサイズと配色を変更することができます。

select {
  font-size: 20px;
  color: red;
}

結果はこちらのようになります。

選択肢のフォントを変える

セレクトボックスの背景色や枠線を変える

セレクトボックスの背景色や枠線も通常のスタイルと同様にbackground-colorborderで変更することができます。

select {
  padding: 10px 20px;
  background-color: #f4f4f4;
  border: 2px dashed #ccc;
}

結果はこちらのようになります。

セレクトボックスの背景色や枠線を変える

セレクトボックスの矢印をFontAwesomeアイコンに変更する

セレクトボックスの矢印部分をカスタマイズしてFontawesomeのアイコンに変更してみます。

この矢印だけはブラウザごとのデフォルトスタイルが当てられているので一旦appearance: none;でデフォルトスタイルを非表示にしておきます。

あとはセレクトボックスのスタイルを再度当てて、アイコンの位置やサイズを調整すれば矢印のカスタマイズができます。

/* 全体のdiv要素 */
.custom-select {
  position: relative;
  display: inline-block;
}
/* 一旦デフォルトスタイルをオフにしておく */
.custom-select select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background: transparent;
  border: 1px solid #ccc;
  border-radius: 4px;
  width: 150px;
  padding: 10px 20px;
  outline: none;
}
/* アイコンの位置を調整 */
.custom-select i {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
  color: blue;
}

FontawesomeのCSSは公式サイトからダウンロードするかCDNで読み込むことができます。

Fontawesomeのアイコンは公式サイトのアイコン一覧から取得することができます。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>矢印をFontawesomeに変更</title>

  <!-- Font Awesome CDN -->
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" integrity="sha512-iecdLmaskl7CVkqkXNQ/ZH/XLlvWZOJyj7Yy7tcenmpD1ypASozpmT/E0iPtmFIB46ZmdtAc9eNBvH0H/ZpiBw==" crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
<body>
  <h1>矢印をFontawesomeに変更</h1>
  <form>
    <div class="custom-select">
      <select>
        <option value="option1">選択肢 1</option>
        <option value="option2">選択肢 2</option>
        <option value="option3">選択肢 3</option>
      </select>
      <i class="fa-solid fa-caret-down"></i>
    </div>

    <input type="submit" value="Submit">
  </form>
</body>
</html>

結果はこちらのようになります。

セレクトボックスの背景色や枠線を変える

Fontawesome以外のアイコンに変更したり、SVGやpngの画像を入れることもできます。

セレクトボックスはCSSカスタマイズすることで自由にデザインを変更することができます。

まとめ

このページではHTMLフォームのセレクトボックスを作ったり、デザインをカスタマイズする方法を紹介しました。

セレクトボックスだけでなくチェックボックスやラジオボタンもデフォルトのスタイルを外すことで自由にデザインをカスタマイズすることができます。