Способ 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>