Как создать флажок с кликабельным ярлыком?

Как я могу создать HTML-код с меткой, которую можно щелкнуть (это означает, что щелчок на ярлыке включает/выключает флажок)?

+938
09 июн. '11 в 13:33
источник поделиться
10 ответов

Метод 1: тег метки обертки

Установите флажок в теге label:

<label><input type="checkbox" name="checkbox" value="value">Text</label>

Способ 2. Используйте атрибут for

Используйте атрибут for (установите флажок id):

<input type="checkbox" name="checkbox" id="checkbox_id" value="value">
<label for="checkbox_id">Text</label>

ПРИМЕЧАНИЕ: идентификатор должен быть уникальным на странице!

Описание

Поскольку другие ответы не упоминают об этом, метка может включать до 1 ввода и опустить атрибут for, и предполагается, что он предназначен для ввода внутри него.

Выдержка из w3.org (с моим акцентом):

[Атрибут for] явно связывает метку, определенную с другим элементом управления. При наличии значение этого атрибута должно совпадать с значением атрибута id какого-либо другого элемента управления в том же документе. Если отсутствует, определяемая метка связана с содержимым элемента.

Чтобы связать метку с другим элементом управления неявно, элемент управления должен находиться внутри содержимого элемента LABEL. В этом случае LABEL может содержать только элемент управления один. Сама метка может быть расположена до или после соответствующего элемента управления.

Использование этого метода имеет некоторые преимущества перед for:

  • Не нужно назначать id каждому флажку (отлично!).

  • Не нужно использовать дополнительный атрибут в <label>.

  • Входная область, на которую можно щелкнуть, также является областью, на которую можно щелкнуть метку, поэтому нет двух отдельных мест для клика, которые могут управлять флажком - только один, независимо от того, насколько далеко друг от друга <input> и фактический текст ярлыка, и независимо от того, какой CSS вы применяете к нему.

Демо с некоторым CSS:

label {
 border:1px solid #ccc;
 padding:10px;
 margin:0 0 10px;
 display:block; 
}

label:hover {
 background:#eee;
 cursor:pointer;
}
<label><input type="checkbox" />Option 1</label>
<label><input type="checkbox" />Option 2</label>
<label><input type="checkbox" />Option 3</label>
+1768
09 июн. '11 в 13:36
источник

Просто убедитесь, что метка связана с входом.

<fieldset>
  <legend>What metasyntactic variables do you like?</legend>

  <input type="checkbox" name="foo" value="bar" id="foo_bar">
  <label for="foo_bar">Bar</label>

  <input type="checkbox" name="foo" value="baz" id="foo_baz">
  <label for="foo_baz">Baz</label>
</fieldset>
+49
09 июн. '11 в 13:35
источник

Связанные вопросы


Похожие вопросы

Вы также можете использовать псевдоэлементы CSS, чтобы выбирать и отображать ваши ярлыки из всех атрибутов значений флажка (соответственно).
Изменить: Это будет работать только с браузерами на основе webkit и blink (Chrome (ium), Safari, Opera....) и, следовательно, с большинством мобильных браузеров. Никакой поддержки Firefox или IE здесь.
Это может быть полезно только при встраивании webkit/blink в ваши приложения.

<input type="checkbox" value="My checkbox label value" />
<style>
[type=checkbox]:after {
    content: attr(value);
    margin: -3px 15px;
    vertical-align: top;
    white-space:nowrap;
    display: inline-block;
}
</style>

Все ярлыки псевдоэлементов будут кликабельными.

Демо: http://codepen.io/mrmoje/pen/oteLl, + Суть этого

+12
29 янв. '14 в 17:07
источник
<label for="vehicle">Type of Vehicle:</label>
<input type="checkbox" id="vehicle" name="vehicle" value="Bike" />
+7
09 июн. '11 в 13:36
источник

Он тоже работает:

<form>
    <label for="male"><input type="checkbox" name="male" id="male" />Male</label><br />
    <label for="female"><input type="checkbox" name="female" id="female" />Female</label>
</form>
+3
06 июл. '12 в 10:47
источник
<label for="myInputID">myLabel</label><input type="checkbox" id="myInputID" name="myInputID />
+3
09 июн. '11 в 13:36
источник

Это должно помочь вам: W3Schools - Этикетки

<form>
  <label for="male">Male</label>
  <input type="radio" name="sex" id="male" />
  <br />
  <label for="female">Female</label>
  <input type="radio" name="sex" id="female" />
</form>
+2
09 июн. '11 в 13:44
источник
<label for="my_checkbox">Check me</label>
<input type="checkbox" name="my_checkbox" value="Car" />
+1
09 июн. '11 в 13:37
источник

Используйте элемент label и атрибут for, чтобы связать его с помощью флажка:

<label for="myCheckbox">Some checkbox</label> <input type="checkbox" id="myCheckbox" />

0
09 июн. '11 в 13:37
источник

Используйте этот

<input type="checkbox" name="checkbox" id="checkbox_id" value="value">
<label for="checkbox_id" id="checkbox_lbl">Text</label>


$("#checkbox_lbl").click(function(){ 
    if($("#checkbox_id").is(':checked'))
        $("#checkbox_id").removAttr('checked');
    else
       $("#checkbox_id").attr('checked');
    });
});
-5
23 мая '14 в 4:54
источник

Посмотрите другие вопросы по меткам или Задайте вопрос