如何创建一个带有可点击标签的复选框?


HTML 的<checkbox>标签用于定义激活时被勾选(选中)的方框。复选框用于允许用户从有限数量的选项中选择一个或多个选项。<input>元素的type属性(如下语法所示)创建它。

<input type="checkbox" name="field name" value="Initial value">

复选框支持以下属性

  • Checked: 一个布尔属性,指示此复选框默认情况下是否被选中(页面加载时)。它不指示此复选框当前是否被选中:如果复选框的状态发生变化,此内容属性不会更新。

  • Value: value属性为所有输入类型共享,但它对复选框输入具有特定用途:提交表单时,只有当前选中的复选框才提交到服务器,报告的值是value属性的值。

创建带有可点击标签的HTML复选框意味着当点击标签时,复选框会打开或关闭。在本教程中,我们将讨论两种创建带有可点击标签的复选框的方法。

包裹Label标签

在HTML中,<label>标签用于改进鼠标可用性;例如,如果用户点击<label>元素内的文本,它会切换控件。<label>标签指定按钮、输入、计量器、输出、进度条、选择或文本区域元素的标签。标签也可以通过将其包含在<label>元素中来绑定到元素。

它支持以下属性。

  • For: for属性指定标签绑定到的哪个表单元素。

  • Form: form属性指定标签所属的表单。

示例

在下面的示例中,我们在label标签内使用复选框并应用某些CSS样式属性。

<!DOCTYPE html>
<html>
  <head>
    <title>How to Create Checkbox with a Clickable Label?</title>
    <style>
      .label1 {
        background-color:floralwhite;
        color:darkolivegreen;
        font-weight:550;
        font-size:20px;
        border:2px solid darkolivegreen;
        border-radius:10px;
        padding:8px 20px 12px 15px;
        display:inline-block;
        margin:10px;
        text-align:center;
      }
    </style>
  </head>
  <body>
    <h2>This is a Clickable Checkbox</h2>
    <label class="label1">
      <input type="checkbox" name="checkbox" value="text">Click Me
    </label>
  </body>
</html>

使用“for”属性

for 属性是<label>和<output>的有效属性。当用于<label>元素时,它指示此标签描述的表单元素。当我们点击标签时,我们将焦点带到关联的输入元素。

for属性将正在定义的标签显式链接到另一个控件。当此属性存在时,它必须与同一文档中另一个控件的id属性具有相同的值。当缺少标签时,元素的内容与标签关联。

要将标签隐式关联到另一个控件,控件元素必须包含在Label元素的内容中。在这种情况下,标签只能有一个控件元素。标签可以出现在关联控件之前或之后。

示例

<!DOCTYPE html>
<html>
  <head>
    <title>How to Create Checkbox with a Clickable Label?</title>
    <style>
      .label1,
      .label2{
        background-color:thistle;
        color:purple;
        font-weight:550;
        font-size:20px;
        border:3px solid rebeccapurple;
        border-radius:20px;
        padding:8px 20px 12px 15px;
        display:inline-block;
        text-align:center;
      }
      .container{
          height:200px;
          width:300px;
          background-color:powderblue;
          margin:20px;
          border-radius:10px;
          padding:10px;
      }</style>
  </head>
  <body>
    <div class="container">
    <h3>This is a clickable checkbox! Try it.</h3>
    <input type="checkbox" name="checkbox" id="checkbox_id1" value="text">
    <label class="label1" for="checkbox_id">Click Here</label><br><br>
    <input type="checkbox" name="checkbox" id="checkbox_id2" value="text">
    <label class="label2" for="checkbox_id2">Click Here</label>
    </div>
  </body>
</html>

结论

如上所示,第一种方法比使用for属性具有一些优势。如果标签包含最多一个输入但缺少for属性,则假定它是为其中包含的输入。

包裹label标签更高效且更有用。它比for属性有很多优点。无需为每个复选框分配id。无需在<label>中包含额外的属性。输入的可点击区域也是标签的可点击区域,因此无论输入>和实际标签文本相隔多远,或者您为其应用何种CSS,都只有一个可点击的地方来控制复选框。

更新于:2023年9月11日

933 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告