代码之家  ›  专栏  ›  技术社区  ›  connexo

使用没有任何关联表单元素的标签是否可以接受?

  •  0
  • connexo  · 技术社区  · 5 年前

    在我当前的项目中,我们永久禁用了窗体控件。在这些情况下,form元素被替换为 span 元素在服务器端。

    这样就可以创建这样的代码:

    <label for="foo">Foo</label>
    <span id="foo">Bar</span>
    

    问题1 :正在进行 label input , select , textarea )可以接受吗?

    问题2 for 属性(因为它引用的元素不是表单元素)?

    可以指定for属性来指示与标题关联的窗体控件。如果指定了属性,则该属性的值必须是与label元素在同一文档中的可标记表单关联元素的ID。

    https://www.w3.org/TR/2011/WD-html5-author-20110705/the-label-element.html

    补充说明:在上面的引文中,到底是什么 一种可标记形式的相关元素 ?

    3 回复  |  直到 4 年前
        1
  •  1
  •   Daniel    5 年前

    问题1:是的,您可以使用没有关联表单元素的标签。规范注意到标签可以与表单元素相关联,也可以在其内部包含元素,但没有指定两者都是必需的。

    在需要语法内容的地方,应该使用标签。这意味着:

    在段内级别标记该文本。

    元素。

    请澄清:

    在规范中,可标记表单相关元素为:

    表示可以与标签元素关联的元素。

    button input (if the type attribute is not in the hidden state) keygen meter output progress select textarea
    
        2
  •  -1
  •   M M    5 年前

    正如规范本身所说

    可以指定for属性来指示与标题关联的窗体控件。如果指定了属性,则该属性的值必须是与label元素在同一文档中的可标记表单关联元素的ID。

    可以指定for属性

    可标形式关联元素 表示标签可以关联的任何表单元素。例如,label元素对无效 input type='submit/reset/button'

    那为什么要用 对于 带标签

    这样做的好处是可点击的区域更大。当您使用标签指定for属性时,单击标签区域将执行与单击标签关联的表单元素相同的操作。

        3
  •  -1
  •   Andrew    5 年前

    正如其中一条评论引用的答案中所提到的,a <span> <label> 当不直接指代 <input> 元素。否则在语义上是不正确的。

    对的:

    <span>This is an image</span>
    <img src="https://i.ytimg.com/vi/dQw4w9WgXcQ/maxresdefault.jpg" />
    

    不正确

    <label for="epic-image">This is an image</label>
    <img src ="https://i.ytimg.com/vi/dQw4w9WgXcQ/maxresdefault.jpg" />