28

for属性とid属性を使用して、ラベルを入力に関連付けることができることを知っています。ただし、IDではなくクラスを使用できますか?ありがとう

<label for="rooms">Number of rooms</label>
<select id="rooms">
                    <option value="1">1</option>
                    <option value="2">2</option>
                    <option value="3">3</option>
                    <option value="4">4</option>
</select>
4

5 に答える 5

53

クラスは一意ではありません (同じクラスを持つ複数の要素を持つことができます)。

ID を使用せずにラベルを入力に関連付ける場合は、ラベル内に入力を含めることで暗黙的に割り当てることができます。

<label>Number of rooms
    <select name="rooms">
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
    </select>
</label>
于 2012-08-06T15:07:03.150 に答える
5

ID を使用したくない、またはコントロールをネストしたくない場合の例を次に示します。

  • テンプレートを使用する BackboneJS アプリケーションを作成しています。テンプレートは複製できるため、ID の使用を控えることが重要です。同じ ID を持つ複数の要素が DOM に作成されるためです。

  • また、Bootstrap も使用しています。これは、<label>要素内にラップされている場合、コントロールを別の (そして望ましくない) 方法で表示します。

この時点で私が見つけた唯一の解決策は、コントロール要素をラップし、デフォルトの CSS を微調整して目的の出力を取得することです。誰かがよりエレガントな解決策を持っている場合は、声をかけてください。

于 2015-12-23T17:25:03.323 に答える
4

いいえ、同じクラスを複数の要素で使用できるため、要素の を使用することはできません。classその場合、どの要素がlabel対象になりますか?

于 2012-08-06T15:06:53.047 に答える
3

いいえ、できません。使用できる唯一の属性はid属性です。

ラベルは 1 つのフォーム コントロールにのみ関連付けることができるため、(関連する要素のグループを記述する) クラスを使用しても意味がありません。

于 2012-08-06T15:06:21.980 に答える