【问题标题】:Is putting form fields inside label tags a good or bad idea?将表单字段放在标签标签中是好主意还是坏主意?
【发布时间】:2013-10-26 05:30:03
【问题描述】:

我在很多框架、自动生成代码 (Zend) 和布局模板中都注意到了这种趋势。我说的方法是这样的:

<label for="someField">
    <input id="someField" name="someName" />
</label>

这种方法与常规方法相比有哪些优缺点,为什么人们倾向于采用这种方法?

【问题讨论】:

    标签: html forms dom label standards


    【解决方案1】:

    从 HTML4.01 和 HTML5 中的 W3C standards 来看似乎很好:

    HTML4:

    "要将标签与另一个控件隐式关联,该控件 元素必须在 LABEL 元素的内容中。在这个 在这种情况下,LABEL 可能只包含一个控制元素。标签本身 可以位于关联控件之前或之后。"

    在本例中,我们将标签与文本输入控件隐式关联:

    <form action="..." method="post">
      <p>
        <label>
          First Name
          <input type="text" name="firstname">
        </label>
      </p>
    </form>
    

    从 HTML5 开始还可以:

    "标签元素代表用户界面中的标题。 标题可以与特定的表单控件相关联,称为 label 元素的标签控件,可以使用 for 属性,也可以通过 将表单控件放在标签元素本身内。 - W3C.

    【讨论】:

    • 啊,所以目的是避免在标签标签上声明“for”。谢谢!
    • 如果您使用for,您还必须在表单字段中添加id
    • 上个世纪的 W3C 没问题,你引用了 recommendation from 1999。
    • @n.1 您的评论毫无意义。 1999 年还好,到 2013 年还好。
    • 是的,如果您仍然使用 HTML 4.01。 HTML5 也是如此吗? (我在考虑人们的意见,而不是验证)。现在将&lt;input&gt; 放入&lt;label&gt; 是一种好习惯吗?
    猜你喜欢
    • 1970-01-01
    • 2011-10-21
    • 2010-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-26
    • 1970-01-01
    • 2015-07-20
    相关资源
    最近更新 更多