【画像付き解説】HTML、CSS、JavaScriptでラジオボタンを自由自在にカスタマイズ

2024-06-21

HTML、CSS、フォームを使ってラジオボタンの色を変更する方法

HTML

  1. ラジオボタンを作成する。

    <input type="radio" id="radio1" name="gender" value="male">
    <label for="radio1">男性</label>
    
    <input type="radio" id="radio2" name="gender" value="female">
    <label for="radio2">女性</label>
    
  2. ラジオボタンにラベルを付ける。

    <label for="radio1">男性</label>
    <label for="radio2">女性</label>
    

CSS

  1. ラジオボタンのデフォルトスタイルをリセットする。

    input[type="radio"] {
        appearance: none;
        width: 20px;
        height: 20px;
        border-radius: 50%;
        border: 2px solid #ccc;
    }
    
  2. チェックされたラジオボタンの色を変更する。

    input[type="radio"]:checked {
        background-color: #007bff;
        border-color: #007bff;
    }
    
  3. ラジオボタンのラベルのスタイルを変更する (任意)。

    label {
        display: inline-block;
        margin-right: 10px;
        cursor: pointer;
    }
    

説明

  • input[type="radio"] セレクタは、すべてのラジオボタンに適用されます。
  • appearance: none プロパティは、ブラウザのデフォルトのラジオボタンスタイルを無効化します。
  • widthheight プロパティは、ラジオボタンのサイズを設定します。
  • border-radius プロパティは、ラジオボタンの角の丸みを設定します。
  • background-color プロパティは、ラジオボタンの背景色を設定します。
  • label セレクタは、すべてのラジオボタンラベルに適用されます。
  • display: inline-block プロパティは、ラベルをインラインブロック要素として表示します。
  • margin-right プロパティは、ラベルと次の要素の間のマージンを設定します。
  • cursor: pointer プロパティは、カーソルをラベルの上に置いたときにポインタカーソルを表示します。

補足

  • 上記は基本的な例です。必要に応じて、スタイルをさらにカスタマイズできます。
  • CSSフレームワークを使用して、ラジオボタンをより簡単にカスタマイズすることもできます。
  • ラジオボタンの色だけでなく、サイズや形状を変更することもできます。



    <!DOCTYPE html>
    <html lang="ja">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>ラジオボタンの色を変更する</title>
        <style>
            /* CSSコード */
        </style>
    </head>
    <body>
        <h1>ラジオボタンの色を変更する</h1>
    
        <form>
            <input type="radio" id="radio1" name="gender" value="male">
            <label for="radio1">男性</label>
    
            <input type="radio" id="radio2" name="gender" value="female">
            <label for="radio2">女性</label>
        </form>
    </body>
    </html>
    
    /* デフォルトスタイルのリセット */
    input[type="radio"] {
        appearance: none;
        width: 20px;
        height: 20px;
        border-radius: 50%;
        border: 2px solid #ccc;
    }
    
    /* チェックされたラジオボタンの色を変更 */
    input[type="radio"]:checked {
        background-color: #007bff;
        border-color: #007bff;
    }
    
    /* ラベルのスタイルを変更 (任意) */
    label {
        display: inline-block;
        margin-right: 10px;
        cursor: pointer;
    }
    
    • HTMLコードは、フォームとラジオボタンを作成します。
    • CSSコードは、ラジオボタンのデフォルトスタイルをリセットし、チェックされたラジオボタンの色を変更します。
    • ラベルのスタイルは任意で変更できます。

    このコードをどのように使用するか

    1. 上記のコードを index.html などのファイルに保存します。
    2. ファイルを Web ブラウザで開きます。
    3. ラジオボタンをクリックすると、色が変更されることを確認します。

    カスタマイズ

    • ラジオボタンの色を変更するには、background-colorborder-color プロパティの値を変更します。
    • ラジオボタンのサイズを変更するには、widthheight プロパティの値を変更します。
    • ラベルのスタイルを変更するには、label セレクタ内のプロパティを変更します。

    このサンプルコードを参考に、自分のニーズに合わせてラジオボタンをカスタマイズしてみてください。




    ラジオボタンの色を変更するその他の方法

    JavaScriptを使用して、ラジオボタンがクリックされたときに動的にスタイルを変更できます。 以下の例では、チェックされたラジオボタンの色を青色に変更します。

    <input type="radio" id="radio1" name="gender" value="male">
    <label for="radio1">男性</label>
    
    <input type="radio" id="radio2" name="gender" value="female">
    <label for="radio2">女性</label>
    
    <script>
        const radios = document.querySelectorAll('input[type="radio"]');
    
        radios.forEach(radio => {
            radio.addEventListener('click', () => {
                if (radio.checked) {
                    radio.style.backgroundColor = 'blue';
                    radio.style.borderColor = 'blue';
                } else {
                    radio.style.backgroundColor = '#ccc';
                    radio.style.borderColor = '#ccc';
                }
            });
        });
    </script>
    

    ライブラリを使用する

    BootstrapやFoundationなどのCSSフレームワークには、ラジオボタンを簡単にカスタマイズできるユーティリティクラスが含まれています。

    SVGを使用して、独自のラジオボタンアイコンを作成できます。 以下の例は、青色の丸いラジオボタンアイコンを作成する方法を示しています。

    <svg width="20" height="20">
        <circle cx="10" cy="10" r="10" fill="#007bff"/>
    </svg>
    
    <input type="radio" id="radio1" name="gender" value="male" style="display: none;">
    <label for="radio1">
        <span class="radio-button"></span>
        男性
    </label>
    
    <input type="radio" id="radio2" name="gender" value="female" style="display: none;">
    <label for="radio2">
        <span class="radio-button"></span>
        女性
    </label>
    
    <style>
        .radio-button {
            display: inline-block;
            width: 20px;
            height: 20px;
            border-radius: 50%;
            background-color: #ccc;
            border: 2px solid #ccc;
            cursor: pointer;
        }
    
        input[type="radio"]:checked + .radio-button {
            background-color: #007bff;
            border-color: #007bff;
        }
    </style>
    

    html css forms


    【徹底解説】jQuery を使って HTML 入力ボックスで数値のみを入力する方法

    このチュートリアルを始める前に、以下のものが必要です。HTML ファイルjQuery ライブラリHTML ファイルに jQuery ライブラリを追加します。入力ボックスに keypress イベントを追加します。コード解説keypress イベントは、キーが押されたときに発生します。...


    CSSセレクタ:子孫セレクタ、隣接兄弟セレクタ、nth-child()、:not()

    最も簡単な方法は、クラス名をスペースで区切ってセレクタに指定する方法です。例えば、class="button primary" という要素にスタイルを適用したい場合は、以下のように記述します。この方法では、複数のクラスを持つ要素にスタイルを適用できます。...


    CSSでページトップへジャンプするアンカーリンクを作成する方法

    JavaScriptこのコードは、window. scrollTo() メソッドを使用して、ブラウザウィンドウのスクロールバーを x = 0、y = 0 の位置へ移動します。つまり、ページの左上端へジャンプすることになります。jQueryこのコードは、jQuery の scrollTop() メソッドを使用して、HTML要素とbody要素のスクロール位置を0に設定します。こちらもページの先頭へジャンプする効果となります。...


    【カンタン!】CSSでファイル入力欄の「ファイルを選択」を好きな文字に変更

    方法はいくつかありますが、一般的には以下の2つの方法が用いられます。value属性を使用する最も簡単な方法は、<input>要素のvalue属性に、表示したいテキストを代入することです。この例では、「画像を選択」というテキストがデフォルトテキストとして表示されます。...


    HTML5 Audio タグと JavaScript で音声ファイルを再生する方法

    基本的な使い方上記コードは、audio. mp3 と audio. ogg という2つの音声ファイルを再生するためのものです。controls 属性は、ブラウザ内蔵のプレーヤーコントロールを表示します。source 要素は、再生する音声ファイルのパスとファイル形式を指定します。...