【发布时间】:2010-10-20 22:01:23
【问题描述】:
有没有关于嵌套label 和input HTML 元素的最佳做法?
经典方式:
<label for="myinput">My Text</label>
<input type="text" id="myinput" />
或
<label for="myinput">My Text
<input type="text" id="myinput" />
</label>
【问题讨论】:
-
将
<input />放在<label>中的一大优点是,您可以在示例中省略for和id:<label>My text <input /></label>。好多了! -
虽然我同意
input在语义上不属于label,但我今天注意到developers of Bootstrap disagree with me。根据input是在内部还是外部,某些元素(例如内联复选框)的样式会有所不同。 -
顺便说一句,创建
<label for="id">是一个非常糟糕的主意,因为我在页面上有多个表单,并且我不能为许多小部件使用id属性而不落入unique id per page陷阱。访问小部件的唯一可接受方式是通过form + widget_name。 -
@MaxZoom 如果您的页面上有很多不同的表单具有相同的字段名称,以至于您无法想出唯一的 ID,您可能需要重新考虑一下您的页面设计,恕我直言;显然我不知道你的情况,但对我来说只是smells bad
-
@kenbellows 将两个搜索表单放在一个页面上是设计师/企业(不是我)的想法。最佳用户体验实践可能会随着时间而改变,但 HTML 应该足够灵活(恕我直言)以涵盖任何可见的场景。