如何创建一个带有可点击标签的HTML复选框(这意味着单击标签将复选框打开/关闭)?
只要确保标签与输入相关联。
<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>
方法1:包装标签
将复选框包装在标签标签中:
<label><input type="checkbox" name="checkbox" value="value">Text</label>
方法二:使用for属性
使用for属性(匹配复选框id):
<input type="checkbox" name="checkbox" id="checkbox_id" value="value">
<label for="checkbox_id">Text</label>
注意:ID在页面上必须是唯一的!
解释
由于其他答案没有提到它,一个标签可以包含最多1个输入并省略for属性,并且将假定它是用于其中的输入。
节选自w3.org(此处是我的重点):
[The for attribute] explicitly associates the label being defined with another control. When present, the value of this attribute must be the same as the value of the id attribute of some other control in the same document. When absent, the label being defined is associated with the element's contents. To associate a label with another control implicitly, the control element must be within the contents of the LABEL element. In this case, the LABEL may only contain one control element. The label itself may be positioned before or after the associated control.
使用这种方法有一些优点:
不需要为每个复选框分配id(太好了!) 不需要在<label>中使用额外的属性。 输入的可点击区域也是标签的可点击区域,所以没有两个独立的地方可以点击控制复选框-只有一个,无论<input>和实际的标签文本有多远,无论你应用什么类型的CSS。
演示一些CSS:
标签{ 边框:1px实心#ccc; 填充:10 px; 边距:0 0 10px; 显示:块; } 标签:{徘徊 背景:# eee; 光标:指针; } <label><input type="checkbox" />Option 1</label> <label><input type="checkbox" />Option 2</label> <label><input type="checkbox" />Option 3</label> .
<label for="vehicle">Type of Vehicle:</label>
<input type="checkbox" id="vehicle" name="vehicle" value="Bike" />
<label for="myInputID">myLabel</label><input type="checkbox" id="myInputID" name="myInputID />
使用label元素和for属性将其与复选框关联:
<label for</label>=“myCheckbox”>某些复选框<input type=“checkbox” id=“myCheckbox” />
<label for="my_checkbox">Check me</label>
<input type="checkbox" name="my_checkbox" value="Car" />
这应该对你有帮助:W3Schools - Labels
<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>
它也很有效:
<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>
您还可以使用CSS伪元素(分别)从所有复选框的值属性中选择和显示标签。 编辑:这将只适用于webkit和闪烁基于浏览器(Chrome(ium), Safari, Opera....),因此大多数移动浏览器。这里不支持Firefox或IE。 这可能只在嵌入webkit/blink到你的应用程序时有用。
所有的伪元素标签都是可点击的。
{后(type =复选框): 内容:attr(价值); 边距:-3px 15px; vertical-align:最高; 空白:nowrap;} 显示:inline-block; } <input type="checkbox" value="My checkbox label value" />
演示:http://codepen。io/mrmoje/pen/oteLl, +它的要点
使用这个
<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');
});
});
标签{ 边框:1px实心#ccc; 填充:10 px; 边距:0 0 10px; 显示:块; } 标签:{徘徊 背景:# eee; 光标:指针; } <label><input type="checkbox" />Option 1</label> <label><input type="checkbox" />Option 2</label> <label><input type="checkbox" />Option 3</label> .
推荐文章
- 我如何用javascript编程点击链接?
- 在HTML中还有其他有用的空格码吗,比如半空格的 , em-spaces, en-spaces等等?
- 输入触发器按钮单击
- Angular 2模板中的标签是什么意思?
- 如何设置身体高度溢出滚动
- 在输入type="number"时禁用webkit的旋转按钮?
- 如何在另一个元素之后添加一个元素?
- 我如何有效地解析HTML与Java?
- “ ”和“”有什么区别?
- 如何使用JavaScript代码获得浏览器宽度?
- 防止滚动条增加到Chrome页面的宽度
- 使用图像而不是单选按钮
- 我可以嵌套一个<按钮>元素内< >使用HTML5?
- 设置TextView文本从html格式的字符串资源在XML
- Windows窗体中的标签的换行