我在网上看到很多例子,其中的表格如下:
<form>
<p><input></p>
</form>
令我惊讶的是,spec:
中也对此进行了描述任何表单都以表单元素开头,其中放置了表单元素 控制。大多数控件由input元素表示,即by default提供单行文本字段。标签控件,标签 使用元素;标签文本和控件本身进入 标签元素。表单的每个部分都被视为段落,而且是 通常使用p元素与其他部分分开。把这个 在一起,这是一个人可能会如何询问客户的名字:
虽然这部分是非规范性的,但在我看来,这仍然是不好的做法而不是语义。我想目的是将输入放在他们自己的行上,但不应该使用CSS来控制这些元素的显示吗?
W3C建议表格是否有这样的原因?我错过了什么吗?
答案 0 :(得分:28)
如果您正在以有意义的(读取:语义)方式编写表单,则需要将文本流引导到元素:
<form>
<p><label for="firstName">Please enter your first name:</label><input id="firstName" type="text" /></p>
</form>
更好的方法是将表单视为mad-libs脚本:
<form>
<p>Hello. My <label for="firstName">name</label> is <input id="firstName" type="text" />...</p>
</form>
p
元素不是标记表单的唯一方法。如果正在添加/编辑数据矩阵,则使用表格在语义上是有效的。
在其他情况下,您可能不想要使用包装元素。这取决于您希望提供的 内容 。担心在 之后将所有内容设置为样式,你已经整理了内容。
答案 1 :(得分:2)
INPUT元素是内联的,因此将它们包装在某种块元素中是有意义的,因此它们之间存在自然的分离。由于默认情况下DIV没有边距,使用段落是否有意义?
答案 2 :(得分:1)
没有一个领先的css / html / grid框架正在使用P
标记
点击此处bootstrap或foundation
imho使用fieldset和div。
虽然w3c建议使用段落标签<p>
,但遵循他们的建议几乎没有任何意义。原因是:你在限制自己。也就是说:如果您使用p
标签编写组件,则无法在其中放置div。 Putting <div> inside <p> is adding an extra <p>
好吧,为什么你要在p
标签内加一个div?好吧......为什么不呢?例如,您希望以某种方式设置内容样式,或添加一些信息。使用p
代码,您现在就被卡住了。对我来说这似乎也是一个糟糕的建议。
答案:
在您的内容整理后担心样式
假设你知道你需要什么,比如说,从现在起1年。
我的建议:你不想成为
&#34;我希望我没有使用限制性P
标签&#34;
答案 3 :(得分:0)
这适用于HTML 4,可能不适用于请求的HTML 5。
http://www.w3.org/TR/html401/interact/forms.html#edef-FORM
form
需要一个块级元素作为子元素。 input
是内联元素。 p
可以解决问题。