Связать ярлык с вводом с классом not id?
Я знаю, что вы можете связать метку с вводом, используя атрибуты for и 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>
Ответы
Ответ 1
Классы не уникальны (вы можете иметь несколько элементов с одним классом), поэтому нет.
Если вы хотите связать метку с входом без использования идентификатора, вы можете неявно назначать его, введя указанный внутри метки:
<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>
Ответ 2
Нет, вы не можете использовать class
элемента, потому что один и тот же класс может использоваться несколькими элементами - в этом случае, какой элемент был бы label
для?
Ответ 3
Нет, вы не можете. Единственным атрибутом, который вы можете использовать, является атрибут id
.
Нет смысла использовать класс (который описывает группу связанных элементов), поскольку метка может быть связана только с одним контролем формы.
Ответ 4
Вот пример того, когда вы не захотите использовать идентификатор или вложить элемент управления:
-
Я создаю приложение BackboneJS, которое использует шаблоны. Поскольку шаблон можно дублировать, важно воздерживаться от использования идентификаторов, поскольку он будет создавать несколько элементов в DOM с тем же идентификатором.
-
Я также использую Bootstrap, который представит элемент управления другим (и нежелательным) способом, если он будет завернут внутри элемента <label>
.
В этот момент единственным решением, которое я могу найти, является обертка элемента управления и tweek CSS по умолчанию, чтобы получить желаемый результат. Если у кого-то есть более элегантное решение, пожалуйста, звоните.