如何创建带有可点击标签的复选框?
如何创建带有可单击标签的 HTML 复选框(这意味着单击标签可打开/关闭复选框)?
How can I create an HTML checkbox with a label that is clickable (this means that clicking on the label turns the checkbox on/off)?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(12)
方法 1:包裹标签标签
将复选框包裹在
label
标签内:方法 2:使用
for
属性使用
for
属性(与复选框匹配)id
):注意:ID在页面上必须是唯一的!
说明
由于其他答案没有提及,因此标签最多可以包含 1 个输入并省略
for
属性,并且将假定它用于其中的输入。摘自 w3.org (我强调):
与
for
相比,使用此方法有一些优点:无需为每个复选框分配
id
(太棒了!)。无需在
中使用额外的属性。
输入的可点击区域也是标签的可点击区域,因此没有两个单独的点击位置可以控制复选框 - 只有一个位置,无论
相距多远
和实际的标签文本,无论您应用哪种 CSS。带有一些 CSS 的演示:
Method 1: Wrap Label Tag
Wrap the checkbox within a
label
tag:Method 2: Use the
for
AttributeUse the
for
attribute (match the checkboxid
):NOTE: ID must be unique on the page!
Explanation
Since the other answers don't mention it, a label can include up to 1 input and omit the
for
attribute, and it will be assumed that it is for the input within it.Excerpt from w3.org (with my emphasis):
Using this method has some advantages over
for
:No need to assign an
id
to every checkbox (great!).No need to use the extra attribute in the
<label>
.The input's clickable area is also the label's clickable area, so there aren't two separate places to click that can control the checkbox - only one, no matter how far apart the
<input>
and actual label text are, and no matter what kind of CSS you apply to it.Demo with some CSS:
只需确保标签与输入关联即可。
Just make sure the label is associated with the input.
您还可以使用 CSS 伪元素(分别)从所有复选框的值属性中选取和显示标签。
编辑:这仅适用于基于 webkit 和 Blink 的浏览器(Chrome(ium)、Safari、Opera...)以及大多数移动浏览器。此处不支持 Firefox 或 IE。
这可能仅在将 webkit/blink 嵌入到您的应用程序中时才有用。
所有伪元素标签都是可点击的。
演示:http://codepen.io/mrmoje/pen/oteLl, + 要点
You could also use CSS pseudo elements to pick and display your labels from all your checkbox's value attributes (respectively).
Edit: This will only work with webkit and blink based browsers (Chrome(ium), Safari, Opera....) and thus most mobile browsers. No Firefox or IE support here.
This may only be useful when embedding webkit/blink onto your apps.
All pseudo element labels will be clickable.
Demo:http://codepen.io/mrmoje/pen/oteLl, + The gist of it
这应该对您有帮助:W3Schools - 标签
This should help you: W3Schools - Labels
它也有效:
It works too :
使用
label
元素和for
属性将其与复选框关联:;
Use the
label
element, and thefor
attribute to associate it with the checkbox:<label for="myCheckbox">Some checkbox</label> <input type="checkbox" id="myCheckbox" />
在带有复选框的 Angular 材质标签中
In Angular material label with checkbox
用这个
Use this