【CSSで解決!】フォームをもっとオシャレに!チェックボックス&ラジオボタンのカスタマイズ術

2024-05-19

CSS でチェックされたラジオボタンのラベルをスタイリングする方法

方法1: :checked 擬似クラスを使用する

これは最も一般的で簡単な方法です。以下の CSS コードは、チェックされたラジオボタンに隣接するラベルに太字の青色テキストを設定します。

input[type="radio"]:checked + label {
  font-weight: bold;
  color: blue;
}

この方法は、より新しい CSS セレクターを使用しており、より柔軟なスタイリングが可能です。以下の CSS コードは、チェックされたラジオボタンを含むラベルに太字の青色テキストを設定します。

label:has([type="radio"]:checked) {
  font-weight: bold;
  color: blue;
}

補足:

  • 上記の例では、ラジオボタンの type 属性が "radio" であることを前提としています。
  • ラベルとラジオボタンの HTML 構造は次のとおりである必要があります。
<label for="radio1">オプション 1</label>
<input type="radio" id="radio1" name="radioGroup">

<label for="radio2">オプション 2</label>
<input type="radio" id="radio2" name="radioGroup">
  • 複数のラジオボタングループがある場合は、name 属性を使用してグループを区別する必要があります。
  • より複雑なスタイリングを行う場合は、CSS セレクターの詳細な知識が必要となります。



HTML:

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>チェックされたラジオボタンのラベルをスタイリング</title>
  <link rel="stylesheet" href="style.css">
</head>
<body>
  <h2>ラジオボタンのラベル</h2>
  <form>
    <label for="radio1">オプション 1</label>
    <input type="radio" id="radio1" name="radioGroup">

    <label for="radio2">オプション 2</label>
    <input type="radio" id="radio2" name="radioGroup">

    <label for="radio3">オプション 3</label>
    <input type="radio" id="radio3" name="radioGroup">
  </form>
</body>
</html>

CSS:

/* style.css */

input[type="radio"]:checked + label {
  font-weight: bold;
  color: blue;
}

このコードを実行すると、以下のようになります。

  • 最初に選択されていないラジオボタンのラベルは、黒色の標準フォントで表示されます。
  • ラジオボタンを選択すると、そのラベルは太字の青色で表示されます。

このサンプルコードを参考に、独自のスタイリングを作成することができます。

以下の例では、has() 擬似クラスを使用して、チェックされたラジオボタンを含むラベルにスタイリングを設定しています。

label:has([type="radio"]:checked) {
  font-weight: bold;
  color: blue;
}

このコードは、上記の :checked 擬似クラスを使用したコードと同じように動作します。

このサンプルコードは、CSS でチェックされたラジオボタンのラベルをスタイリングする方法を理解するのに役立ちます。 独自のスタイリングを作成するには、このコードを参考に、CSS セレクターと擬似クラスに関する知識を活用してください。




CSS でチェックされたラジオボタンのラベルをスタイリングするその他の方法

この方法は、ラジオボタンラベルの上にカーソルを置いたときにのみスタイリングを適用する場合に使用できます。以下の CSS コードは、カーソルを置いたラジオボタンラベルに太字の青色テキストを設定します。

input[type="radio"]:hover + label {
  font-weight: bold;
  color: blue;
}

長所:

  • カーソル操作によるインタラクションを示すのに役立ちます。
  • チェックされた状態のみにスタイリングを適用することはできません。

方法 2: JavaScript を使用する

この方法は、より複雑なスタイリングを実装する場合に使用できます。以下の JavaScript コードは、チェックされたラジオボタンのラベルに太字の青色テキストを設定します。

const radios = document.querySelectorAll('input[type="radio"]');

radios.forEach(radio => {
  radio.addEventListener('change', () => {
    const label = document.querySelector(`label[for="${radio.id}"]`);
    if (radio.checked) {
      label.style.fontWeight = 'bold';
      label.style.color = 'blue';
    } else {
      label.style.fontWeight = '';
      label.style.color = '';
    }
  });
});
  • 非常に柔軟なスタイリングが可能です。
  • JavaScript の知識が必要となります。
  • 実装が複雑になる可能性があります。

どの方法を使用するかは、要件とスキルレベルによって異なります。シンプルなスタイリングの場合は、:checked擬似クラスを使用するのが最良の方法です。より複雑なスタイリングが必要な場合は、:hover 擬似クラスまたは JavaScript を使用することができます。


forms css


CSS ::first-letter 擬似クラスの使い方

方法 1: ::first-letter 擬似クラス::first-letter 擬似クラスは、要素内の最初の文字を選択するために使用できます。この擬似クラスを使用して、最初の単語にのみスタイルを適用することができます。例:このコードは、p 要素内の最初の文字を赤色で、18pxのフォントサイズで表示します。...


横並びレイアウトの作り方: float vs display vs Flexbox

float プロパティは、要素を左右に浮かせ、横並びにするために使用されます。 以下のコードは、2つのdivを左側に並べる例です。display プロパティは、要素の表示方法を指定するために使用されます。 以下のコードは、2つのdivをインラインブロックとして表示し、横並びにする例です。...


【現役エンジニアが解説!】jQueryを使った多段階フォームのリセットテクニック

多段階フォームは、ユーザーが複数のステップを経て情報を提供するフォームです。これらのフォームは、長くて複雑になる可能性があり、ユーザーが前のステップに戻ってエラーを修正したい場合に問題が発生する可能性があります。jQuery を使用すると、多段階フォームを簡単にリセットできます。このチュートリアルでは、jQuery を使用して多段階フォームをリセットする方法をいくつか紹介します。...


Web制作者必見!HTML、CSS、JavaScriptでテキスト選択を無効にするテクニック

Webサイトにおいて、ユーザーによるテキストの選択を無効にすることは、デザイン上の理由や著作権保護などの目的で必要となる場合があります。ここでは、HTML、CSS、JavaScript を組み合わせて、テキスト選択を無効にする方法について解説します。...


React インラインスタイルで発生する「style prop expects a mapping from style properties to values, not a string」エラーの原因と解決策

Reactでコンポーネントスタイルを定義する場合、主に2つの方法があります。CSSファイル: コンポーネント専用のCSSファイルを作成し、classNameプロパティを使ってスタイルを適用する方法。インラインスタイル: styleプロパティを直接コンポーネントに記述する方法。...